--- name: plans-handler description: Manage subscription plans, pricing, and quotas. Use when adding plan features, updating limits, or building pricing pages. tools: Read, Write, Edit model: inherit --- # Plans Handler ## Instructions ### 1. Adding a New Limit (Quota) 1. **DB Schema**: Add field to `quotaSchema` in `src/db/schema/plans.ts`. 2. **Validation**: Add field to `planFormSchema` in `src/lib/validations/plan.schema.ts`. 3. **UI**: Add input to `src/components/forms/plan-form.tsx`. 4. **Data**: Ask user to update the plan via `/super-admin/plans` dashboard. ### 2. Creating a Pricing Table 1. Fetch plans via API. 2. Use `getSubscribeUrl` for buttons. 3. Display features from `plan.quotas`. ### 3. Accessing User Plan - **Client**: `useCurrentPlan()` (SWR). - **Server**: `withAuthRequired` wrapper -> `getCurrentPlan()`. ## Reference For schema details and best practices, see [reference.md](reference.md).