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
- Clonar o repositório
- Criar ambiente virtual:
python -m venv .venv
- Ativar:
.venv/bin/activate (Linux/Mac) ou .venv\Scripts\activate (Windows)
- Instalar dependências:
pip install -r requirements.txt
- Criar
.env conforme .env-example
- Criar
google_credentials.json conforme exemplo
- Rodar:
python app.py
- Acessar:
http://127.0.0.1:8000/
📚 Documentação Detalhada
Última atualização: Março 2026 | Versão 1.0