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

27 lines
1.7 KiB
Markdown

# 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).