Files
Refood-One/docs/user-stories/01-Admin/US03-detalhe-beneficiario.md
T
2026-05-31 20:22:50 +01:00

38 lines
2.2 KiB
Markdown

# US03 - Detalhe e Edição de Beneficiário (Admin)
**Como** Administrador do RefoodOne
**Quero** visualizar, criar e editar as informações de um beneficiário específico
**Para** manter os dados dos beneficiários atualizados no sistema.
## Descrição do Fluxo
Este ecrã serve dois propósitos:
1. **Criação**: Acedido através do botão "Novo Beneficiário" na listagem (US02), abrindo o formulário vazio para preenchimento.
2. **Edição/Visualização**: Acedido através do botão de ação "Editar" na listagem (US02), abrindo o formulário pré-preenchido com os dados do beneficiário selecionado.
## Critérios de Aceitação
### 1. Interface Gráfica (UI)
- **Campos do Formulário**:
- **Número** (obrigatório, numérico único - identificador do beneficiário no sistema)
- **Nome** (obrigatório, texto)
- **Contacto** (obrigatório, número de telefone/telemóvel válido)
- **Nº Pessoas do Agregado** (obrigatório, numérico, mínimo 1)
- **Observações** (opcional, área de texto livre para notas adicionais)
- **Estado** (Ativo / Inativo - apenas na edição)
- **Botões de Ação**:
- **Guardar** (submete o formulário e guarda os dados)
- **Cancelar** (volta para a listagem sem guardar alterações)
### 2. Comportamento e Regras de Negócio
- Apenas utilizadores com a função **Admin** podem aceder/gravar neste ecrã.
- **Validações**:
- O campo **Número** deve ser único na base de dados. Se o Administrador tentar guardar um número já existente, o sistema deve exibir um aviso claro em PT-PT.
- Todos os campos obrigatórios devem ser validados antes de permitir guardar.
- **Redirecionamento**:
- Após guardar com sucesso (inserir ou atualizar), o sistema deve redirecionar o utilizador de volta para a listagem de beneficiários (US02) com uma mensagem de sucesso (ex: *"Beneficiário guardado com sucesso"*).
- Clicar em Cancelar deve redirecionar de volta para a listagem (US02) sem efetuar qualquer alteração.
### 3. Integração de Dados / Segurança
- As operações de escrita (INSERT/UPDATE) devem ser efetuadas de forma segura na base de dados SQLite através do Drizzle ORM.
- O processamento do formulário deve ser feito inteiramente no servidor (`+page.server.ts` actions).