# SAR — Força de Vendas

**Cliente:** JCS Sistemas · **Status:** MVP em desenvolvimento

> Plataforma SaaS B2B de força de vendas com 4 cockpits especializados (Rep / Supervisor / Dono / Admin) sobre dado único em tempo real, atravessado por WhatsApp nativo e IA contextual.

---

## Stack canônica

Ver [`STACK.md`](STACK.md) v2.2 (fonte da verdade técnica) e [`CODING-RULES.md`](CODING-RULES.md) v2.0 (invariantes + pegadinhas 🔥).

| Camada | Tecnologia |
|---|---|
| Runtime | Node 24 LTS · pnpm 11.1 · TypeScript 5.9 |
| Monorepo | Nx 22.7 |
| Backend | NestJS 11 (CJS) · Prisma 7 · PostgreSQL 18 · BullMQ |
| Frontend | React 19 · Vite 8 · Ant Design 6.4 · TanStack Query/Router · Zustand |
| Multi-tenancy | BD-por-workspace (ADR 0006) |
| Infra | Proxmox on-prem BR (ADR 0004) · Docker Compose · Cloudflare |

---

## Quickstart (dev local)

```bash
# Pré-requisitos: Node 24, pnpm 11.1 (via corepack), Docker

# 1. Instalar deps
pnpm install

# 2. Copiar template de env
cp .env.example .env

# 3. Subir stack de dev (Postgres, Valkey, MinIO, Mailpit)
pnpm dev:up

# 4. Rodar api (Nest 11) — porta 3000
pnpm dev:api

# 5. Em outro terminal, rodar web (Vite + React 19) — porta 4200
pnpm dev:web
```

**URLs locais:**
- Web app: http://localhost:4200
- API: http://localhost:3000
- MinIO console: http://localhost:9001 (login `sar_minio_admin` / `sar_minio_dev_password`)
- Mailpit (emails de teste): http://localhost:8025

---

## Estrutura do monorepo

```
apps/
├── api/        # NestJS HTTP — monólito modular por domínio
├── api-e2e/    # E2E tests da API (Jest)
├── web/        # SPA React + Vite + AntD
└── web-e2e/    # E2E tests do frontend (Playwright)

libs/
└── shared/
    └── api-interface/    # Zod schemas + tipos compartilhados api ↔ web

design-artifacts/         # WDS — Phase 1/2/3 docs (Brief, Trigger Map, Scenarios)
_references/              # Logos, mockups legados, materiais
scripts/                  # SQL init, deploy scripts
docs/                     # Docs do projeto (ADRs futuras)
```

---

## Scripts úteis

```bash
pnpm build              # Build de todos os projetos
pnpm lint               # ESLint em tudo
pnpm test               # Unit tests em tudo
pnpm graph              # Visualiza grafo de dependências Nx
pnpm affected -- -t build  # Só builda o que foi afetado pela mudança
pnpm format             # Prettier write
```

---

## Próximos passos do setup

- [ ] Provisionar VMs Proxmox para staging (Postgres, Valkey, MinIO, master-login, Vault)
- [ ] Configurar Gitea Actions (`.gitea/workflows/`) — CI básico (lint + test + build)
- [ ] Implementar master-login (IdP OAuth2/OIDC) — ADR 0005
- [ ] Implementar multi-tenant BD-por-workspace — ADR 0006
- [ ] Primeiro cockpit: Rafael (Rep) PWA mobile-first

---

_Powered by JCS Sistemas · Stack canon JCS v2.2_
