# RULES: Sinka Stack obrigatório do desafio. **Não usar PHP.** Não reintroduzir Laravel, Blade, `public/index.php` nem pasta `app/` no estilo PHP. ## Stack - Backend: Node.js + **NestJS** + TypeScript (`api/`) - Frontend: **Next.js** + TypeScript (`web/`) - Banco: **MySQL**, `sinka_platform` + um database por empresa - Infra: **Docker**, **Docker Compose**, **Redis** ## Pastas | Pasta | Responsabilidade | | --- | --- | | `api/` | NestJS: módulos, casos de uso, Prisma, filas | | `web/` | Next.js App Router: landing + área autenticada | | `docs/` | Arquitetura e decisões | | `.cursor/rules/` | Regras do agente | ## Como evoluir uma feature 1. Modelar no Prisma tenant (`api/prisma/tenant`) se for dado da empresa; no platform se for catálogo 2. Módulo NestJS: controller → use case/service → DTO + validação 3. Abrir o PrismaClient do tenant do JWT, nunca consultar outro database 4. Tela em `web/src/app` (App Router) 5. Teste no módulo da API quando a regra for importante ## Não fazer - PHP, Composer, views `.php`, PDO - Framework PHP, mesmo “só para prototipar” - Lógica de negócio em controller inchado ou em componente React - Ler/escrever dado de empresa no banco da plataforma ou no database de outro tenant