Pular para conteĆŗdo

šŸ”„ 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