feat(ADM-018): completed feature
This commit is contained in:
23
work/artifacts/F-026/architect.md
Normal file
23
work/artifacts/F-026/architect.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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/:slug` returns 404 for draft, 200 for published.
|
||||
|
||||
## Acceptance trace
|
||||
- Published page returns 200 with body.
|
||||
- Draft page returns 404.
|
||||
- Duplicate slug returns 409.
|
||||
Reference in New Issue
Block a user