4.1 KiB
Decisions Log
2026-04-21
Decisão
Posicionar a solução como app de gestão operacional de revenda de roupa e não apenas como app de inventário.
Motivo
O principal valor está no controlo do fluxo completo: encomenda, receção, registo, preparação, venda e envio.
Impacto
A arquitetura funcional será orientada a estados e workflows operacionais.
2026-04-21
Decisão
Excluir integração automática com Vinted da V1.
Motivo
A prioridade é resolver as dores operacionais principais sem aumentar complexidade técnica inicial.
Impacto
As vendas serão registadas manualmente na primeira versão.
2026-04-21
Decisão
Documentar o projeto em múltiplos ficheiros Markdown curtos e temáticos.
Motivo
Facilitar continuidade entre sessões e colaboração com agentes de IA.
Impacto
A documentação passa a ser a fonte de verdade do projeto.
2026-04-21
Decisão
Adotar uma stack full-stack baseada em Next.js 16, TypeScript, PostgreSQL, Prisma ORM, Supabase, Tailwind CSS, shadcn/ui, React Hook Form e Zod.
Motivo
Esta combinação maximiza velocidade de desenvolvimento, simplicidade arquitetural, boa compatibilidade com agentes de IA e capacidade de crescimento sem infraestrutura excessiva.
Impacto
O MVP será desenvolvido numa única codebase full-stack com frontend e backend no mesmo projeto.
2026-04-21
Decisão
Não criar backend separado na V1.
Motivo
A operação inicial não justifica microserviços nem uma API separada. O foco é reduzir complexidade e acelerar entrega.
Impacto
As rotas, ações no servidor, serviços e acesso à base de dados ficam dentro do projeto Next.js.
2026-04-21
Decisão
Usar PostgreSQL como base de dados principal e Prisma ORM como camada de acesso aos dados.
Motivo
É uma combinação robusta, legível, type-safe e adequada ao domínio operacional da aplicação.
Impacto
O schema do domínio será modelado em Prisma e evoluído por migrations.
2026-04-21
Decisão
Implementar rastreabilidade por unidade de inventário em vez de stock agregado.
Motivo
A documentação do domínio especifica que a V1 deve favorecer rastreabilidade por unidade sempre que possível para dar visibilidade operacional completa.
Impacto
O schema Prisma foi modelado com InventoryUnit como entidade principal, permitindo rastrear cada artigo individualmente desde a receção até à venda.
2026-04-21
Decisão
Criar DOC_INDEX.md como registo centralizado da documentação do projeto.
Motivo
Facilitar a navegação e continuidade entre sessões de desenvolvimento com agentes de IA, garantindo que todos os documentos nucleares são facilmente encontráveis.
Impacto
O projeto tem agora um índice completo com 27 ficheiros documentais, todos classificados por status e função.
2026-04-21
Decisão
Modelar todos os estados definidos na documentação como enums no schema Prisma.
Motivo
Garantir consistência entre a documentação de estados e a implementação técnica, evitando ambiguidades nos ciclos de vida das entidades.
Impacto
Os enums PurchaseOrderStatus, ReceiptStatus, InventoryStatus, ListingStatus, SaleStatus e ShipmentStatus foram implementados exatamente conforme definido em 09_STATES_AND_LIFECYCLES.md.
2026-04-21
Decisão
Corrigir problemas de integridade relacional no schema Prisma.
Motivo
Validação do schema revelou relações em falta e inconsistências que poderiam causar problemas de integridade de dados.
Impacto
- Adicionada relação User.createdReceipts para Receipt.created_by
- Corrigida relação StatusHistory com índices para performance
- Mantida integridade referencial em todas as relações
2026-04-21
Decisão
Criar estrutura completa do projeto Next.js com stack aprovada.
Motivo
Estabelecer base técnica sólida para desenvolvimento do MVP seguindo exatamente a stack definida na documentação.
Impacto
Projeto configurado com Next.js 16, TypeScript, Tailwind CSS, Prisma, estrutura de pastas conforme 20_PROJECT_STRUCTURE.md, pronto para instalação de dependências e início de desenvolvimento.