802 B
802 B
Architect — F-026 CMS module
Feature
F-026 adds simple CMS pages with slug routing and draft/publish states.
Design
Module boundaries
Create project/src/modules/cms/ with domain/application/infrastructure/api/tests. CMS owns page content. Public storefront consumes published pages.
Data model
Add migration 020_cms.js:
cms_pages: id, slug unique, title, body, status text default 'draft', created_at, updated_at.- CHECK
status IN ('draft','published').
API
- Admin
POST /cms/pages,PATCH /cms/pages/:id,POST /cms/pages/:id/publish,POST /cms/pages/:id/unpublish. - Public
GET /cms/pages/:slugreturns 404 for draft, 200 for published.
Acceptance trace
- Published page returns 200 with body.
- Draft page returns 404.
- Duplicate slug returns 409.