š 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