Skip to content

Feat(admin dashboard): added admin dashboard#45

Open
achneerov wants to merge 10 commits intodevfrom
feat/10-admin-services-tab-new
Open

Feat(admin dashboard): added admin dashboard#45
achneerov wants to merge 10 commits intodevfrom
feat/10-admin-services-tab-new

Conversation

@achneerov
Copy link
Copy Markdown

Closes #10

Overview

Deliver an admin-facing Services area where admins can create and manage offerings (coaching vs booking), tie each service to Stripe for CAD one-time pricing, control lifecycle (active → archived → soft-deleted) and whether a service is offered, and give the dashboard a clear entry point into that flow.

Testing

Manual testing + verification on supabase and stripe for correct data

Screenshots / Screencasts

image image

Checklist

  • Code is neat, readable, and works
  • Code is commented where appropriate and well-documented
  • Commit messages follow our guidelines
  • Issue number is linked
  • Branch is linked
  • Reviewers are assigned (one of your tech leads)

Tip: You can make the issue and then check them after the fact or replace [ ] with [x] to check it!

Notes

I suggest we check to see if there are any limitations on strip calls, I noticed sometimes I would get an error from stripe (although not very often)

Required for admin service catalog integration with Stripe products and CAD prices.

Made-with: Cursor
- Add service_status enum (active, archived, deleted).

- Store stripe_product_id; replace price/is_active with status and is_offered.

- Remove purchases table.

BREAKING CHANGE: services columns and purchases table changed; run a migration before deploy.

Made-with: Cursor
Throws if the current user is not an admin (Supabase JWT role claim).

Made-with: Cursor
- Lazy Stripe client from STRIPE_SECRET_KEY.

- Create/update products, list and replace CAD one-time prices.

- Map DB row to Stripe product active flag (stripe-visibility).

Made-with: Cursor
Shared parsing/formatting for booking scheduled_at JSON stored on services.

Made-with: Cursor
shadcn-style primitives for service forms and destructive actions.

Made-with: Cursor
- Shared header with sign out and tab nav.

- Placeholder example-other route for a second tab.

Made-with: Cursor
Default admin landing is the services tab.

Made-with: Cursor
- create/update with Zod validation and Stripe sync.

- archive, unarchive, soft-delete, and toggle is_offered.

- requireAdmin on all mutations; revalidate services path.

Made-with: Cursor
- List active or archived services with Stripe-resolved CAD price.

- Forms, cards, section header, and scheduled slots field for bookings.

Made-with: Cursor
@achneerov achneerov changed the base branch from main to dev April 10, 2026 05:43
@achneerov achneerov changed the title Feat/10 admin services tab new Feat(admin dashboard): added admin dashboard Apr 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Admin Services tab: create/edit services (name, desc, price, scheduling type)

1 participant