# System Map - Nexos (Exent)

> Mapa geral do sistema para contexto de LLM. Gerado em 2026-06-18.
> Laravel 12 | PHP 8.2+ | Multi-tenant (stancl/tenancy)

---

## 1. Estrutura de Diretorios

```
/
├── app/
│   ├── Helpers/                       # Funcoes auxiliares globais
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Api/                   # Controladores de API interna (Slack, Monday, Ntfy, Google Bucket)
│   │   │   ├── Auth/                  # Autenticacao Google OAuth
│   │   │   ├── Core/                  # Modulo Core (Colaboradores, Clientes, Projetos, Config)
│   │   │   ├── Finance/               # Modulo Finance (Cobrancas, Pagamentos, NFs, Conta Corrente)
│   │   │   │   └── Api/               # APIs financeiras
│   │   │   │       ├── Asaas/         # API Asaas
│   │   │   │       ├── Iugu/          # API Iugu
│   │   │   │       ├── Spedy/         # API Spedy (NFS-e)
│   │   │   │       └── Webhook/       # Webhooks (Asaas, N8N, Finance)
│   │   │   ├── Integrations/          # API de integracao externa (Exent Space)
│   │   │   └── Wiki/                  # Modulo Wiki (Base de conhecimento)
│   │   └── Middleware/                # 10 middlewares
│   ├── Jobs/
│   │   ├── Core/                      # Jobs do modulo Core
│   │   └── Finance/                   # Jobs financeiros (41 jobs)
│   │       ├── Asaas/                 # Jobs especificos Asaas
│   │       ├── Iugu/                  # Jobs especificos Iugu
│   │       ├── Mail/
│   │       │   ├── Client/            # Emails para clientes
│   │       │   └── Internal/          # Emails internos
│   │       └── Push/                  # Notificacoes push (Ntfy)
│   ├── Mail/                          # Template de email generico
│   ├── Models/
│   │   ├── Core/                      # 9 models (Colaborador, Cliente, Projeto, Contrato, Email)
│   │   ├── Finance/                   # 34 models (Charges, Invoices, Transactions, Snapshots, etc)
│   │   ├── Integration/               # 3 models (CompanyToken, IntegrationProvider, IntegrationToken)
│   │   └── Wiki/                      # 8 models (Article, Category, Trail, Module, etc)
│   ├── Providers/                     # AppServiceProvider, RouteServiceProvider, TenancyServiceProvider
│   └── Services/
│       ├── Core/                      # Services Core (birthday, mail)
│       └── Finance/                   # Services financeiros (52 services)
│           ├── Asaas/                 # Asaas (pagamento, extrato, NFS-e)
│           ├── ChargeNotifications/   # Notificacoes de cobranca
│           ├── CollabPayments/        # Transferencias para colaboradores
│           ├── InvoiceCollab/         # Notificacoes NF colaborador
│           ├── Iugu/                  # Iugu (pagamento, extrato)
│           ├── Payment/               # Abstracacao de pagamento (Factory + Contract)
│           ├── Spedy/                 # Emissao NFS-e via Spedy
│           └── SummaryNotifications/  # Notificacoes de resumo
├── bootstrap/
├── config/                            # Configs Laravel padrao + tenancy.php
├── database/
│   └── migrations/
│       ├── (landlord)                 # 16 tabelas centrais
│       └── tenant/                    # 51 tabelas por tenant
├── public/
│   ├── assets/
│   │   ├── css/                       # exent-style.css, wiki.css
│   │   ├── data/                      # JSONs de exemplo
│   │   ├── js/wiki/                   # JS do modulo Wiki
│   │   ├── scripts/                   # JS customizado (masks, formatters, barcode reader)
│   │   └── inspinia/                  # Tema UI (Inspinia - CSS, JS, plugins, imagens)
│   └── images/                        # Logos (Exent, Vendrix)
├── resources/
│   ├── css/                           # app.css (Tailwind)
│   ├── js/                            # app.js, bootstrap.js
│   └── views/                         # 136 Blade templates
│       ├── mail_templates/            # Template de corpo de email
│       ├── pages/
│       │   ├── core/                  # Paginas Core
│       │   ├── finance/               # Paginas Finance
│       │   ├── system/                # Paginas sistema (login, dashboard, master, config)
│       │   └── wiki/                  # Paginas Wiki
│       ├── template_pages/            # Layouts base (login, master, session, system)
│       └── template_parts/            # Parciais (sidebar, header, footer, navbars)
├── routes/
│   ├── api.php                        # Rotas API (webhooks, integracoes)
│   ├── console.php                    # Scheduled tasks / Cron jobs
│   └── web.php                        # Rotas web (auth, core, finance, wiki)
├── storage/
├── tests/
├── .github/workflows/deploy.yml       # CI/CD - Deploy via SSH
├── composer.json
├── package.json
└── vite.config.js
```

---

## 2. Modulos Principais

### 2.1 Sistema Central (Landlord)
- **Autenticacao**: Google OAuth (Socialite) + restricao por dominio Google Workspace
- **Multi-tenancy**: stancl/tenancy v3 com banco de dados separado por tenant
- **Selecao de tenant**: usuario seleciona empresa na sessao
- **Master Panel**: CRUD de empresas (tenants) e credenciais de integracao
- **Permissoes**: campo `permissions` (JSON) no User + middleware `MasterAccess`

### 2.2 Modulo Core
- **Colaboradores**: CRUD completo, historico de alteracoes, contas bancarias, contratos
- **Clientes Institucionais**: CRUD compartilhado entre Core e Finance
- **Projetos**: CRUD compartilhado entre Core e Finance, vinculo com contratos
- **Configuracoes Core**: templates de email, destinatarios de email

### 2.3 Modulo Finance
- **Clientes Faturaveis**: extensao do cliente institucional com dados fiscais (CNPJ, endereco)
- **Cobrancas (Charges)**: emissao de boletos/PIX, controle de status, multas/juros, segunda via
- **Recorrencia**: regras de geracao automatica de cobrancas por ciclo
- **Resumo de Cobranca (Billing Summary)**: agrupamento de cobrancas por cliente
- **NFS-e (Notas Fiscais)**: emissao via Spedy/Asaas, controle de status, upload manual
- **Pagamentos Colaboradores**: snapshots mensais (recorrencia) e semestrais (premios)
- **Transacoes Operacionais**: TED, PIX, boletos, PIX QR Code via Asaas/Iugu
- **Conta Corrente**: extratos Iugu, Asaas, BTG, Itau, C6 Bank + lancamentos manuais
- **Reembolsos**: recebimento via webhook, aprovacao/rejeicao manual
- **Campanhas (Incorp)**: sync com Monday.com, formulas de calculo
- **Relatorios**: cobrancas, NFs, colaboradores, operacional
- **Sincronizacao**: sync full (clientes, invoices, recorrencias, cobrancas) com progresso rastreado

### 2.4 Modulo Wiki
- **Artigos**: editor rich-text, draft/published, upload de imagens
- **Categorias e Subcategorias**: organizacao por tema
- **Trilhas (Trails)**: hierarquia Trail > Module > Submodule > Topic
- **API JSON interna**: CRUD completo via endpoints REST

---

## 3. Dependencias entre Modulos

```
┌─────────────────┐
│   Sistema       │
│   (Landlord)    │
│  Users, Tenants │
│  Integrations   │
└────────┬────────┘
         │ tenancy context
         ▼
┌─────────────────────────────────────────────────┐
│                    TENANT DB                    │
│                                                 │
│  ┌──────────┐      ┌────────────┐               │
│  │  CORE    │──────▶│  FINANCE   │              │
│  │          │      │            │               │
│  │ Collabs  │◀─────│ Payments   │               │
│  │ Clients  │──────▶│ Charges    │              │
│  │ Projects │──────▶│ Recurrence │              │
│  │ Contracts│──────▶│ Invoices   │              │
│  │          │      │ Transactions│              │
│  └──────────┘      │ Snapshots  │               │
│                    │ Statements │               │
│                    └────────────┘               │
│                                                 │
│  ┌──────────┐                                   │
│  │  WIKI    │  (independente)                   │
│  │ Articles │                                   │
│  │ Trails   │                                   │
│  │Categories│                                   │
│  └──────────┘                                   │
└─────────────────────────────────────────────────┘
```

**Dependencias concretas:**
- `finance_clients` → `core_clients` (FK core_client_id)
- `finance_collaborator_bank_accounts` → `core_collaborators` (FK collaborator_id)
- `finance_collaborator_payments` → `core_collaborators` (FK collaborator_id)
- `core_projects` → `core_clients` + `finance_clients` + `core_collaborators`
- `finance_projects` → `core_projects` + `core_project_contracts` + `finance_clients`
- `finance_charges` → `finance_clients` + `core_projects` + `finance_recurrence`
- `finance_recurrence` → `core_projects` + `finance_clients`
- `finance_invoices` → `core_collaborators`
- `finance_payment_collab_snapshot_items` → snapshots + `core_collaborators` + `finance_transactions`
- `finance_transactions_transfers` → `finance_transactions` + snapshot_items + `finance_transfer_accounts`
- Wiki: totalmente independente, sem FK para Core/Finance

---

## 4. Arquivos Centrais

### Configuracao & Boot
| Arquivo | Funcao |
|---------|--------|
| `routes/web.php` | Todas as rotas web (auth, core, finance, wiki) |
| `routes/api.php` | Webhooks e API de integracao |
| `routes/console.php` | **Todos os cron jobs** (~50 schedules) |
| `config/tenancy.php` | Config multi-tenancy |
| `app/Providers/TenancyServiceProvider.php` | Eventos de ciclo de vida do tenant |
| `app/Providers/AppServiceProvider.php` | Boot: helpers + View Composer do Wiki |
| `app/Helpers/helpers.php` | Funcoes globais |
| `.github/workflows/deploy.yml` | CI/CD deploy via SSH |

### Services Criticos
| Arquivo | Funcao |
|---------|--------|
| `app/Services/Finance/Payment/PaymentServiceFactory.php` | Factory para provider de pagamento (Asaas/Iugu) |
| `app/Services/Finance/Payment/PaymentServiceContract.php` | Interface de contrato de pagamento |
| `app/Services/Finance/ChargesSyncService.php` | Sync de status de cobrancas |
| `app/Services/Finance/ClientsSyncService.php` | Sync de clientes com provedores |
| `app/Services/Finance/InvoiceCreationService.php` | Criacao de NFS-e |
| `app/Services/Finance/InvoiceSyncService.php` | Sync de status de NFS-e |
| `app/Services/Finance/RecurrenceSyncService.php` | Geracao de cobrancas recorrentes |
| `app/Services/Finance/PendingChargesGenerationService.php` | Geracao em lote de cobrancas + NFS-e |
| `app/Services/Finance/Asaas/AsaasPaymentService.php` | Operacoes de pagamento Asaas |
| `app/Services/Finance/Asaas/AsaasStatementService.php` | Extrato bancario Asaas |
| `app/Services/Finance/Iugu/IuguPaymentService.php` | Operacoes de pagamento Iugu |
| `app/Services/Finance/Spedy/InvoiceSyncService.php` | Sync NFS-e via Spedy |
| `app/Services/Finance/SnapshotStatusService.php` | Controle de status de snapshots |
| `app/Services/Finance/CollabPayments/SnapshotTransferService.php` | Execucao de transferencias de snapshot |
| `app/Services/IntegrationCredentialService.php` | Gestao centralizada de credenciais por tenant |
| `app/Services/GuzzleService.php` | Cliente HTTP centralizado |
| `app/Services/MailService.php` | Envio de emails com SMTP dinamico por modulo |
| `app/Services/SlackAlertService.php` | Alertas via Slack webhooks |
| `app/Services/GoogleCSService.php` | Google Cloud Storage + Vision OCR |
| `app/Services/OpenAIService.php` | Extracao de dados de NF via GPT-4 |

### Controllers Criticos
| Arquivo | Funcao |
|---------|--------|
| `app/Http/Controllers/Finance/TransactionsController.php` | Gestao de transacoes (TED, PIX, boletos, PIX QR Code) |
| `app/Http/Controllers/Finance/ChargesController.php` | CRUD e operacoes de cobrancas |
| `app/Http/Controllers/Finance/PaymentsController.php` | Pagamentos a colaboradores + snapshots |
| `app/Http/Controllers/Finance/Api/Asaas/AsaasApiController.php` | Client API Asaas |
| `app/Http/Controllers/Finance/Api/Webhook/AsaasWebhookController.php` | Webhook Asaas (status de transacoes) |
| `app/Http/Controllers/Finance/SyncController.php` | Controle de sincronizacao com progresso |
| `app/Http/Controllers/MasterController.php` | Painel admin (empresas, credenciais) |

### Jobs Criticos
| Arquivo | Funcao |
|---------|--------|
| `app/Jobs/Finance/RunFinanceSync.php` | Orquestra sync completo (clientes→invoices→recorrencias→cobrancas) |
| `app/Jobs/Finance/ProcessPaymentJob.php` | Processamento individual de pagamento |
| `app/Jobs/Finance/DispatchScheduledPaymentsJob.php` | Dispatch de pagamentos agendados |
| `app/Jobs/Finance/GenerateRecurrenceSnapshot.php` | Snapshot mensal de pagamentos recorrentes |
| `app/Jobs/Finance/GenerateAwardSnapshot.php` | Snapshot semestral de premios |
| `app/Jobs/Finance/DispatchSnapshotTransfers.php` | Execucao de transferencias em lote |

---

## 5. Integracoes Externas

| Servico | Tipo | Uso Principal | Credencial |
|---------|------|---------------|------------|
| **Asaas** | Gateway de Pagamento | Cobrancas (boleto/PIX), transferencias (TED/PIX), NFS-e, extratos, webhooks | `asaas_token`, `asaas_url` |
| **Iugu** | Gateway de Pagamento | Boletos, verificacao de pagamentos, extratos | `iugu_token_base64`, `iugu_base_url` |
| **Spedy** | Emissao Fiscal | Emissao e consulta de NFS-e | `spedy_token`, `spedy_url` |
| **Google Cloud Storage** | Armazenamento | Upload de comprovantes, PDFs, notas fiscais | JSON service account key |
| **Google Cloud Vision** | OCR | Extracao de texto de PDFs (comprovantes, NFs) | JSON service account key |
| **Google OAuth (Socialite)** | Autenticacao | Login via Google Workspace | Client ID/Secret |
| **OpenAI** | IA / LLM | Extracao de valores e datas de NFS-e (GPT-4) | `openai_api_key`, `openai_url` |
| **Slack** | Mensageria | Alertas de erro, notificacoes de pagamentos, aniversarios | `slack_webhook_url`, `slack_bot_token` |
| **Monday.com** | Gestao de Projetos | Sync de projetos/campanhas Incorp, queries GraphQL | `monday_api_key` |
| **Ntfy.sh** | Push Notifications | Alertas de email, cobrancas vencidas, snapshot gerado | (via N8N) |
| **N8N** | Automacao | Webhook de notificacao de emails recebidos | Token de webhook |
| **BrasilAPI** | Dados Bancarios | Consulta de bancos por codigo COMPE | (publica) |
| **ViaCEP / RepublicaVirtual** | CEP | Busca de endereco por CEP | (publica) |

---

## 6. Cron Jobs (Scheduled Tasks)

Todos os jobs rodam no contexto de **cada tenant** via macro `Schedule::tenantJob()`.

### Alta Frequencia (a cada 1-5 minutos)
| Job | Frequencia | Funcao |
|-----|-----------|--------|
| `SendFinanceLogAlerts` | 1 min | Alertas de erro/critical para Slack |
| `CheckIuguPaymentsJob` | 2 min | Verificacao de status Iugu |
| `CheckAsaasPaymentsJob` | 2 min | Verificacao de status Asaas |
| `CheckAsaasInvoiceCancellationsJob` | 2 min | Cancelamentos de NFS-e Asaas |
| `SyncInvoiceStatus` | 2 min | Sync status NFS-e |
| `CheckTestInvoices` | 2 min | NFS-e de teste |
| `SendChargeGeneratedNotifications` | 5 min | Email: cobranca gerada |
| `SendSummaryGeneratedNotifications` | 5 min | Email: resumo gerado |
| `SendSummaryChargeCanceled` | 5 min | Email: cobranca de resumo cancelada |
| `ResendFailedChargeNotifications` | 10 min | Reenvio de emails falhados (cobranca) |
| `ResendFailedSummaryNotifications` | 10 min | Reenvio de emails falhados (resumo) |

### Diarios
| Job | Horario | Funcao |
|-----|---------|--------|
| `RunFinanceSync` | 08:00 / 20:00 | Sincronizacao completa do Finance |
| `CheckChargesStatus` | 08:55 | Verificacao de status de boletos |
| `DispatchScheduledPaymentsJob` | 09:00 | Processa pagamentos agendados |
| `SendChargeDueSoonNotifications` | 09:00 | Email: cobranca proxima do vencimento |
| `SendChargeOverdueNotifications` | 09:00 | Email: cobranca vencida |
| `SendSummaryNotification` | 09:00 | Email: notificacao de resumo |
| `SendChargesOverduePushNotification` | 09:00 | Push: cobrancas vencidas |
| `SendNFsAlertCollab` | 09:30 | Alerta NF para colaboradores (recorrencia) |
| `SendNFsAwardsAlertCollab` | 09:30 | Alerta NF para colaboradores (premios) |
| `CheckCollabBirthdaysJob` | 09:30 | Aniversarios no Slack |
| `SendRefundsPendingNotification` | 10:00 | Reembolsos pendentes |
| `CheckCertificateNF` | 10:00 | Certificado NF (vencimento 60/40 dias) |
| `CheckBillingSummaryBillsStatus` | 08:10 / 20:10 | Status de bills de resumo |
| `SyncIuguStatementsJob` | 23:50 | Extrato diario Iugu |
| `SyncAsaasStatementsJob` | 23:50 | Extrato diario Asaas |

### Horarios fixos
| Job | Horario | Funcao |
|-----|---------|--------|
| `CreatePendingInvoices` | HH:10 (a cada hora) | Emissao de NFS-e pendentes |

### Mensais (Recorrencia)
| Job | Dia/Hora | Funcao |
|-----|----------|--------|
| `GenerateRecurrenceSnapshot` | Dia 25, 08:00 | Gera snapshot de pagamentos do mes |
| `SendSnapshotGeneratedReminder` (recurrence) | Dia 25, 09:00 | Email: lembrete de NF |
| `SendSnapshotGeneratedPushReminder` (recurrence) | Dia 25, 09:10 | Push: lembrete de NF |
| `DispatchSnapshotInvoices` (recurrence) | Dia 1, 08:00 | Emissao de NFS-e do snapshot |
| `DispatchSnapshotTransfers` (recurrence) | Dia 1, 08:30 | Transferencias do snapshot |
| `CloseCompletedSnapshotsJob` (recurrence) | Dias 1-5, 10:00 | Fecha snapshots completos |
| `NfsNotifyCollabJob` | Dias 4-5, 11h/15h/18h | Slack DM: cobrar NF do colaborador |
| `SendNFsSummaryCollab` | Dias 4 e 5, 10:00 | Resumo de NFs pendentes |
| `CheckMeiLimitAndNotify` | Dia 6, 10:00 | Alerta limite MEI |

### Semestrais (Premios - Abril e Outubro)
| Job | Dia/Hora | Funcao |
|-----|----------|--------|
| `GenerateAwardSnapshot` | Dia 15, 08:00 | Gera snapshot de premios |
| `SendSnapshotGeneratedReminder` (award) | Dia 15, 09:00 | Email: lembrete de NF premio |
| `SendSnapshotGeneratedPushReminder` (award) | Dia 15, 09:10 | Push: lembrete de NF premio |
| `DispatchSnapshotInvoices` (award) | Dia 25, 08:00 | Emissao de NFS-e premios |
| `DispatchSnapshotTransfers` (award) | Dia 25, 08:30 | Transferencias premios |
| `CloseCompletedSnapshotsJob` (award) | Dias 25-30, 10:00 | Fecha snapshots premios |
| `NfsAwardsNotifyCollabJob` | Dias 29-30, 11h/15h/18h | Slack DM: cobrar NF premio |
| `SendNFsAwardsSummaryCollab` | Dias 29 e 30, 10:00 | Resumo NFs premios |
| `CheckMeiLimitAndNotify` (extra) | Dia 30, 10:00 | Alerta limite MEI (abr/out) |

---

## 7. Filas (Queues)

- **Driver**: database (tabelas `jobs`, `job_batches`, `failed_jobs` no landlord)
- **Restart em deploy**: `php artisan queue:restart` no CI/CD
- **Dev**: `php artisan queue:listen --tries=1`
- Todos os 41 jobs implementam `ShouldQueue`
- Macro `tenantJob` itera sobre todos os tenants e dispatcha no contexto de cada um

---

## 8. Fluxos Identificados

### 8.1 Fluxo de Cobranca (Charge)
```
Recorrencia ativa → RunFinanceSync gera cobranças
  → Emissao boleto Asaas/Iugu
  → Emissao NFS-e Spedy/Asaas
  → Email para cliente (cobranca gerada)
  → Cron verifica status (a cada 2min Asaas/Iugu)
  → Webhook Asaas confirma pagamento
  → Se vencida: email overdue + push notification
  → Se paga: atualiza status + reconcilia extrato
```

### 8.2 Fluxo de Pagamento a Colaborador
```
Dia 25: GenerateRecurrenceSnapshot cria snapshot draft
  → Email + Push lembrete para colaboradores enviarem NF
  → Dias 1-5: cobranca de NF via Slack DM (3x/dia)
  → Dia 1: DispatchSnapshotInvoices emite NFS-e
  → Dia 1: DispatchSnapshotTransfers executa TED/PIX via Asaas
  → Webhook Asaas confirma transferencia
  → Dias 1-5: CloseCompletedSnapshotsJob fecha snapshot
```

### 8.3 Fluxo de Pagamento Operacional
```
Usuario cria transacao (boleto / TED / PIX / PIX QR Code)
  → Leitura de codigo de barras / QR Code / AI (OpenAI/Google Vision)
  → Cria FinanceTransaction (status: draft)
  → Batch validation → process-bills
  → ProcessPaymentJob envia via Asaas
  → Webhook Asaas retorna status
  → Comprovante armazenado no Google Cloud Storage
  → Extrato reconciliado automaticamente
```

### 8.4 Fluxo de Sincronizacao
```
RunFinanceSync (2x/dia ou manual):
  1. ClientsSyncService → sync clientes com Asaas
  2. InvoiceSyncService → sync NFS-e
  3. RecurrenceSyncService → gera cobrancas recorrentes
  4. PendingChargesGenerationService → emissao em lote
  5. ChargesSyncService → atualiza status de cobrancas
  → Progresso rastreado em finance_sync_runs
```

### 8.5 Fluxo de Reembolso
```
Webhook externo (Exent Space via API) → addRefund
  → Registro em finance_refunds
  → Notificacoes periodicas (dias 2, 17 + a cada 2 dias uteis)
  → Aprovacao/Rejeicao manual na interface
```

### 8.6 Fluxo de Autenticacao
```
Google OAuth → restricao de dominio Google Workspace
  → Selecao de tenant (se multiplos)
  → Sessao com tenant_id → middleware InitializeTenancyBySession
```

---

## 9. Estrutura do Banco de Dados (Resumo)

### Tabelas Landlord (centrais - 16 tabelas)
| Tabela | Descricao |
|--------|-----------|
| `users` | Usuarios do sistema (name, email, type, permissions JSON) |
| `sessions` | Sessoes ativas |
| `tenants` | Empresas (multi-tenant) |
| `domains` | Dominios por tenant |
| `tenant_user` | Relacao N:N usuarios ↔ tenants |
| `integration_providers` | Provedores de integracao (Google, Asaas, Iugu, etc) |
| `integration_tokens` | Credenciais criptografadas por provedor |
| `company_token` | Vinculo tenant ↔ token de integracao |
| `email_configs` | Config SMTP por tenant/modulo |
| `personal_access_tokens` | Tokens API (Sanctum) |
| `jobs` / `job_batches` / `failed_jobs` | Fila de jobs |
| `cache` / `cache_locks` | Cache do sistema |
| `password_reset_tokens` | Reset de senha |

### Tabelas Tenant (por empresa - 51 tabelas)

**Core (RH/Operacional):**
| Tabela | Descricao |
|--------|-----------|
| `core_collaborators` | Colaboradores (dados pessoais, docs, endereco, Slack ID) |
| `core_collaborator_contracts` | Contratos de trabalho |
| `core_clients` | Clientes institucionais |
| `core_client_contacts` | Contatos dos clientes |
| `core_projects` | Projetos vinculados a clientes |
| `core_project_contracts` | Contratos de projetos (SLA, preco) |
| `core_collab_pending_changes` | Alteracoes pendentes vindas do Exent Space |
| `core_email_templates` | Templates de email do Core |
| `core_email_to` | Destinatarios de email do Core |

**Finance (Financeiro):**
| Tabela | Descricao |
|--------|-----------|
| `finance_clients` | Dados fiscais do cliente (CNPJ, endereco, Asaas/Iugu ID) |
| `finance_client_contacts` | Contatos financeiros |
| `finance_projects` | Config financeira do projeto (billing_type, valor, descricao NF) |
| `finance_recurrence` | Regras de recorrencia (dia emissao, vencimento, valor, ciclo) |
| `finance_charges` | Cobrancas (boleto/PIX, NFS-e, status, multas) |
| `finance_campaigns` | Campanhas Incorp (Monday.com) |
| `finance_billing_summary` | Resumos de cobranca agrupados |
| `finance_billing_summary_bills` | Bills individuais do resumo |
| `finance_invoices` | NFs de colaboradores (recorrencia/premio) |
| `finance_invoice_test` | NFS-e de teste |
| `finance_refunds` | Reembolsos |
| `finance_collaborator_bank_accounts` | Contas bancarias dos colaboradores |
| `finance_collaborator_payments` | Valores de pagamento por colaborador |
| `finance_payments_collab_recurrence` | Itens recorrentes de pagamento a colaborador |
| `finance_payment_collab_snapshots` | Lotes de pagamento (draft/execution/closed) |
| `finance_payment_collab_snapshot_items` | Itens individuais do lote |
| `finance_transactions` | Transacoes financeiras (TED/PIX/Boleto/PIX_QR) |
| `finance_transactions_transfers` | Dados de transferencia (banco, PIX key, end-to-end) |
| `finance_transactions_bills` | Dados de boleto (codigo barras, beneficiario) |
| `finance_transactions_pix_qrcode` | Dados de PIX QR Code (payload, valores) |
| `finance_transfer_accounts` | Contas cadastradas para transferencia |
| `finance_ca_statement` | Extrato de conta corrente |
| `finance_iugu_statements` | Extrato detalhado Iugu |
| `finance_bank_balance` | Saldos bancarios |
| `finance_ca_flow_config` | Config de fluxo de conta corrente |
| `finance_ca_flow_limits` | Limites de transferencia (Asaas/Iugu) |
| `finance_config` | Configuracoes gerais do Finance |
| `finance_config_beneficiaries` | Beneficiarios cadastrados (Custo/Despesa) |
| `finance_email_templates` | Templates de email do Finance |
| `finance_email_to` | Destinatarios de email do Finance |
| `finance_mei_limit` | Configuracao de limite MEI |
| `finance_logs` | Log de operacoes financeiras |
| `finance_billing_mail_logs` | Log de emails enviados |
| `finance_sync_runs` | Historico de sincronizacoes |

**Wiki (Base de Conhecimento):**
| Tabela | Descricao |
|--------|-----------|
| `wiki_categories` | Categorias |
| `wiki_subcategories` | Subcategorias |
| `wiki_trails` | Trilhas de aprendizado |
| `wiki_trail_modules` | Modulos de trilha |
| `wiki_trail_submodules` | Submodulos de trilha |
| `wiki_trail_topics` | Topicos |
| `wiki_articles` | Artigos (title, content longText, status draft/published) |
| `wiki_article_category` | Relacao N:N artigo ↔ subcategoria |

---

## 10. Middlewares

| Middleware | Funcao |
|------------|--------|
| `InitializeTenancyBySession` | Inicializa tenant via sessao (rotas web) |
| `InitializeTenancyByHeader` | Inicializa tenant via header (rotas API) |
| `EnsureGoogleWorkspaceDomain` | Restringe login a dominio Google Workspace |
| `MasterAccess` | Verifica acesso ao painel Master |
| `RestrictEmails` | Restringe acesso a emails autorizados no Finance |
| `CanProcessPayments` | Verifica permissao para processar pagamentos |
| `AsaasWebhookMiddleware` | Valida webhook Asaas |
| `N8nTokenMiddleware` | Valida token N8N |
| `IntegrationApiTokenMiddleware` | Valida token de API de integracao |
| `TrustProxies` | Proxies confiaveis |

---

## 11. Stack Tecnica

| Camada | Tecnologia |
|--------|-----------|
| Backend | Laravel 12, PHP 8.2+ |
| Multi-tenancy | stancl/tenancy v3 (DB por tenant) |
| Banco de Dados | SQLite (default) / MySQL / PostgreSQL |
| Autenticacao | Google OAuth via laravel/socialite |
| API Auth | laravel/sanctum (personal access tokens) |
| Frontend | Blade + Inspinia Theme + Tailwind CSS 4 |
| Build | Vite 7 + laravel-vite-plugin |
| DataTables | yajra/laravel-datatables |
| HTTP Client | GuzzleService (wrapper centralizado) |
| Fila | Database driver (Laravel Queue) |
| CI/CD | GitHub Actions → SSH deploy |
| Servidor | Ubuntu (www-data, porta 1097) |
| Alertas | Slack Webhooks (spatie/laravel-slack-alerts) |

---

## 12. Dependencias Composer (Producao)

| Pacote | Versao | Uso |
|--------|--------|-----|
| `laravel/framework` | ^12.0 | Framework base |
| `stancl/tenancy` | ^3.0 | Multi-tenancy |
| `laravel/sanctum` | ^4.0 | API tokens |
| `laravel/socialite` | ^5.23 | OAuth (Google) |
| `laravel/tinker` | ^2.10 | Console REPL |
| `google/cloud-storage` | ^1.48 | Google Cloud Storage |
| `google/cloud-vision` | ^2.1 | Google Cloud Vision OCR |
| `spatie/laravel-slack-alerts` | ^1.7 | Alertas Slack |
| `yajra/laravel-datatables-oracle` | ^12.0 | DataTables server-side |
