# staroscky/motor-decisao-poc architecture

> Architecture diagram of the GitHub repository staroscky/motor-decisao-poc, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/staroscky/motor-decisao-poc
- Repository: https://github.com/staroscky/motor-decisao-poc

## Overview

This is a Spring service that evaluates a payment check-in and returns feasibility and scheduling guidance. A request enters through the evaluation endpoint; the service parses the check-in type, fetches its destination details, resolves supported instruments, builds shared evaluation context, and delegates evaluation before mapping a response. The tree shows separate data/institution validators and instrument-specific scheduling pipelines. Orchestrator internals and several validation implementations were not sampled, so their wiring is not inferred here.

Main entry points: [`src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoService.java`](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoService.java) (Evaluation service), [`src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/PipelineAgendamento.java`](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/PipelineAgendamento.java) (Scheduling dispatcher), [`src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoController.java`](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoController.java) (Evaluation API), [`src/main/java/com/staroscky/motordecisao/avaliacao/validador/agendamento`](https://github.com/staroscky/motor-decisao-poc/tree/main/src/main/java/com/staroscky/motordecisao/avaliacao/validador/agendamento) (Scheduling validators)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Request handling"]
  node_controller["Evaluation API"]
  node_service["Evaluation service"]
  node_mapper["Response mapper"]
  node_response["Evaluation response"]
end

subgraph group_resolve["Check-in resolution"]
  node_parser["Check-in parser"]
  node_resolver["Instrument resolver"]
  node_checkin["Check-in client<br/>[CheckinClient.java]"]
end

subgraph group_evaluate["Evaluation"]
  node_context["Evaluation context"]
  node_orchestrator["Evaluation orchestrator"]
  node_data_pipeline["Date evaluation"]
  node_data_validators["Date and institution validators"]
end

subgraph group_schedule["Scheduling"]
  node_schedule_pipeline["Scheduling dispatcher"]
  node_pix_pipeline["PIX scheduling"]
  node_ted_pipeline["TED scheduling"]
  node_tef_pipeline["TEF scheduling"]
  node_schedule_validators["Scheduling validators"]
end

node_caller(("API caller"))
node_checkin_service(("Check-in service"))

node_caller -->|"submits request"| node_controller
node_controller -->|"delegates evaluation"| node_service
node_service -->|"parses identifier"| node_parser
node_service -->|"fetches check-in"| node_checkin
node_checkin -->|"requests details"| node_checkin_service
node_service -->|"resolves instruments"| node_resolver
node_service -->|"builds context"| node_context
node_service -->|"runs evaluation"| node_orchestrator
node_data_pipeline -->|"runs supported checks"| node_data_validators
node_schedule_pipeline -->|"dispatches PIX"| node_pix_pipeline
node_schedule_pipeline -->|"dispatches TED"| node_ted_pipeline
node_schedule_pipeline -->|"dispatches TEF"| node_tef_pipeline
node_pix_pipeline -->|"runs supported checks"| node_schedule_validators
node_ted_pipeline -->|"runs supported checks"| node_schedule_validators
node_tef_pipeline -->|"runs supported checks"| node_schedule_validators
node_service -->|"maps context"| node_mapper
node_mapper -->|"creates response"| node_response
node_service -->|"returns evaluation"| node_controller

click node_controller "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoController.java"
click node_service "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoService.java"
click node_context "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/contexto/AvaliacaoContexto.java"
click node_parser "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/resolver/CheckinIdParser.java"
click node_resolver "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/resolver/InstrumentoResolver.java"
click node_checkin "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/upstream/CheckinClient.java"
click node_orchestrator "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoOrquestrador.java"
click node_data_pipeline "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/data/PipelineDataSelecionada.java"
click node_data_validators "https://github.com/staroscky/motor-decisao-poc/tree/main/src/main/java/com/staroscky/motordecisao/avaliacao/validador"
click node_schedule_pipeline "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/PipelineAgendamento.java"
click node_pix_pipeline "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/pix/PipelineAgendamentoPix.java"
click node_ted_pipeline "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/ted/PipelineAgendamentoTed.java"
click node_tef_pipeline "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/tef/PipelineAgendamentoTef.java"
click node_schedule_validators "https://github.com/staroscky/motor-decisao-poc/tree/main/src/main/java/com/staroscky/motordecisao/avaliacao/validador/agendamento"
click node_mapper "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/mapper/AvaliacaoResponseMapper.java"
click node_response "https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/response/AvaliacaoResponse.java"

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_controller,node_service,node_mapper,node_response toneBlue
class node_parser,node_resolver,node_checkin toneAmber
class node_context,node_orchestrator,node_data_pipeline,node_data_validators,node_caller toneMint
class node_schedule_pipeline,node_pix_pipeline,node_ted_pipeline,node_tef_pipeline,node_schedule_validators toneRose
class node_checkin_service toneIndigo
```

## Components

### Request handling

- [Evaluation API](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoController.java): `src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoController.java`
- [Evaluation service](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoService.java): `src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoService.java`
- [Response mapper](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/mapper/AvaliacaoResponseMapper.java): `src/main/java/com/staroscky/motordecisao/avaliacao/mapper/AvaliacaoResponseMapper.java`
- [Evaluation response](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/response/AvaliacaoResponse.java): `src/main/java/com/staroscky/motordecisao/avaliacao/response/AvaliacaoResponse.java`

### Check-in resolution

- [Check-in parser](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/resolver/CheckinIdParser.java): `src/main/java/com/staroscky/motordecisao/avaliacao/resolver/CheckinIdParser.java`
- [Instrument resolver](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/resolver/InstrumentoResolver.java): `src/main/java/com/staroscky/motordecisao/avaliacao/resolver/InstrumentoResolver.java`
- [Check-in client](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/upstream/CheckinClient.java): `src/main/java/com/staroscky/motordecisao/avaliacao/upstream/CheckinClient.java`

### Evaluation

- [Evaluation context](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/contexto/AvaliacaoContexto.java): `src/main/java/com/staroscky/motordecisao/avaliacao/contexto/AvaliacaoContexto.java`
- [Evaluation orchestrator](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoOrquestrador.java): `src/main/java/com/staroscky/motordecisao/avaliacao/AvaliacaoOrquestrador.java`
- [Date evaluation](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/data/PipelineDataSelecionada.java): `src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/data/PipelineDataSelecionada.java`
- [Date and institution validators](https://github.com/staroscky/motor-decisao-poc/tree/main/src/main/java/com/staroscky/motordecisao/avaliacao/validador): `src/main/java/com/staroscky/motordecisao/avaliacao/validador`

### Scheduling

- [Scheduling dispatcher](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/PipelineAgendamento.java): `src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/PipelineAgendamento.java`
- [PIX scheduling](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/pix/PipelineAgendamentoPix.java): `src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/pix/PipelineAgendamentoPix.java`
- [TED scheduling](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/ted/PipelineAgendamentoTed.java): `src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/ted/PipelineAgendamentoTed.java`
- [TEF scheduling](https://github.com/staroscky/motor-decisao-poc/blob/main/src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/tef/PipelineAgendamentoTef.java): `src/main/java/com/staroscky/motordecisao/avaliacao/pipeline/agendamento/tef/PipelineAgendamentoTef.java`
- [Scheduling validators](https://github.com/staroscky/motor-decisao-poc/tree/main/src/main/java/com/staroscky/motordecisao/avaliacao/validador/agendamento): `src/main/java/com/staroscky/motordecisao/avaliacao/validador/agendamento`

### Other components

- **API caller**
- **Check-in service**

## Connections

- API caller → Evaluation API: submits request
- Evaluation API → Evaluation service: delegates evaluation
- Evaluation service → Check-in parser: parses identifier
- Evaluation service → Check-in client: fetches check-in
- Check-in client → Check-in service: requests details
- Evaluation service → Instrument resolver: resolves instruments
- Evaluation service → Evaluation context: builds context
- Evaluation service → Evaluation orchestrator: runs evaluation
- Date evaluation → Date and institution validators: runs supported checks
- Scheduling dispatcher → PIX scheduling: dispatches PIX
- Scheduling dispatcher → TED scheduling: dispatches TED
- Scheduling dispatcher → TEF scheduling: dispatches TEF
- PIX scheduling → Scheduling validators: runs supported checks
- TED scheduling → Scheduling validators: runs supported checks
- TEF scheduling → Scheduling validators: runs supported checks
- Evaluation service → Response mapper: maps context
- Response mapper → Evaluation response: creates response
- Evaluation service → Evaluation API: returns evaluation
