You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Admins need a UI to create and manage membership tiers — the pricing plans that members subscribe to. Without this page, plans can only be managed via direct database manipulation.
Depends on BE-55 for membership plan CRUD endpoints
Member subscriptions are visible in the existing member detail view
Tasks
Create /admin/plans page — table listing all membership plans with columns: Name, Price, Billing Cycle, Features count, Active Subscribers, Status (Active/Inactive), Display Order
Features: add/remove chip list (press Enter to add a feature bullet)
Booking hours included (0 = unlimited)
Guest passes per month
Display order (integer, for controlling sort on the public plans page)
Active toggle
Row actions: "Edit" (pre-filled modal), "Archive" (sets inactive — shown only if no active subscribers)
Subscriber count is a clickable link to /admin/members?plan=:id
Create a public-facing /pricing page showing active plans in display-order, with a "Subscribe" CTA for each plan (calls POST /membership-plans/:id/subscribe)
Overview
Admins need a UI to create and manage membership tiers — the pricing plans that members subscribe to. Without this page, plans can only be managed via direct database manipulation.
Context
frontend/app/admin/members/page.tsxTasks
/admin/planspage — table listing all membership plans with columns: Name, Price, Billing Cycle, Features count, Active Subscribers, Status (Active/Inactive), Display Order/admin/members?plan=:id/pricingpage showing active plans in display-order, with a "Subscribe" CTA for each plan (callsPOST /membership-plans/:id/subscribe)useGetMembershipPlans,useCreatePlan,useUpdatePlanReact Query hooksFiles to Modify / Create
frontend/app/admin/plans/page.tsxfrontend/app/pricing/page.tsxfrontend/lib/react-query/hooks/membership/