Files
manoel freitas 7a858b52af feat: implement CMS for content management (WEB-02/03/04/06)
Introduces Filament management for site settings, services, portfolio cases, and testimonials with admin-only policies, validated media uploads, and deterministic seeding. Includes comprehensive design and task documentation for the implementation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 06:18:42 -03:00

2.4 KiB

Why

A Fase 0 — Fundação está concluída e arquivada; o próximo passo do MVP é permitir que a assessora gerencie conteúdo do site no Filament antes de expor rotas públicas. Sem modelos, migrations e Resources internos para configurações, serviços, portfólio e depoimentos, a Fase 1 não pode avançar e o site permanece estático.

What Changes

  • Criar tabelas e models conforme SPEC §8.2: site_settings, services, portfolio_cases, portfolio_images, testimonials.
  • Implementar CMS Filament no grupo Conteúdo do site (SPEC §5.2) para WEB-02, WEB-03, WEB-04 e WEB-06.
  • Introduzir regras compartilhadas de upload de mídia pública (allowlist MIME, limite de tamanho, path aleatório, alt text obrigatório).
  • Policies admin-only para conteúdo do site; assistant não gerencia CMS (WEB-02).
  • Factories e seed parcial de demonstração (3 serviços, 3 casos, 3 depoimentos, settings).
  • Alinhar phpunit.xml para feature tests locais em PostgreSQL (delta de quality-gates).

Non-Goals

Conforme SPEC.md §4.2 e a divisão da Fase 1:

  • Rotas públicas, home editorial (WEB-01), páginas institucionais (WEB-07), briefing (WEB-05).
  • SEO, sitemap, robots, snapshots visuais e testes de acessibilidade do site público.
  • Page builder, CRUD de categorias, auditoria de publicação (audit_logs — Fase 5).
  • Variantes responsivas de imagem (adiadas para change build-public-site).

Capabilities

New Capabilities

  • site-settings: singleton tipado de configurações globais do site (WEB-06).
  • service-catalog: CRUD de serviços publicáveis com slug único (WEB-02).
  • portfolio-cases: casos de portfólio com galeria ordenada (WEB-03).
  • testimonials: depoimentos publicáveis (WEB-04).
  • content-media: validação e armazenamento compartilhado de imagens públicas (SPEC §6.4, §12.4).

Modified Capabilities

  • quality-gates: feature tests locais MUST usar PostgreSQL, alinhados ao CI (SPEC §14.2, §20).

Impact

  • Cria: migrations, models, factories, Policies, Filament Resources/Pages em app/Filament/, seeders, testes feature em tests/Feature/Marketing/.
  • Altera: phpunit.xml, DatabaseSeeder, navegação do painel Filament.
  • Depende de: specs arquivadas da fundação (internal-authentication, design-tokens, quality-gates).
  • Sem impacto em rotas públicas existentes além do placeholder /.