🔄 Fluxos - ecosif-compliance
📋 Visão Geral
Este documento descreve os principais fluxos de validação do serviço ecosif-compliance.
🔄 Fluxo 1: Executar Validação de Conformidade
Descrição
Validação de documentos contábeis usando regras configuradas.
Diagrama de Sequência
sequenceDiagram
participant Client as Cliente
participant Flask as Flask API
participant Service as ComplianceService
participant RuleDao as RuleDao
participant Parser as PLY Parser
participant AccountService as AccountService
participant ProcessDao as ProcessDao
participant DB as PostgreSQL
Client->>Flask: POST /api/compliance/run
Flask->>Flask: Validar parâmetros
Flask->>Service: run(company_id, branch_id, ref_date)
Service->>RuleDao: list_applicable_rules(...)
RuleDao->>DB: SELECT * FROM rule WHERE ...
DB-->>RuleDao: List<RuleEntity>
RuleDao-->>Service: Regras aplicáveis
loop Para cada regra
Service->>Parser: compilar(regra.script)
Parser-->>Service: AST compilado
Service->>Service: executar_regra(AST, dados)
Service->>AccountService: SALDO_CONTA(...)
AccountService->>DB: SELECT saldo FROM ...
DB-->>AccountService: Saldo
AccountService-->>Service: Saldo calculado
Service->>Service: avaliar_condicoes(...)
Service-->>Service: Resultado (OK/ERRO)
end
Service->>ProcessDao: create_process(...)
ProcessDao->>DB: INSERT INTO process ...
DB-->>ProcessDao: ProcessEntity
Service->>ProcessDao: create_process_rules(...)
ProcessDao->>DB: INSERT INTO process_rule ...
Service-->>Flask: Resultado da validação
Flask-->>Client: 200 OK (JSON)
🔄 Fluxo 2: Adicionar Nova Regra
Descrição
Cadastro de uma nova regra de validação.
Diagrama de Sequência
sequenceDiagram
participant Client as Cliente
participant Flask as Flask API
participant Service as RuleService
participant RuleDao as RuleDao
participant Parser as PLY Parser
participant DB as PostgreSQL
Client->>Flask: POST /api/compliance/rule/add
Flask->>Flask: Validar parâmetros (form data)
Flask->>Service: add_rule(...)
Service->>Service: Validar dados
Service->>Parser: validar_script(script)
Parser-->>Service: Script válido ou erro
alt Script válido
Service->>RuleDao: create(rule_data)
RuleDao->>DB: INSERT INTO rule ...
DB-->>RuleDao: RuleEntity
RuleDao-->>Service: Regra criada
Service-->>Flask: Regra criada
else Script inválido
Service-->>Flask: BadRequestException
end
Flask-->>Client: 200 OK ou 400 Bad Request
Última Atualização: 2025-12-01