20 lines
1.5 KiB
Markdown
20 lines
1.5 KiB
Markdown
# US08 - Modelo de Dados de Entregas
|
|
|
|
**Como** Sistema RefoodOne
|
|
**Quero** definir a estrutura e modelo de dados para o registo das entregas de cabazes aos beneficiários
|
|
**Para** garantir a integridade dos dados e o relacionamento correto entre as entregas, os beneficiários e os turnos.
|
|
|
|
## Critérios de Aceitação
|
|
|
|
### 1. Estrutura da Tabela `deliveries`
|
|
A tabela de entregas na base de dados SQLite deve conter os seguintes campos:
|
|
- **`id`**: Texto (Primary Key, UUID gerado automaticamente, não nulo).
|
|
- **`beneficiary_id`**: Texto (não nulo). Chave estrangeira que referencia a tabela `beneficiaries.id`.
|
|
- **`shift_id`**: Texto (não nulo). Chave estrangeira que referencia a tabela `shifts.id`.
|
|
- **`date`**: Texto (não nulo, formato 'YYYY-MM-DD'). Representa o dia em que a entrega foi efetuada.
|
|
- **`created_at`**: Inteiro (não nulo, timestamp). Guarda a data e hora do registo do sistema.
|
|
|
|
### 2. Integridade Referencial e Comportamento
|
|
- **Chave Estrangeira de Beneficiário**: A coluna `beneficiary_id` deve referenciar `beneficiaries(id)`. Deve incluir uma regra de eliminação em cascata (`ON DELETE CASCADE`), de modo a que se um beneficiário for removido, o seu histórico de entregas seja automaticamente apagado.
|
|
- **Chave Estrangeira de Turno**: A coluna `shift_id` deve referenciar `shifts(id)`. Deve incluir uma regra de eliminação em cascata (`ON DELETE CASCADE`), de modo a que se um turno for removido do sistema, os registos de entrega a ele associados sejam removidos.
|