# Portal CEEC - Fluxos e Diagramas

## Arquitetura Geral
```mermaid
flowchart LR
  U[Usuarios Web] --> FE[Frontend React Vite]
  FE --> API[API Express TypeScript]
  API --> PR[Prisma Client]
  PR --> DB[(MySQL)]
  API --> UP[(uploads/)]
  API --> SMTP[Servidor SMTP]
```

## Fluxo de Autenticacao
```mermaid
sequenceDiagram
  participant C as Cliente
  participant A as API Auth
  participant D as MySQL

  C->>A: POST /api/auth/login
  A->>D: valida usuario e senha
  D-->>A: usuario valido
  A-->>C: accessToken + refreshToken + user
  C->>A: GET /api/auth/me (Bearer)
  A-->>C: dados da sessao
```

## Fluxo de Documentacao e Liberacao
```mermaid
flowchart TD
  AL[Aluno/Professor] --> CR[Cria document request]
  CR --> AN[Anexa arquivos]
  AN --> RV[Revisao Admin/Professor]
  RV -->|Aprovado| LB[Liberar acesso/matricula]
  RV -->|Recusado| BL[Manter bloqueio e solicitar ajuste]
```

## Fluxo Financeiro e Repasse
```mermaid
flowchart TD
  AD[Admin/Professor] --> FT[Cria fatura]
  FT --> AP[Aluno envia comprovante]
  AP --> ST[Atualiza status]
  ST --> CP[Ciclo de comissao]
  CP -->|Contestacao| CT[Professor contesta]
  CP -->|Repasse pendente| BR[Admin pode bloquear curso]
```

## Fluxo de Certificado
```mermaid
flowchart TD
  AL[Aluno conclui curso] --> FL[Fila de solicitacao]
  FL --> RV[Revisao Professor/Admin]
  RV -->|Aprovado| DL[Liberar download]
  RV -->|Negado| AJ[Retorno para ajuste]
```

## Fluxo de Notificacao e Email
```mermaid
flowchart TD
  EV[Evento de negocio] --> OB[Notification Observer]
  OB --> NI[Criar notificacao interna]
  OB --> EM[dispatchNotificationEmail]
  EM --> CFG[Le EmailSettings + preferencias]
  CFG -->|habilitado| SMTP[Envia email SMTP]
  CFG -->|desabilitado| SK[Ignora envio]
```
