# Dependency Map - Nexos (Exent)

> Mapa de dependencias entre camadas do sistema. Gerado em 2026-06-18.
> Fluxo: Route → Controller → Service → Model → Database

---

## 1. Modulo Finance - Cobrancas

```
POST finance/charges/store
POST finance/charges/update/{id}
POST finance/charges/create/payment/{id}
POST finance/charges/cancel/appointment/{id}
POST finance/charges/external/paid/{id}
POST finance/charges/cancel/nfs-and-payment/{id}
POST finance/charges/extend/second-copy/{id}
GET  finance/charges/
GET  finance/charges/add/{projectId?}
GET  finance/charges/edit/{id}
GET  finance/charges/details/{id}
  → ChargesController
      → GeneralService
      → FormatHelper, InvoiceDescriptionHelper, ChargeDescriptionHelper
      → IuguChargesController (emissao boleto Iugu)
      │   → GuzzleService → Iugu API
      │   → LogService → FinanceLog
      │   → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      │   → FormatHelper
      │   → FinanceClient, FinanceCharge, FinanceClientContact
      → AsaasApiController (emissao boleto/PIX Asaas)
      │   → GuzzleService → Asaas API
      │   → IntegrationCredentialService
      → SpedyApiController (emissao NFS-e)
      │   → GuzzleService → Spedy API
      │   → LogService → FinanceLog
      │   → IntegrationCredentialService
      │   → FormatHelper, InvoiceDescriptionHelper
      │   → FinanceCharge, FinanceClient, FinanceProject, FinanceInvoiceTest
      → FinanceCharge → finance_charges
      → FinanceClient → finance_clients
      → FinanceProject → finance_projects
      → FinanceRecurrence → finance_recurrence
      → FinanceClientContact → finance_client_contacts
      → FinanceLog → finance_logs
```

---

## 2. Modulo Finance - Transacoes (Pagamentos Operacionais)

```
POST finance/transactions/transfers/add
POST finance/transactions/bills/update/{id}
POST finance/transactions/pix/update/{id}
POST finance/transactions/validate-batch
POST finance/transactions/process-bills
POST finance/transactions/barcode-info
POST finance/transactions/pix/get-info
POST finance/transactions/same-ownership/add
POST finance/transactions/collaborator-manual/add
POST finance/transactions/retry/{id}
  → TransactionsController
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → GuzzleService → HTTP Client generico
      → LogService → FinanceLog, FinanceMailLog
      → FormatHelper, BoletoHelper
      → AsaasApiController (pagamentos Asaas)
      │   → GuzzleService → Asaas API
      │   → IntegrationCredentialService
      → BucketGoogleApiController (upload comprovantes)
      │   → IntegrationCredentialService
      │   → Google Cloud Storage API
      │   → Google Cloud Vision API (OCR)
      → OpenaiApiController (extracao AI de dados)
      │   → GuzzleService → OpenAI API (GPT-4)
      │   → IntegrationCredentialService
      → GeminiApiController (extracao AI alternativa)
      │   → GuzzleService → Gemini API
      │   → IntegrationCredentialService
      → ProcessPaymentJob (dispatch)
      │   → PaymentServiceFactory
      │   │   → AsaasPaymentService → Asaas API
      │   │   → IuguPaymentService → Iugu API, Google Cloud Storage
      │   → LogService
      │   → FinanceTransaction
      → FinanceTransaction → finance_transactions
      → FinanceTransactionBill → finance_transactions_bills
      → FinanceTransactionTransfer → finance_transactions_transfers
      → FinanceTransactionPixQrcode → finance_transactions_pix_qrcode
      → FinanceTransferAccount → finance_transfer_accounts
      → FinanceConfigBeneficiary → finance_config_beneficiaries
      → FinancePaymentCollabSnapshot → finance_payment_collab_snapshots
      → FinancePaymentCollabSnapshotItem → finance_payment_collab_snapshot_items
```

---

## 3. Modulo Finance - Pagamentos a Colaboradores (Snapshots)

```
GET  finance/payments/collaborator/snapshot/recurrence
GET  finance/payments/collaborator/snapshot/recurrence/view/{id}
GET  finance/payments/collaborator/snapshot/award
POST finance/payments/collaborator/snapshot/recurrence/item/update
POST finance/payments/collaborator/snapshot/recurrence/item/cancel
POST finance/payments/collaborator/snapshot/recurrence/item/restore
  → PaymentsController
      → SnapshotStatusService
      │   → FinancePaymentCollabSnapshot → finance_payment_collab_snapshots
      │   → FinancePaymentCollabSnapshotItem → finance_payment_collab_snapshot_items
      → LogService → FinanceLog, FinanceMailLog
      → BucketGoogleApiController (visualizacao de arquivos)
      → FinancePaymentCollabSnapshot → finance_payment_collab_snapshots
      → FinancePaymentCollabSnapshotItem → finance_payment_collab_snapshot_items
      → FinanceTransferAccount → finance_transfer_accounts
      → FinanceConfigBeneficiary → finance_config_beneficiaries
```

---

## 4. Modulo Finance - Recorrencia

```
GET  finance/recurrence/
GET  finance/recurrence/add/{projectId?}
GET  finance/recurrence/edit/{id}
GET  finance/recurrence/details/{id}
POST finance/recurrence/store
POST finance/recurrence/update/{id}
POST finance/recurrence/toggle-status/{id}
POST finance/recurrence/reset-cycles/{id}
  → RecurrenceController
      → ChargesController (referencia direta)
      → FinanceRecurrence → finance_recurrence
      → FinanceCharge → finance_charges
```

---

## 5. Modulo Finance - Clientes Faturaveis

```
GET  finance/billable_client/
GET  finance/billable_client/add/
GET  finance/billable_client/edit/{id}/
GET  finance/billable_client/details/{id}/
POST finance/billable_client/store
POST finance/billable_client/update/{id}/
  → BillableClientController
      → FormatHelper
      → ChargesController (referencia direta)
      → FinanceClient → finance_clients
      → FinanceClientContact → finance_client_contacts
      → FinanceCharge → finance_charges
```

---

## 6. Modulo Finance - Resumo de Cobranca

```
GET  finance/billing_summary/
GET  finance/billing_summary/add
GET  finance/billing_summary/edit/{id}
GET  finance/billing_summary/sync/{id}
GET  finance/billing_summary/details/{id}
POST finance/billing_summary/store
POST finance/billing_summary/update/{id}
POST finance/billing_summary/sync/charges/{id}
POST finance/billing_summary/sync/save/{id}
  → SummaryController
      → ChargesController (referencia direta)
      → FinanceBillingSummary → finance_billing_summary
      → FinanceBillingSummaryBill → finance_billing_summary_bills
      → FinanceCharge → finance_charges
```

---

## 7. Modulo Finance - Gestao de NF (Invoices Colaborador)

```
GET  finance/invoices/
GET  finance/invoices/upload/{id_invoice?}
GET  finance/invoices/reports
GET  finance/invoices/collaborators
GET  finance/invoices/user_detail/{id}
GET  finance/invoices/edit/{id_invoice?}
POST finance/invoices/upload/store
POST finance/invoices/edit/store
POST finance/invoices/aprove/nfs
POST finance/invoices/reject/nfs
  → InvoicesController
      → FinanceMailService
      │   → MailService → EmailConfig (SMTP dinamico)
      │   │   → SmtpCredentialService → EmailConfig
      │   → SmtpCredentialService
      │   → FinanceEmailTemplate → finance_email_templates
      │   → FinanceRefund → finance_refunds
      → BucketGoogleApiController (upload NF)
      → OpenaiApiController (extracao valor NF)
      → FinanceInvoice → finance_invoices
      → FinanceClient → finance_clients
      → FinanceProject → finance_projects
      → FinanceClientContact → finance_client_contacts
```

---

## 8. Modulo Finance - Conta Corrente

```
GET  finance/current_account/iugu/bank_statement
GET  finance/current_account/asaas/bank_statement
GET  finance/current_account/{bankAccount}/bank_statement
GET  finance/current_account/{bankAccount}/bank_balance
GET  finance/current_account/iugu/statement_entry
GET  finance/current_account/asaas/statement_entry
POST finance/current_account/statement_entry/store
POST finance/current_account/bank_balance/store
  → CurrentAccountController
      → IuguStatementService
      │   → LogService → FinanceLog
      │   → FinanceCAStatement → finance_ca_statement
      │   → FinanceCharge → finance_charges
      │   → FinanceIuguStatements → finance_iugu_statements
      │   → FinanceTransaction → finance_transactions
      → AsaasStatementService
      │   → LogService → FinanceLog
      │   → FinanceCAStatement → finance_ca_statement
      │   → FinanceCharge → finance_charges
      │   → FinanceTransaction → finance_transactions
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → FinanceCAStatement → finance_ca_statement
      → FinanceBankBalance → finance_bank_balance
      → FinanceIuguStatements → finance_iugu_statements
```

---

## 9. Modulo Finance - Reembolsos

```
GET  finance/refunds/
POST finance/refunds/approve/{id}
POST finance/refunds/reject/{id}
  → RefundsController
      → FinanceMailService (email de aprovacao/rejeicao)
      │   → MailService → EmailConfig
      │   → SmtpCredentialService
      │   → FinanceEmailTemplate → finance_email_templates
      → GeneralService
      → BucketGoogleApiController (visualizacao comprovante)
      → FinanceRefund → finance_refunds
```

---

## 10. Modulo Finance - Sincronizacao

```
POST finance/sync/apply
POST finance/sync/status
POST finance/sync/progress/{runId}
POST finance/sync/active
  → SyncController
      → RunManualFinanceSync (dispatch)
      │   → ClientsSyncService
      │   │   → FinanceClient → finance_clients
      │   │   → FinanceClientContact → finance_client_contacts
      │   │   → AsaasApiController → Asaas API
      │   → InvoiceCreationService
      │   │   → FinanceCharge → finance_charges
      │   │   → FinanceClient → finance_clients
      │   │   → FinanceProject → finance_projects
      │   │   → SpedyApiController / AsaasApiController
      │   → RecurrenceSyncService
      │   │   → GeneralService
      │   │   → FinanceRecurrence → finance_recurrence
      │   │   → FinanceCharge → finance_charges
      │   → PendingChargesGenerationService
      │   │   → FinanceCharge → finance_charges
      │   │   → FinanceClient → finance_clients
      │   │   → FinanceClientContact → finance_client_contacts
      │   │   → FinanceProject → finance_projects
      │   │   → FinanceConfig → finance_config
      │   │   → Iugu API / Asaas API / Spedy API
      │   → ChargesSyncService
      │   │   → FinanceCharge → finance_charges
      │   │   → Iugu API / Asaas API
      │   → LogService → FinanceLog
      │   → FinanceSyncRun → finance_sync_runs
      │   → FinanceConfig → finance_config
      → FinanceSyncRun → finance_sync_runs
      → FinanceConfig → finance_config
```

---

## 11. Modulo Finance - Configuracoes

```
GET  finance/settings/
GET  finance/settings/bank-account
GET  finance/settings/bank-account/add
GET  finance/settings/bank-account/edit/{id}
GET  finance/settings/invoice/test
GET  finance/settings/current-account-flow
GET  finance/settings/email-template
GET  finance/settings/recurring-cost-expense
POST finance/settings/update-*
POST finance/settings/bank_account/store
POST finance/settings/invoice/test/store
  → ConfigController
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → SmtpCredentialService → EmailConfig
      → GuzzleService → HTTP Client
      → AsaasApiController (teste NFS-e)
      → FinanceConfig → finance_config
      → FinanceEmailTo → finance_email_to
      → FinanceTransferAccount → finance_transfer_accounts
      → FinanceConfigBeneficiary → finance_config_beneficiaries
```

---

## 12. Modulo Finance - Relatorios

```
GET  finance/reports/charges
GET  finance/reports/nfs
GET  finance/reports/collaborators
GET  finance/reports/operational
POST finance/reports/operational/upload-receipt
POST finance/reports/operational/cancel-scheduled/{id}
  → ReportController
      → FinanceFileService
      │   → FinanceTransaction → finance_transactions
      → LogService → FinanceLog, FinanceMailLog
      → BucketGoogleApiController (upload comprovante)
      → FinanceCharge → finance_charges
      → FinanceTransaction → finance_transactions
      → FinancePaymentCollabSnapshot → finance_payment_collab_snapshots
```

---

## 13. Modulo Finance - Incorp (Campanhas)

```
GET  finance/incorp/payments
GET  finance/incorp/syncProjectMonday
POST finance/incorp/sync/update
POST finance/incorp/generate/charges
POST finance/incorp/getCampaingsMonday
  → IncorpController
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → GeneralService
      → MondayApiController
      │   → GuzzleService → Monday.com GraphQL API
      │   → IntegrationCredentialService
      │   → FormulaService (calculos de campanha)
      → FinanceCampaign → finance_campaigns
      → FinanceCharge → finance_charges
      → FinanceClient → finance_clients
```

---

## 14. Modulo Finance - Balanco

```
GET  finance/balance_sheet/
  → BalanceSheetController
      → (sem dependencias de services/models - dados via views)
```

---

## 15. Modulo Finance - Dashboard

```
GET  finance/
POST finance/alerts/list/ajax
POST finance/alerts/solve/{id}
  → FinanceController
      → FinanceConfig → finance_config
      → FinanceCharge → finance_charges
      → FinanceRecurrence → finance_recurrence
      → FinanceLog → finance_logs
```

---

## 16. Modulo Finance - Webhooks (API)

```
POST api/finance/refunds/add
POST api/finance/refunds/get
POST api/finance/refunds/cancel
POST api/finance/invoices/add
POST api/finance/invoices/get
  [middleware: google.domain, tenancy.header]
  → FinanceWebhookController
      → FormatHelper
      → BucketGoogleApiController (upload Google Cloud)
      → OpenaiApiController (extracao AI)
      → FinanceRefund → finance_refunds
      → FinanceInvoice → finance_invoices
      → CoreCollaborator → core_collaborators

POST api/asaas/transaction_status
  [middleware: asaas]
  → AsaasWebhookController
      → LogService → FinanceLog
      → SlackAlertService
      │   → IntegrationCredentialService
      │   → Slack Webhook API (HTTP)
      → FinanceTransaction → finance_transactions
      → FinanceTransactionBill → finance_transactions_bills
      → FinanceTransactionTransfer → finance_transactions_transfers
      → FinancePaymentCollabSnapshotItem → finance_payment_collab_snapshot_items

POST api/n8n/mailNotification
  [middleware: n8n]
  → N8NWebhookController
      → NtfyApiController
      │   → GuzzleService → Ntfy.sh API
      │   → IntegrationCredentialService
```

---

## 17. Modulo Finance - API de Integracao (Exent Space)

```
GET  api/integration/collaborators
PUT  api/integration/collaborators/pair
POST api/integration/collaborators/sync
POST api/integration/refunds/add
POST api/integration/refunds/get
POST api/integration/refunds/cancel
POST api/integration/invoices/add
POST api/integration/invoices/get
  [middleware: integration.token, tenancy.header]
  → CollabController (Integrations)
      → CoreMailService
      │   → MailService → EmailConfig (SMTP)
      │   → SmtpCredentialService → EmailConfig
      │   → CoreEmailTemplate → core_email_templates
      → SlackAlertService → Slack Webhook
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → BucketGoogleApiController (upload)
      → OpenaiApiController (AI)
      → FormatHelper
      → CoreCollaborator → core_collaborators
      → CoreCollabPendingChange → core_collab_pending_changes
      → FinanceRefund → finance_refunds
      → FinanceInvoice → finance_invoices
```

---

## 18. Modulo Core - Colaboradores

```
GET  core/collaborator/
GET  core/collaborator/add/
GET  core/collaborator/edit/{id}/
GET  core/collaborator/details/{id}/
POST core/collaborator/store
POST core/collaborator/update/{id}/
POST core/collaborator/toggle-status/{id}/
POST core/collaborator/deactivate-account
POST core/collaborator/changes/approve/{id}
POST core/collaborator/changes/reject/{id}
  → CollaboratorController
      → GuzzleService → HTTP Client
      → CoreMailService
      │   → MailService → EmailConfig (SMTP)
      │   → SmtpCredentialService
      │   → CoreEmailTemplate → core_email_templates
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → FormatHelper
      → MondayApiController (sync Monday.com)
      │   → GuzzleService → Monday.com GraphQL API
      │   → IntegrationCredentialService
      │   → FormulaService
      → SlackApiController (DMs Slack)
      │   → GuzzleService → Slack Bot API
      │   → IntegrationCredentialService
      → BucketGoogleApiController (upload documentos)
      │   → Google Cloud Storage
      │   → Google Cloud Vision
      → CoreCollaborator → core_collaborators
      → CoreCollaboratorContract → core_collaborator_contracts
      → CoreCollabPendingChange → core_collab_pending_changes
      → FinanceCollaboratorBankAccount → finance_collaborator_bank_accounts
      → FinanceCollaboratorPayment → finance_collaborator_payments
```

---

## 19. Modulo Core - Clientes Institucionais (compartilhado Core/Finance)

```
GET  {core|finance}/institutional_client/
GET  {core|finance}/institutional_client/add/
GET  {core|finance}/institutional_client/edit/{id}/
GET  {core|finance}/institutional_client/details/{id}/
POST {core|finance}/institutional_client/store
POST {core|finance}/institutional_client/update/{id}/
  → InstitutionalClientController
      → IntegrationCredentialService → CompanyToken, IntegrationProvider, IntegrationToken
      → FormatHelper
      → MondayApiController (sync Monday.com)
      → CoreClient → core_clients
      → CoreClientContact → core_client_contacts
      → FinanceConfig → finance_config
      → FinanceCharge → finance_charges
```

---

## 20. Modulo Core - Projetos (compartilhado Core/Finance)

```
GET  {core|finance}/projects/
GET  {core|finance}/projects/add/
GET  {core|finance}/projects/edit/{id}/
GET  {core|finance}/projects/details/{id}/
POST {core|finance}/projects/store
POST {core|finance}/projects/update/{id}/
POST {core|finance}/projects/disable/{id}/
  → ProjectController
      → FormatHelper
      → MondayApiController (sync Monday.com)
      → ChargesController (referencia direta)
      → CoreProject → core_projects
      → CoreClient → core_clients
      → CoreCollaborator → core_collaborators
      → CoreProjectContract → core_project_contracts
      → FinanceClient → finance_clients
      → FinanceClientContact → finance_client_contacts
      → FinanceProject → finance_projects
      → FinanceCharge → finance_charges
      → FinanceBillingSummary → finance_billing_summary
      → FinanceRecurrence → finance_recurrence
      → FinanceConfig → finance_config
```

---

## 21. Modulo Core - Configuracoes

```
GET  core/settings
GET  core/settings/email-recipients
GET  core/settings/email-exent-template
POST core/settings/update-email-to
POST core/settings/update-email-template
POST core/settings/send-email-test
  → CoreSettingsController
      → GuzzleService
      → SmtpCredentialService → EmailConfig
      → CoreEmailTo → core_email_to
      → CoreEmailTemplate → core_email_templates
```

---

## 22. Modulo Wiki

```
GET  wiki/
GET  wiki/artigo/{slug}
GET  wiki/editor
GET  wiki/editor/{id}
GET  wiki/drafts
GET  wiki/configuracoes
GET  wiki/file/{path}
  → WikiController
      → WikiArticle → wiki_articles

GET  wiki/api/articles
POST wiki/api/articles
PUT  wiki/api/articles/{id}
DELETE wiki/api/articles/{id}
POST wiki/api/articles/upload-image
  → ArticleController
      → WikiArticle → wiki_articles
      → WikiCategory → wiki_categories

GET  wiki/api/categories
POST wiki/api/categories
PUT  wiki/api/categories/{id}
POST wiki/api/categories/{id}/subcategories
PUT  wiki/api/subcategories/{id}
  → CategoryController
      → WikiCategory → wiki_categories
      → WikiSubcategory → wiki_subcategories

GET  wiki/api/trails
POST wiki/api/trails
PUT  wiki/api/trails/{id}
POST wiki/api/trails/{id}/modules
PUT  wiki/api/modules/{id}
POST wiki/api/modules/{id}/submodules
PUT  wiki/api/submodules/{id}
POST wiki/api/submodules/{id}/topics
PUT  wiki/api/topics/{id}
  → TrailTaxonomyController
      → WikiTrail → wiki_trails
      → WikiTrailModule → wiki_trail_modules
      → WikiTrailSubmodule → wiki_trail_submodules
      → WikiTrailTopic → wiki_trail_topics
```

---

## 23. Sistema Central (Landlord)

```
GET  /
  → SystemController (login page)

GET  auth/google
GET  auth/google/callback
POST logout
  → GoogleController
      → User → users

GET  /tenant/select
POST /tenant/select
  → TenantSelectionController

GET  /dashboard
  → SystemController

GET  master/
GET  master/company
GET  master/company/add
GET  master/company/{tenant}/edit
POST master/company/store
POST master/company/{tenant}/update
GET  master/credentials
GET  master/credentials/add
GET  master/credentials/{tenant}/edit
POST master/credentials/store
POST master/credentials/{tenant}/update
  [middleware: auth, master]
  → MasterController
      → GuzzleService
      → User → users
      → Tenant → tenants
      → IntegrationProvider → integration_providers
      → IntegrationToken → integration_tokens
      → CompanyToken → company_token
      → EmailConfig → email_configs
```

---

## 24. Jobs → Services (Mapa Completo)

### Jobs de Sincronizacao

```
RunFinanceSync
  → LogService
  → FinanceSyncRun
  → dispatches: RunManualFinanceSync

RunManualFinanceSync
  → ClientsSyncService → FinanceClient, FinanceClientContact
  → InvoiceCreationService → FinanceCharge, FinanceClient, FinanceProject
  → RecurrenceSyncService → FinanceRecurrence, FinanceCharge, GeneralService
  → PendingChargesGenerationService → FinanceCharge, FinanceClient, FinanceClientContact, FinanceProject, FinanceConfig
  → ChargesSyncService → FinanceCharge
  → LogService → FinanceLog
  → FinanceSyncRun, FinanceConfig

CheckChargesStatus → ChargesSyncService, LogService
SyncInvoiceStatus → InvoiceSyncService, LogService
CreatePendingInvoices → InvoiceCreationService, LogService
CheckTestInvoices → FinanceInvoiceTest
```

### Jobs de Pagamentos

```
ProcessPaymentJob
  → PaymentServiceFactory
  │   → AsaasPaymentService → Asaas API, FinanceCAStatement, FinanceTransaction
  │   → IuguPaymentService → Iugu API, Google Cloud Storage, GuzzleService
  │       → LogService, FinanceFileService, IntegrationCredentialService, SlackAlertService
  │       → FinanceTransactionBill, FinanceTransactionTransfer, FinancePaymentCollabSnapshotItem, FinanceTransaction
  → LogService
  → FinanceTransaction

DispatchScheduledPaymentsJob
  → SlackAlertService → Slack Webhook
  → FinanceTransaction
  → dispatches: ProcessPaymentJob

DispatchSnapshotTransfers
  → SnapshotTransferService
  │   → LogService, GeneralService
  │   → FinancePaymentCollabSnapshotItem, FinancePaymentCollabSnapshot
  │   → FinanceTransaction, FinanceTransactionTransfer, CoreCollaborator
  → LogService
```

### Jobs de Snapshots

```
GenerateRecurrenceSnapshot
  → RecurrenceSnapshotService
  │   → FinancePaymentCollabSnapshot, FinancePaymentCollabSnapshotItem
  │   → FinancePaymentsCollaboratorRecurrence, CoreCollaborator
  → LogService

GenerateAwardSnapshot
  → AwardSnapshotService
  │   → FinancePaymentCollabSnapshot, FinancePaymentCollabSnapshotItem
  │   → CoreCollaborator
  → LogService

DispatchSnapshotInvoices
  → SnapshotInvoiceService
  │   → FinanceInvoice, FinancePaymentCollabSnapshot
  │   → FinancePaymentCollabSnapshotItem, CoreCollaboratorContract
  → LogService

CloseCompletedSnapshotsJob → SnapshotStatusService
  → FinancePaymentCollabSnapshot, FinancePaymentCollabSnapshotItem
```

### Jobs de Verificacao de Pagamentos

```
CheckIuguPaymentsJob
  → IuguPaymentService → Iugu API, GuzzleService, LogService, FinanceFileService
  │   → IntegrationCredentialService, SlackAlertService
  │   → FinanceTransactionBill, FinanceTransactionTransfer, FinancePaymentCollabSnapshotItem, FinanceTransaction
  → LogService, IntegrationCredentialService
  → FinanceTransaction, FinancePaymentCollabSnapshotItem

CheckAsaasPaymentsJob
  → AsaasCheckPaymentsService → Asaas API, Google Cloud Storage
  │   → FinanceFileService, LogService, IntegrationCredentialService, SlackAlertService
  │   → FinancePaymentCollabSnapshotItem, FinanceTransaction
  → LogService

CheckAsaasInvoiceCancellationsJob
  → AsaasCheckInvoiceService → Asaas API
  │   → LogService → FinanceLog
  │   → FinanceCharge
  → LogService
```

### Jobs de Extratos

```
SyncIuguStatementsJob
  → IuguStatementService
  │   → LogService → FinanceLog
  │   → FinanceCAStatement, FinanceCharge, FinanceIuguStatements, FinanceTransaction
  → LogService, IntegrationCredentialService

SyncAsaasStatementsJob
  → AsaasStatementService
  │   → LogService → FinanceLog
  │   → FinanceCAStatement, FinanceCharge, FinanceTransaction
  → LogService
```

### Jobs de Notificacao - Email Cliente

```
SendChargeGeneratedNotifications → EmailChargeService, LogService
SendChargeDueSoonNotifications → EmailChargeService, LogService
SendChargeOverdueNotifications → EmailChargeService, LogService
ResendFailedChargeNotifications → EmailChargeService, LogService
  EmailChargeService
    → FinanceMailService → MailService, SmtpCredentialService, FinanceEmailTemplate
    → GeneralService
    → IntegrationCredentialService
    → FinanceCharge, FinanceClientContact, FinanceClient

SendSummaryGeneratedNotifications → EmailSummaryService, LogService
SendSummaryNotification → EmailSummaryService, LogService
SendSummaryChargeCanceled → EmailSummaryService, LogService
ResendFailedSummaryNotifications → EmailSummaryService, LogService
  EmailSummaryService
    → FinanceMailService, LogService, IntegrationCredentialService
    → FinanceCharge, FinanceClientContact, FinanceBillingSummary, FinanceBillingSummaryBill
```

### Jobs de Notificacao - Email Interno

```
SendNFsAlertCollab → EmailNFsCollabService, LogService
SendNFsAwardsAlertCollab → EmailNFsCollabService, LogService
SendNFsSummaryCollab → EmailNFsCollabService, LogService
SendNFsAwardsSummaryCollab → EmailNFsCollabService, LogService
  EmailNFsCollabService
    → FinanceMailService, IntegrationCredentialService
    → FinanceInvoice, FinanceEmailTo

SendSnapshotGeneratedReminder → SnapshotGeneratedMailService
  SnapshotGeneratedMailService
    → FinanceMailService
    → FinancePaymentCollabSnapshot, FinancePaymentCollabSnapshotItem, FinanceEmailTo
```

### Jobs de Notificacao - Slack DM

```
NfsNotifyCollabJob → SlackNFsCollabService
NfsAwardsNotifyCollabJob → SlackNFsCollabService
  SlackNFsCollabService
    → SlackAlertService → Slack Webhook
    → SlackApiController → Slack Bot API
    → FinanceInvoice
```

### Jobs de Notificacao - Push

```
SendChargesOverduePushNotification → PushNotificationService, LogService
SendSnapshotGeneratedPushReminder → PushNotificationService, LogService
  PushNotificationService
    → EmailChargeService
    → NtfyApiController → Ntfy.sh API
    → FinanceCharge, FinancePaymentCollabSnapshot
```

### Jobs de Alertas e Outros

```
SendFinanceLogAlerts → SlackAlertService → Slack Webhook
  → FinanceLog

SendRefundsPendingNotification → LogService
  (notifica reembolsos pendentes internamente)

CheckBillingSummaryBillsStatus → BillingSummaryStatusService, LogService
  BillingSummaryStatusService → FinanceBillingSummaryBill, FinanceCharge

CheckCertificateNF → CertificateNFService, LogService
  CertificateNFService → FinanceMailService, FinanceConfig, FinanceEmailTo

CheckMeiLimitAndNotify → FinanceInvoiceLimitService, LogService
  FinanceInvoiceLimitService → FinanceMailService, FinanceInvoice, FinanceMeiLimit, FinanceEmailTo

CheckCollabBirthdaysJob → CoreBirthdayCollabService
  CoreBirthdayCollabService
    → MailService, SlackAlertService, SmtpCredentialService
    → CoreCollaborator, CoreEmailTo
```

---

## 25. Models → Tabelas (Mapa Completo)

### Landlord (Central)

```
User                  → users
Tenant                → tenants (stancl/tenancy)
TenantUser            → tenant_user
IntegrationProvider   → integration_providers
IntegrationToken      → integration_tokens
CompanyToken          → company_token
EmailConfig           → email_configs
```

### Tenant - Core

```
CoreCollaborator          → core_collaborators
CoreCollaboratorContract  → core_collaborator_contracts
CoreClient                → core_clients
CoreClientContact         → core_client_contacts
CoreProject               → core_projects
CoreProjectContract       → core_project_contracts
CoreCollabPendingChange   → core_collab_pending_changes
CoreEmailTemplate         → core_email_templates
CoreEmailTo               → core_email_to
```

### Tenant - Finance

```
FinanceClient                         → finance_clients
FinanceClientContact                  → finance_client_contacts
FinanceProject                        → finance_projects
FinanceRecurrence                     → finance_recurrence
FinanceCharge                         → finance_charges
FinanceCampaign                       → finance_campaigns
FinanceBillingSummary                 → finance_billing_summary
FinanceBillingSummaryBill             → finance_billing_summary_bills
FinanceInvoice                        → finance_invoices
FinanceInvoiceTest                    → finance_invoice_test
FinanceRefund                         → finance_refunds
FinanceCollaboratorBankAccount        → finance_collaborator_bank_accounts
FinanceCollaboratorPayment            → finance_collaborator_payments
FinancePaymentsCollaboratorRecurrence → finance_payments_collab_recurrence
FinancePaymentCollabSnapshot          → finance_payment_collab_snapshots
FinancePaymentCollabSnapshotItem      → finance_payment_collab_snapshot_items
FinanceTransaction                    → finance_transactions
FinanceTransactionBill                → finance_transactions_bills
FinanceTransactionTransfer            → finance_transactions_transfers
FinanceTransactionPixQrcode           → finance_transactions_pix_qrcode
FinanceTransferAccount                → finance_transfer_accounts
FinanceCAStatement                    → finance_ca_statement
FinanceIuguStatements                 → finance_iugu_statements
FinanceBankBalance                    → finance_bank_balance
FinanceCAFlowConfig                   → finance_ca_flow_config
FinanceCAFlowLimit                    → finance_ca_flow_limits
FinanceConfig                         → finance_config
FinanceConfigBeneficiary              → finance_config_beneficiaries
FinanceEmailTemplate                  → finance_email_templates
FinanceEmailTo                        → finance_email_to
FinanceMeiLimit                       → finance_mei_limit
FinanceLog                            → finance_logs
FinanceMailLog                        → finance_billing_mail_logs
FinanceSyncRun                        → finance_sync_runs
```

### Tenant - Wiki

```
WikiArticle         → wiki_articles
WikiArticleCategory → wiki_article_category
WikiCategory        → wiki_categories
WikiSubcategory     → wiki_subcategories
WikiTrail           → wiki_trails
WikiTrailModule     → wiki_trail_modules
WikiTrailSubmodule  → wiki_trail_submodules
WikiTrailTopic      → wiki_trail_topics
```

---

## 26. Relacionamentos entre Models (Diagrama ER Simplificado)

### Core

```
User ←→ Tenant (N:N via tenant_user)
Tenant → CompanyToken → IntegrationToken → IntegrationProvider
Tenant → EmailConfig

CoreClient → CoreClientContact (1:N)
CoreClient → CoreProject (1:N)
CoreCollaborator → CoreCollaboratorContract (1:N)
CoreCollaborator → FinanceCollaboratorBankAccount (1:N)
CoreCollaborator → FinanceCollaboratorPayment (1:N)
CoreCollaborator → CoreCollabPendingChange (1:N)
CoreProject → CoreProjectContract (1:N)
CoreProject → FinanceProject (1:N)
```

### Finance - Faturamento

```
FinanceClient → CoreClient (N:1)
FinanceClient → FinanceClientContact (1:N)
FinanceProject → CoreProject (N:1)
FinanceProject → FinanceClient (N:1)
FinanceProject → CoreProjectContract (N:1)
FinanceRecurrence → CoreProject (N:1)
FinanceRecurrence → FinanceClient (N:1)
FinanceCharge → CoreProject (N:1)
FinanceCharge → FinanceClient (N:1)
FinanceCharge → FinanceRecurrence (N:1)
FinanceCharge → FinanceCharge [parent_charge] (self-ref)
FinanceCampaign → FinanceProject (N:1)
FinanceCampaign → FinanceClient (N:1)
FinanceBillingSummary → FinanceBillingSummaryBill (1:N)
```

### Finance - Pagamentos

```
FinancePaymentCollabSnapshot → FinancePaymentCollabSnapshotItem (1:N)
FinancePaymentCollabSnapshotItem → CoreCollaborator (N:1)
FinancePaymentCollabSnapshotItem → FinanceTransaction (N:1)
FinancePaymentCollabSnapshotItem → FinanceCollaboratorBankAccount (N:1)
FinancePaymentsCollaboratorRecurrence → CoreCollaborator (N:1)
FinancePaymentsCollaboratorRecurrence → FinanceCollaboratorBankAccount (N:1)
FinanceInvoice → CoreCollaborator (N:1)
```

### Finance - Transacoes

```
FinanceTransaction → FinanceTransactionTransfer (1:1)
FinanceTransaction → FinanceTransactionBill (1:1)
FinanceTransaction → FinanceTransactionPixQrcode (1:1)
FinanceTransaction → FinanceTransaction [retry] (self-ref)
FinanceTransactionTransfer → FinancePaymentCollabSnapshotItem (N:1)
FinanceTransactionTransfer → FinanceTransferAccount (N:1)
FinanceTransactionBill → FinanceConfigBeneficiary (N:1)
FinanceTransactionPixQrcode → FinanceConfigBeneficiary (N:1)
```

### Finance - Extratos

```
FinanceCAStatement → FinanceIuguStatements (N:1)
FinanceCAStatement → FinanceTransaction [asaas] (N:1)
FinanceIuguStatements → FinanceCharge (N:1)
FinanceIuguStatements → FinanceTransaction (N:1)
```

### Wiki

```
WikiCategory → WikiSubcategory (1:N)
WikiCategory → WikiArticle (1:N)
WikiSubcategory ←→ WikiArticle (N:N via wiki_article_category)
WikiTrail → WikiTrailModule (1:N)
WikiTrail → WikiArticle (1:N)
WikiTrailModule → WikiTrailSubmodule (1:N)
WikiTrailModule → WikiArticle (1:N)
WikiTrailSubmodule → WikiTrailTopic (1:N)
WikiTrailSubmodule → WikiArticle (1:N)
WikiTrailTopic → WikiArticle (1:N)
WikiArticle → User (N:1)
```

---

## 27. Services Compartilhados (Usados por Multiplas Camadas)

```
IntegrationCredentialService
  Usado por: 15+ controllers e services
  Funcao: Busca credenciais de API por tenant/provider
  Models: CompanyToken, IntegrationProvider, IntegrationToken

GuzzleService
  Usado por: 10+ controllers e services
  Funcao: Cliente HTTP centralizado (GET, POST, PUT, DELETE)
  Externo: Todas as APIs (Asaas, Iugu, Spedy, Monday, Slack, OpenAI, Ntfy)

LogService
  Usado por: 25+ jobs e services
  Funcao: Registro de operacoes/erros financeiros
  Models: FinanceLog, FinanceMailLog

MailService
  Usado por: FinanceMailService, CoreMailService, CoreBirthdayCollabService
  Funcao: Envio de emails com SMTP dinamico
  Models: EmailConfig
  Dependencias: SmtpCredentialService, GeneralMail

SlackAlertService
  Usado por: 8+ services e jobs
  Funcao: Alertas via Slack webhook
  Dependencias: IntegrationCredentialService

SmtpCredentialService
  Usado por: MailService, ConfigController, CoreSettingsController
  Funcao: Resolve credenciais SMTP por tenant/modulo
  Models: EmailConfig

FinanceMailService
  Usado por: 6+ services (EmailChargeService, EmailSummaryService, EmailNFsCollabService, etc)
  Funcao: Montagem e envio de emails financeiros com templates
  Models: FinanceEmailTemplate, FinanceRefund
  Dependencias: MailService, SmtpCredentialService

PaymentServiceFactory
  Usado por: ProcessPaymentJob
  Funcao: Seleciona provider de pagamento (Asaas ou Iugu)
  Dependencias: AsaasPaymentService, IuguPaymentService

GeneralService
  Usado por: ChargesController, IncorpController, RefundsController, RecurrenceSyncService, etc
  Funcao: Utilitarios gerais (datas, dias uteis, feriados)
```
