feat: CMS de conteúdo do site (WEB-02/03/04/06)
Implementa gestão Filament de configurações, serviços, portfólio e depoimentos com policies admin-only, upload validado e seed determinístico. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Services are managed in Filament with publication control
|
||||
|
||||
The system SHALL allow admins to create, update, and delete services (SPEC WEB-02). Each service MUST have title, unique slug, summary, description, optional cover image with alt text, sort order, featured flag, and `published_at`.
|
||||
|
||||
#### Scenario: Unpublished service is not publicly visible
|
||||
|
||||
- **WHEN** a service has `published_at` null
|
||||
- **THEN** the `published()` scope MUST exclude it from public queries
|
||||
|
||||
#### Scenario: Published service is queryable
|
||||
|
||||
- **WHEN** an admin sets `published_at` on a service with required fields
|
||||
- **THEN** the service MUST be included in the `published()` scope
|
||||
|
||||
#### Scenario: Slug uniqueness is enforced
|
||||
|
||||
- **WHEN** an admin attempts to save two services with the same slug
|
||||
- **THEN** validation or database constraint MUST reject the duplicate
|
||||
|
||||
#### Scenario: Assistant cannot manage services
|
||||
|
||||
- **WHEN** an assistant attempts to access the services Resource
|
||||
- **THEN** access MUST be denied with HTTP 403
|
||||
|
||||
#### Scenario: Delete requires confirmation
|
||||
|
||||
- **WHEN** an admin deletes a service in Filament
|
||||
- **THEN** the UI MUST require explicit confirmation before deletion
|
||||
Reference in New Issue
Block a user