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>
33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
# site-settings Specification
|
|
|
|
## Purpose
|
|
Define the typed site-wide settings singleton and its administration rules.
|
|
|
|
## Requirements
|
|
### Requirement: Site settings singleton is manageable by admin only
|
|
|
|
The system SHALL persist site-wide settings in a `site_settings` table as a typed singleton (SPEC WEB-06, §8.2). Fields MUST include brand name, hero copy (eyebrow, title, subtitle, CTA label), about summary, contact email/phone/city, social links (jsonb), default meta title/description, default OG image path and alt text, and optional analytics fields disabled by default.
|
|
|
|
#### Scenario: Admin updates site settings
|
|
|
|
- **WHEN** an admin saves the site settings form in Filament
|
|
- **THEN** the singleton record is updated
|
|
- **AND** labels and validation messages are in pt-BR
|
|
|
|
#### Scenario: Assistant cannot access site settings
|
|
|
|
- **WHEN** an assistant navigates to site settings in Filament
|
|
- **THEN** access MUST be denied with HTTP 403
|
|
|
|
#### Scenario: Default OG image requires alt text
|
|
|
|
- **WHEN** an admin uploads a default OG image without alt text
|
|
- **THEN** validation MUST fail with a pt-BR error message
|
|
- **AND** alt text MUST remain optional when no default OG image is present
|
|
|
|
#### Scenario: Singleton avoids generic key-value store
|
|
|
|
- **WHEN** site settings are stored
|
|
- **THEN** the system MUST use typed columns on `site_settings`
|
|
- **AND** MUST NOT introduce a generic key/value configuration table
|