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>
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# service-catalog Specification
|
|
|
|
## Purpose
|
|
Define service catalog management, publication, and authorization behavior.
|
|
|
|
## 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
|