# Arquitetura — NOGA CODE

## Visão geral

Monorepo com responsabilidades separadas:

```
┌─────────────┐     REST API      ┌─────────────┐
│   Next.js   │ ◄──────────────► │   Laravel   │
│  (frontend) │    Sanctum JWT    │  (backend)  │
└─────────────┘                   └──────┬──────┘
                                         │
                    ┌────────────────────┼────────────────────┐
                    ▼                    ▼                    ▼
               ┌─────────┐         ┌─────────┐         ┌─────────┐
               │  MySQL  │         │  Redis  │         │ Flutter │
               └─────────┘         └─────────┘         └─────────┘
```

## Frontend (Next.js 15)

- **App Router** com páginas estáticas/SSR conforme necessidade
- **Camadas:** `components` → `sections` → `layouts` → `app`
- **Estado global:** Zustand (tema, auth)
- **API:** `services/apiClient` + serviços por domínio
- **UI:** Mantine design system + Framer Motion

## Backend (Laravel 12)

- **API versionada:** `/api/v1`
- **Controllers finos** delegando a `Services`
- **Form Requests** para validação
- **API Resources** para contratos JSON estáveis
- **Sanctum** para tokens SPA/mobile

## Princípios SaaS

1. Sem monólito full-stack — contratos HTTP explícitos
2. Multi-tenant preparado (extensão futura via `tenant_id`)
3. Cache Redis para sessões, filas e cache de aplicação
4. Health check com dependências (DB, Redis)

## Segurança

- HTTPS em produção
- Rate limiting (middleware Laravel)
- CORS restrito ao domínio do frontend
- Senhas com `Password::defaults()`
- Tokens com expiração configurável
