sinka/RULES.md
armando cf16bf1fb6 Show integration health in the admin and keep clients on their own screen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 03:43:18 -03:00

35 lines
1.2 KiB
Markdown

# 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