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

2.2 KiB

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).