feat: complete approval workflow

This commit is contained in:
2026-08-04 16:51:51 +01:00
parent c2136bc250
commit 809eab9d4a
26 changed files with 1156 additions and 41 deletions

View File

@@ -24,6 +24,11 @@ Todas as alterações materiais são registadas neste ficheiro. O formato segue
- Calendário mensal pessoal com isolamento por utilizador e navegação entre meses.
- Núcleo de aprovações com fila pesquisável, Gate por perfil, aprovação, rejeição e pedido de esclarecimentos.
- Revalidação transacional da disponibilidade antes da aprovação, promoção de itens para `reserved` e histórico em `approval_actions`/auditoria.
- Notificações assíncronas por email e caixa interna para submissões, decisões, esclarecimentos e substituições.
- Centro de notificações isolado por utilizador, com contador e marcação de leitura.
- Resposta auditada a pedidos de esclarecimento e renovação do prazo de decisão.
- Substituição controlada por equipamento disponível da mesma categoria, preservando o item original no histórico.
- Filtros da fila de aprovação por categoria/período e histórico de ações apresentado na interface.
### Alterado
@@ -42,7 +47,7 @@ Todas as alterações materiais são registadas neste ficheiro. O formato segue
### Verificado
- Migrations e seeders executados em PostgreSQL 17 real.
- Suite backend: Pint em 106 ficheiros, PHPStan nível 7 em 80 ficheiros e 65 testes Pest (289 asserções).
- Suite backend: Pint em 111 ficheiros, PHPStan nível 7 em 84 ficheiros e 70 testes Pest (340 asserções).
- Frontend: TypeScript, ESLint, Prettier e build Vite de produção.
- Stack Docker operacional e endpoint de login acessível através do Nginx.
- Renderização SSR real do login validada, incluindo o conteúdo “Entrar no Portal de Reservas”.
@@ -50,3 +55,4 @@ Todas as alterações materiais são registadas neste ficheiro. O formato segue
- Migration `last_seen_sync_run_id` aplicada em PostgreSQL 17.
- Comando de expiração executado em PostgreSQL e agendamento a cada cinco minutos confirmado.
- Builds Vite cliente e SSR com as páginas de disponibilidade, cancelamento e calendário concluídos.
- Migration da caixa interna de notificações aplicada em PostgreSQL 17.