Files
millions/docs/16_DECISIONS_LOG.md
2026-04-21 10:53:35 +01:00

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.