# Arquitetura do banco central V2 FINAL

## Banco oficial desta versão

A versão atual do projeto foi fechada sobre **MySQL/MariaDB** como banco oficial de produção.

## Premissas operacionais

- banco central único em `plataforma_central`
- charset `utf8mb4`
- collation `utf8mb4_unicode_ci`
- acesso transacional via PDO MySQL
- compatibilidade com o dump operacional entregue em `plataforma_central.sql`

## Objetivos da modelagem

- manter clientes, usuários, memberships, acessos e assinaturas no núcleo central
- controlar gateways, licenças, heartbeats e eventos operacionais do NVR
- sustentar outbox, jobs de provisionamento e dead-letter de integração
- manter rastreabilidade por logs estruturados e auditoria

## Diretrizes da aplicação

- `DB_CONNECTION=mysql`
- `DB_PORT=3306`
- `DB_CHARSET=utf8mb4`
- `DB_COLLATION=utf8mb4_unicode_ci`
- `DB_SESSION_TIMEZONE=+00:00`

## Compatibilidade de ambiente

- contrato oficial do runtime: `DB_*`
- compatibilidade transitória com o portal principal: `DB_CENTRAL_*`
- alias aceito para o driver: `mysql` como padrão oficial e `mariadb` apenas como sinônimo de compatibilidade

## Integridade esperada

- chaves UUID em `CHAR(36)`
- JSON validado em colunas `LONGTEXT` com `json_valid`
- triggers e procedures para invariantes que dependem do motor atual
- índices voltados para leitura operacional, provisioning e observabilidade

## Escopo funcional coberto

- identidade e autenticação
- multiempresa e memberships
- produtos, planos, preços e assinaturas
- acessos por produto
- gateways, licenças e heartbeats
- outbox de integração
- fila dead-letter
- logs de integração e logs da plataforma

## Resultado esperado em produção

A aplicação, os scripts, o deploy e a documentação devem assumir apenas **MySQL/MariaDB** como banco padrão desta versão.
