# lucascarper/relatorioatendimentomultilife architecture

> Architecture diagram of the GitHub repository lucascarper/relatorioatendimentomultilife, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lucascarper/relatorioatendimentomultilife
- Repository: https://github.com/lucascarper/relatorioatendimentomultilife

## Overview

Relatório Diário de Atendimentos · MultiLife é um serviço de relatórios operacionais com painel administrativo, coleta periódica do SGG, consolidação diária e envio por e-mail. O fluxo principal registra mudanças de status durante o expediente, calcula métricas à noite e envia o resumo na manhã seguinte. Também oferece relatórios financeiro e SESMT, processamento de exames por médico e exportações administrativas. O mapa combina a árvore, os trechos e as relações documentadas no README; relações internas não evidenciadas foram omitidas.

Main entry points: [`src/relatorio/infrastructure/scheduler.py`](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/scheduler.py) (Agendador), [`src/relatorio/application/consolidacao.py`](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/consolidacao.py) (Consolidação diária), [`src/relatorio/application/envio.py`](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/envio.py) (Envio de relatórios), [`src/relatorio/infrastructure/db/repositorios.py`](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/db/repositorios.py) (Eventos e agendas)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collection["Coleta SGG"]
  node_collector["Coleta de status<br/>[coleta.py]"]
  node_agenda_sync["Sync de agendas<br/>[coleta.py]"]
  node_sgg_client["Cliente SGG<br/>[cliente.py]"]
end

subgraph group_reporting["Relatórios e domínio"]
  node_consolidation["Consolidação diária<br/>[consolidacao.py]"]
  node_metrics["Métricas atendimento<br/>[metricas.py]"]
  node_daily_summary["Resumo diário<br/>[resumo.py]"]
  node_financial["Relatório financeiro<br/>[financeiro.py]"]
  node_sesmt["Relatório SESMT<br/>[sesmt.py]"]
  node_exams["Exames por médico<br/>[exames.py]"]
end

subgraph group_delivery["Apresentação e envio"]
  node_send_usecase["Envio de relatórios<br/>[envio.py]"]
  node_email_view["Apresentação de e-mail<br/>[apresentacao.py]"]
  node_email_sender["Transporte de e-mail<br/>[envio.py]"]
end

subgraph group_admin["Painel e exportação"]
  node_web["Painel administrativo<br/>[app.py]"]
  node_exports["Exportações<br/>[exportadores.py]"]
  node_spreadsheet["Planilhas"]
end

subgraph group_runtime["Runtime e persistência"]
  node_scheduler["Agendador<br/>[scheduler.py]"]
  node_event_store[("Eventos e agendas<br/>[repositorios.py]")]
  node_summary_store[("Resumos e registros<br/>[repositorios.py]")]
end

node_manager(("Gestão"))
node_sgg{{"API SGG"}}
node_smtp{{"KingHost SMTP"}}

node_scheduler -->|"agenda polling"| node_collector
node_scheduler -->|"agenda sync"| node_agenda_sync
node_scheduler -->|"agenda consolidação"| node_consolidation
node_scheduler -->|"agenda envios"| node_send_usecase
node_sgg -->|"fornece status"| node_collector
node_sgg -->|"fornece agendas"| node_agenda_sync
node_collector -->|"grava eventos"| node_event_store
node_agenda_sync -->|"grava agendas"| node_event_store
node_event_store -->|"lê eventos"| node_consolidation
node_consolidation -->|"grava resumo"| node_summary_store
node_summary_store -->|"fornece resumo"| node_send_usecase
node_consolidation -.->|"calcula métricas"| node_metrics
node_send_usecase -.->|"prepara conteúdo"| node_email_view
node_send_usecase -.->|"envia mensagem"| node_email_sender
node_email_sender -->|"entrega e-mail"| node_smtp
node_sgg -->|"fornece dados financeiros"| node_financial
node_financial -->|"registra resumo financeiro"| node_summary_store
node_sgg -->|"fornece dados SESMT"| node_sesmt
node_sesmt -->|"registra resumo SESMT"| node_summary_store
node_sgg -->|"fornece exames"| node_exams
node_manager -->|"administra"| node_web
node_web -->|"consulta dados"| node_event_store
node_web -.->|"solicita exportação"| node_exports
node_exports -.->|"gera planilha"| node_spreadsheet

click node_scheduler "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/scheduler.py"
click node_collector "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/coleta.py"
click node_agenda_sync "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/coleta.py"
click node_sgg_client "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/sgg/cliente.py"
click node_event_store "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/db/repositorios.py"
click node_consolidation "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/consolidacao.py"
click node_metrics "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/metricas.py"
click node_daily_summary "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/resumo.py"
click node_financial "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/financeiro.py"
click node_sesmt "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/sesmt.py"
click node_exams "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/exames.py"
click node_summary_store "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/db/repositorios.py"
click node_send_usecase "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/envio.py"
click node_email_view "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/email/apresentacao.py"
click node_email_sender "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/email/envio.py"
click node_web "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/interfaces/web/app.py"
click node_exports "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/exportadores.py"
click node_spreadsheet "https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/planilha_exportacao.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_collector,node_agenda_sync,node_sgg_client toneBlue
class node_consolidation,node_metrics,node_daily_summary,node_financial,node_sesmt,node_exams toneAmber
class node_send_usecase,node_email_view,node_email_sender,node_sgg toneMint
class node_web,node_exports,node_spreadsheet toneRose
class node_scheduler,node_event_store,node_summary_store,node_manager,node_smtp toneIndigo
```

## Components

### Coleta SGG

- [Coleta de status](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/coleta.py): `src/relatorio/application/coleta.py`
- [Sync de agendas](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/coleta.py): `src/relatorio/application/coleta.py`
- [Cliente SGG](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/sgg/cliente.py): `src/relatorio/infrastructure/sgg/cliente.py`

### Relatórios e domínio

- [Consolidação diária](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/consolidacao.py): `src/relatorio/application/consolidacao.py`
- [Métricas atendimento](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/metricas.py): `src/relatorio/domain/metricas.py`
- [Resumo diário](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/resumo.py): `src/relatorio/domain/resumo.py`
- [Relatório financeiro](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/financeiro.py): `src/relatorio/domain/financeiro.py`
- [Relatório SESMT](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/sesmt.py): `src/relatorio/domain/sesmt.py`
- [Exames por médico](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/domain/exames.py): `src/relatorio/domain/exames.py`

### Apresentação e envio

- [Envio de relatórios](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/envio.py): `src/relatorio/application/envio.py`
- [Apresentação de e-mail](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/email/apresentacao.py): `src/relatorio/infrastructure/email/apresentacao.py`
- [Transporte de e-mail](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/email/envio.py): `src/relatorio/infrastructure/email/envio.py`

### Painel e exportação

- [Painel administrativo](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/interfaces/web/app.py): `src/relatorio/interfaces/web/app.py`
- [Exportações](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/application/exportadores.py): `src/relatorio/application/exportadores.py`
- [Planilhas](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/planilha_exportacao.py): `src/relatorio/infrastructure/planilha_exportacao.py`

### Runtime e persistência

- [Agendador](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/scheduler.py): `src/relatorio/infrastructure/scheduler.py`
- [Eventos e agendas](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/db/repositorios.py): `src/relatorio/infrastructure/db/repositorios.py`
- [Resumos e registros](https://github.com/lucascarper/relatorioatendimentomultilife/blob/claude/zealous-mendel-uv7074/src/relatorio/infrastructure/db/repositorios.py): `src/relatorio/infrastructure/db/repositorios.py`

### Other components

- **Gestão**
- **API SGG**
- **KingHost SMTP**

## Connections

- Agendador → Coleta de status: agenda polling
- Agendador → Sync de agendas: agenda sync
- Agendador → Consolidação diária: agenda consolidação (evidence: `src/relatorio/infrastructure/scheduler.py`)
- Agendador → Envio de relatórios: agenda envios (evidence: `src/relatorio/infrastructure/scheduler.py`)
- API SGG → Coleta de status: fornece status
- API SGG → Sync de agendas: fornece agendas
- Coleta de status → Eventos e agendas: grava eventos
- Sync de agendas → Eventos e agendas: grava agendas
- Eventos e agendas → Consolidação diária: lê eventos
- Consolidação diária → Resumos e registros: grava resumo
- Resumos e registros → Envio de relatórios: fornece resumo
- Consolidação diária → Métricas atendimento: calcula métricas
- Envio de relatórios → Apresentação de e-mail: prepara conteúdo
- Envio de relatórios → Transporte de e-mail: envia mensagem
- Transporte de e-mail → KingHost SMTP: entrega e-mail
- API SGG → Relatório financeiro: fornece dados financeiros
- Relatório financeiro → Resumos e registros: registra resumo financeiro
- API SGG → Relatório SESMT: fornece dados SESMT
- Relatório SESMT → Resumos e registros: registra resumo SESMT
- API SGG → Exames por médico: fornece exames
- Gestão → Painel administrativo: administra
- Painel administrativo → Eventos e agendas: consulta dados
- Painel administrativo → Exportações: solicita exportação
- Exportações → Planilhas: gera planilha
