# GrowKit schema wipe

**Date:** 2026-09-12  
**Decision:** Approach A — delete Shop/Partner Pass. GrowKit-only schema.

## Removed

`bookings`, `partner_profiles`, `partner_products`, `partner_availabilities`, `partner_product_interests`, `pharmacy_medicine_uses`, and all Shop/Partner controllers, services, and ActiveAdmin pages.

## Kept / added

`users`, `admin_users`, `photos`, `user_locations`, `mall_listings` (`user_id` + `location_id`), `listing_photos`, `mall_interests`, `mall_offers`, `mall_engagements`, `mall_listing_reports`, `mall_spotlight_usages`, `user_blocks`, `subscriptions`.

## Subscriptions / Premium

See [2026-09-19-premium-plans-design.md](2026-09-19-premium-plans-design.md).

- Catalog: `plans` (`monthly` / `quarterly` / `yearly`)
- Access: `user_plans` — premium = current row (`active` and `ends_at` in the future)
- Auto-debit: `subscriptions` — current Razorpay/mock mandate

## Auth

- `POST /request-otp`
- `POST /verify-otp` → JWT (`exp` 7 days)
- `POST /users/profile` — new accounts are farmers
- `POST /user-locations` — one active location per user
- OTP: Redis 10 min; Fast2SMS when `FAST2SMS_API_KEY` is set; internal phones `123456`
