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-61 — CreateCategory, 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).