Files
mercadodevida/work/artifacts/F-026/architect.md
2026-08-17 22:23:10 +02:00

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/:slug returns 404 for draft, 200 for published.

Acceptance trace

  • Published page returns 200 with body.
  • Draft page returns 404.
  • Duplicate slug returns 409.