Files
baya-monorepo/mvp/blocker-phases/06-catalog-admin-page.md
T
2026-08-02 20:37:14 +03:30

1.7 KiB

Phase 06 — Catalog/pricing has no admin page

Blocker: blockers.md § "Catalog / pricing." Depends on: nothing. Pure client work — the server side is already done.


Root cause — confirmed as two separate, correctly-separated things, not one bug. The 5 MVP service categories are seeded everywhere via migration HasData (CatalogConfig/CatalogSeed.cs:1-19) — categories are fine in every environment. Pricing options (the EAV dimensions) are deliberately not seeded via migration — the seed file's own comment says option groups/values are "admin-authored data... never a migration." The only place they get created today is DemoWorldSeeder.cs:74-101, which only runs in Development (Program.cs:135-159 gates both seeders to IsDevelopment()). Production genuinely has zero option groups for any category.

The admin API to manage this already exists and is fully permission-gated: AdminCatalogController.cs:25-61CreateCategory, UpdateCategory, SetCategoryActive, CreateOptionGroup, UpdateOptionGroup, CreateOptionValue, UpdateOptionValue. The gap is entirely client-side — there is no admin/catalog route anywhere in the client tree, and zero references to any of those endpoints in client/src.

Fix: build the admin catalog page (categories + option-group/value CRUD) under client/src/app/[locale]/(private-routes)/admin/catalog/, calling the already-built server endpoints. This is genuinely pure client work now — running DemoWorldSeeder in production is explicitly the wrong fix (it bundles fake demo nurses/customers/reviews alongside the option data, which is demo content, not real launch content).