Pular para conteúdo

Motor de Pricing — Visão Geral Técnica

📋 Sobre a Aplicação

O Motor de Pricing (Pricing Intelligence Software) é uma aplicação web para arquitetura de preços, geração de listas de preço e análise de divergências/oportunidades. Ele é utilizado pela área de Pricing para definir e validar preços de venda para todas as empresas do grupo.


🏗️ Arquitetura

graph TD
    subgraph Frontend
        A[Dash App - Python] --> B[Dash Bootstrap Components]
        A --> C[Callbacks Interativos]
    end

    subgraph Backend
        D[Flask Server + Gunicorn]
        E[Auth - bcrypt + BigQuery]
    end

    subgraph GCP
        F[BigQuery - gold_pricing]
        G[Dataform - Pipelines]
        H[Cloud Run / GAE]
    end

    A --> D
    D --> E
    C --> F
    C --> G
    D --> H

    style A fill:#0d3b66,color:#fff
    style F fill:#4285F4,color:#fff
    style G fill:#34A853,color:#fff
    style H fill:#FBBC04,color:#000

Stack Tecnológica

Camada Tecnologia
Framework Web Dash (Plotly)
Servidor Flask + Gunicorn
UI Dash Bootstrap Components
Linguagem Python 3.11
Banco de Dados Google BigQuery (gold_pricing)
Pipeline de Dados Google Dataform
Autenticação bcrypt + tabela BigQuery
Deploy Docker → Cloud Run/GAE

📂 Estrutura de Pastas

motor_pricing/
├── api/                    # Chamadas BigQuery e Dataform
│   ├── bigquery_client.py  # Cliente BigQuery centralizado
│   ├── fetch_data.py       # Leitura de dados (queries parametrizadas)
│   ├── send_data.py        # Envio de parametrização e variáveis
│   ├── save_price_list.py  # Salvamento de lista de preços
│   ├── send_preco_ponta_data.py  # Envio de preço ponta + trigger pipeline
│   ├── dataform_trigger.py # Orquestração de pipelines Dataform
│   ├── schema_utils.py     # Validação de schemas
│   └── dataframe_utils.py  # Limpeza de DataFrames
├── auth/
│   └── auth_utils.py       # Autenticação, permissões e proteção de rotas
├── assets/                 # CSS, imagens e ícones
├── callbacks/
│   └── preload_data.py     # Pré-carregamento paralelo de 18 tabelas
├── components/             # 25 componentes reutilizáveis
├── pages/                  # Páginas da aplicação (7 rotas)
├── static_data/            # Dados estáticos e textos de ajuda
├── tests/                  # Testes automatizados (pytest)
├── utils/                  # 18 funções utilitárias
├── app.py                  # Ponto de entrada da aplicação
├── routes.py               # Definição de rotas
├── styles.py               # Estilos globais
├── Dockerfile              # Build Docker para deploy
└── requirements.txt        # Dependências Python

🔗 Rotas da Aplicação

Rota Página Descrição
/login Login Autenticação do usuário
/price-architecture Arquitetura de Preços Stepper (12 etapas) para configurar parametrização
/price-list Lista de Preços Resultado da arquitetura — 7 visões de análise
/current-price-list Lista Atual Lista de preços vigente no sistema
/command-center Command Center Alertas de qualidade + posicionamento de produtos
/margin-impact Impacto na Margem Variações de margem entre listas
/price-decomposition Decomposição do Preço Fatores que influenciam o preço

⚙️ Variáveis de Ambiente

Variável Descrição
ENVIRONMENT Ambiente (dev para desenvolvimento)
GCP_PROJECT_ID ID do projeto no Google Cloud
GCP_DATASET_ID ID do dataset no BigQuery
BUCKET_NAME Nome do bucket GCS
GOOGLE_APPLICATION_CREDENTIALS Caminho para o JSON de credenciais
SERVICE_ACCOUNT_EMAIL Email da service account
LOGIN_USER Usuário de login (dev)
LOGIN_PASSWORD Senha de login (dev)

🚀 Como Rodar Localmente

  1. Clonar o repositório
  2. Criar ambiente virtual: python -m venv .venv
  3. Ativar: .venv/bin/activate (Linux/Mac) ou .venv\Scripts\activate (Windows)
  4. Instalar dependências: pip install -r requirements.txt
  5. Criar .env conforme .env-example
  6. Criar google_credentials.json conforme exemplo
  7. Rodar: python app.py
  8. Acessar: http://127.0.0.1:8000/

📚 Documentação Detalhada

Tópico Link
Autenticação e Permissões autenticacao.md
API — BigQuery e Dataform api_bigquery_dataform.md
Fluxo de Dados e Pre-loading fluxo_dados.md
Páginas e Funcionalidades paginas.md
Componentes UI componentes.md
Funções Utilitárias utilitarios.md
Testes e Qualidade testes.md
Deploy e Infraestrutura deploy.md

Última atualização: Março 2026 | Versão 1.0