first commit

This commit is contained in:
2026-04-21 10:53:35 +01:00
commit bd8fe915f8
40 changed files with 2505 additions and 0 deletions

133
docs/16_DECISIONS_LOG.md Normal file
View File

@@ -0,0 +1,133 @@
# 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.