Files
2026-05-31 20:22:50 +01:00

2.2 KiB

US05 - Editar Horário e Dias de Turno (Admin)

Como Administrador ou Gestor de Turnos do RefoodOne Quero editar o horário (horas de início e fim) e os dias da semana de um turno específico Para adaptar o funcionamento das entregas conforme a disponibilidade dos voluntários e as necessidades da Refood PdN.

Descrição do Fluxo

O utilizador clica no botão "Editar" de um turno específico na listagem de turnos (US04). É apresentado um formulário pré-preenchido onde pode alterar a hora de início, a hora de fim e selecionar/deselecionar os dias da semana em que o turno é realizado.

Critérios de Aceitação

1. Interface Gráfica (UI)

  • Campos do Formulário:
    • Identificador (Apenas leitura/desativado, ex: "T1")
    • Hora de Início (Obrigatório, seletor de tempo no formato HH:MM)
    • Hora de Fim (Obrigatório, seletor de tempo no formato HH:MM)
    • Dias da Semana (Obrigatório, checkboxes permitindo selecionar múltiplos dias, ex: Segunda a Domingo)
  • Botões de Ação:
    • Guardar (Submete o formulário e grava as alterações)
    • Cancelar (Volta para a listagem sem guardar)

2. Comportamento e Regras de Negócio

  • Apenas utilizadores com as funções de Admin ou Gestor de Turnos podem aceder a este ecrã e guardar alterações.
  • Validações:
    • A hora de fim deve ser posterior à hora de início.
    • A duração configurada deve respeitar as regras do sistema (ex: 2 horas por turno por defeito, ou emitir um aviso/validação caso não seja).
    • Pelo menos um dia da semana deve ser selecionado (não é permitido ter um turno ativo sem dias associados).
  • Redirecionamento:
    • Após guardar com sucesso, redirecionar para a listagem de turnos (US04) com uma mensagem de sucesso em PT-PT (ex: "Horário do turno guardado com sucesso").
    • Clicar em Cancelar redireciona de volta para a listagem (US04) sem efetuar qualquer alteração.

3. Integração de Dados / Segurança

  • As alterações de horário e dias devem ser guardadas com segurança na base de dados SQLite através do Drizzle ORM.
  • O processamento da ação do formulário deve ocorrer no servidor (+page.server.ts actions).