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>
3.6 KiB
3.6 KiB
1. Pré-requisitos e alinhamento de testes
- 1.1 Confirmar
phpunit.xmlcom PostgreSQL (amare_test) e documentar criação do banco de teste no README - 1.2 Registrar Policies de conteúdo no
AppServiceProviderou descoberta automática - 1.3 Criar diretório
tests/Feature/Marketing/para testes desta change
2. Content media (content-media)
- 2.1 Criar
app/Support/PublicImageUploadRules.phpcom allowlist MIME/extensão, limite 10 MB e regra de alt text obrigatório - 2.2 Escrever teste unitário ou feature validando rejeição de MIME inválido e arquivo oversize
- 2.3 Documentar
php artisan storage:linke discopublicno README - 2.4 Reforçar uploads Filament com validação compartilhada de MIME, extensão e limite de 10 MB, incluindo mensagens em pt-BR e testes regressivos
3. Site settings (site-settings / WEB-06)
- 3.1 Criar migration
site_settingsconforme SPEC §8.2 (incluindosocial_linksjsonb) - 3.2 Criar model
SiteSettingcominstance()singleton e casts (jsonb, timestamps) - 3.3 Criar
SiteSettingPolicyadmin-only - 3.4 Criar Filament Page
ManageSiteSettingsno grupo Conteúdo do site com form tipado (hero, contato, meta, OG image, analytics desabilitados por padrão) - 3.5 Escrever feature tests: admin salva settings; assistant recebe 403
- 3.6 Adicionar alt text condicional à imagem OG padrão na migration, model, formulário, seed determinístico e testes
4. Service catalog (service-catalog / WEB-02)
- 4.1 Criar migration
servicescom índices emslug,sort_order,is_featured,published_at - 4.2 Criar model
Servicecom scopepublished(), slug único e fillable conforme SPEC - 4.3 Criar
ServiceFactoryeServicePolicyadmin-only - 4.4 Criar
ServiceResourceFilament (form, table, confirmação de exclusão, upload de capa com alt text via PublicImageUploadRules) - 4.5 Escrever feature tests: slug único, publicação via
published_at, assistant 403
5. Portfolio cases (portfolio-cases / WEB-03)
- 5.1 Criar migrations
portfolio_caseseportfolio_images(FK cascade, índice compostoportfolio_case_id, sort_order) - 5.2 Criar models
PortfolioCaseePortfolioImagecom relação hasMany ordenada e scopepublished() - 5.3 Criar factories e
PortfolioCasePolicyadmin-only - 5.4 Criar
PortfolioCaseResourcecom relation manager de galeria (reorderable, alt text, caption opcional) - 5.5 Escrever feature tests: publicação, ordem da galeria, cascade delete, assistant 403
6. Testimonials (testimonials / WEB-04)
- 6.1 Criar migration
testimonialsconforme SPEC §8.2 - 6.2 Criar model
Testimonialcom scopepublished()eTestimonialFactory - 6.3 Criar
TestimonialPolicyeTestimonialResourceFilament - 6.4 Escrever feature tests: publicação, featured filter, assistant 403
7. Seed de conteúdo de demonstração
- 7.1 Criar
ContentSeederou estenderDatabaseSeedercom settings padrão, 3 serviços, 3 casos (com galeria), 3 depoimentos - 7.2 Adicionar imagens fixture versionadas em
tests/fixtures/images/e referenciá-las no seed - 7.3 Garantir datas e conteúdo determinísticos para testes visuais futuros (SPEC §17.3)
8. Verificação final
- 8.1 Executar
composer pint:checkecomposer phpstan - 8.2 Executar
composer test:featurecontra PostgreSQL local - 8.3 Executar
composer qualitye corrigir falhas - 8.4 Reportar conclusão no formato SPEC §24 (requisitos WEB-02/03/04/06, alterações, testes, comandos, aceite, pendências)