Files
reservas/CHANGELOG.md

3.9 KiB

Registo de alterações

Todas as alterações materiais são registadas neste ficheiro. O formato segue Keep a Changelog sem exigir versionamento formal durante o desenvolvimento inicial.

Não publicado

Adicionado

  • Fundação Laravel 13 com React 19, Inertia 3, TypeScript, Tailwind 4 e Fortify.
  • Infraestrutura Docker Compose para Nginx, PHP-FPM, PostgreSQL, Redis, Vite, filas, scheduler e Mailpit.
  • Modelos e migrations de identidades, perfis, permissões, ativos, reservas, aprovações, bloqueios, entregas, sincronizações e auditoria.
  • Restrição PostgreSQL para impedir reservas bloqueantes sobrepostas.
  • Serviços transacionais de disponibilidade e criação de pré-reserva.
  • Dashboard, catálogo filtrável, formulário de requisição multi-equipamento e histórico pessoal.
  • Seeders com perfis, ativos fictícios e contas de demonstração.
  • Documentação de arquitetura, requisitos, decisões, operação, estado e handoff.
  • Cliente de leitura Snipe-IT com autenticação Bearer, paginação, timeout, retries seletivos, DTOs e mapper defensivo.
  • Sincronização horária e manual de equipamentos, job único, lock distribuído, histórico de execuções e desativação segura de ausentes.
  • Área administrativa de diagnóstico Snipe-IT com teste de conectividade, métricas do cache e histórico de sincronizações.
  • Autorização administrativa através de Gate e navegação condicional por perfil.
  • Pesquisa de disponibilidade por período no catálogo e formulário, incluindo reservas, atribuições atuais e bloqueios administrativos.
  • Cancelamento pelo requisitante com validação da máquina de estados, libertação transacional dos equipamentos e auditoria.
  • Expiração automática e manual de pré-reservas, com job único agendado a cada cinco minutos e comando reservations:expire.
  • 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.

Alterado

  • Nome, identidade visual e idioma orientados ao Portal de Reservas.
  • Configuração padrão alterada para PostgreSQL, Redis, SMTP/Mailpit e Europa/Lisboa.
  • Configuração de desenvolvimento Vite passa a publicar módulos e HMR em localhost:5173 e a aceitar explicitamente a origem do portal em localhost:8000, corrigindo a página em branco em Docker.
  • As mensagens flash globais recebem agora as propriedades diretamente de withApp, evitando o uso de usePage() fora do contexto Inertia que interrompia o arranque do React.
  • SSR de desenvolvimento ligado internamente de PHP para o serviço node, com o hostname Docker autorizado no Vite.
  • Catálogo sem período passa a distinguir equipamentos apenas requisitáveis; quando um período é selecionado, apresenta exclusivamente equipamentos livres nesse intervalo.

Segurança

  • Registo público desativado.
  • Variáveis para tokens Snipe-IT separados e credenciais Entra ID documentadas sem valores.

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).
  • 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”.
  • API Snipe-IT simulada em testes: paginação, headers, retry, erro em HTTP 200, falha parcial, idempotência e desativação de ausentes.
  • 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.