You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
300 lines
5.7 KiB
Markdown
300 lines
5.7 KiB
Markdown
# Escopo De Dados Operacionais Do Product Visiveis No Admin
|
|
|
|
## Objetivo
|
|
|
|
Definir, de forma explicita, quais dados operacionais do `orquestrador-product` podem ser consultados pelo `orquestrador-admin` na fase inicial de relatorios e configuracao.
|
|
|
|
Esta definicao cobre o **que** o admin pode ler.
|
|
A estrategia de leitura desses dados sem acoplar o hot path do atendimento fica detalhada em `docs/architecture/admin-report-reading-strategy.md`.
|
|
A materializacao concreta desses relatorios fica detalhada em `docs/architecture/admin-report-materialization-strategy.md`.
|
|
|
|
## Principios obrigatorios
|
|
|
|
1. O `product` continua sendo a fonte operacional primaria.
|
|
2. O `admin` nasce com acesso de leitura orientado a relatorios, nunca como escritor direto dessas tabelas.
|
|
3. O hot path do atendimento nao deve depender de consulta online ao `admin`.
|
|
4. Dados de identidade do cliente final, texto livre e segredos operacionais nao entram automaticamente na fronteira administrativa.
|
|
5. Sempre que um indicador puder ser atendido por agregado, o agregado deve ser preferido a leitura detalhada.
|
|
|
|
## Datasets permitidos nesta fase
|
|
|
|
O contrato compartilhado correspondente fica em `shared/contracts/product_operational_data.py`.
|
|
|
|
### 1. Estoque comercial
|
|
|
|
Fonte atual:
|
|
|
|
- `vehicles`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- disponibilidade comercial
|
|
- distribuicao por categoria
|
|
- faixa de preco
|
|
- entrada de novos itens no estoque
|
|
|
|
Campos permitidos:
|
|
|
|
- `id`
|
|
- `modelo`
|
|
- `categoria`
|
|
- `preco`
|
|
- `created_at`
|
|
|
|
### 2. Pedidos de venda
|
|
|
|
Fonte atual:
|
|
|
|
- `orders`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- volume de pedidos
|
|
- pedidos ativos e cancelados
|
|
- ticket medio
|
|
- cancelamentos por periodo
|
|
|
|
Campos permitidos:
|
|
|
|
- `numero_pedido`
|
|
- `vehicle_id`
|
|
- `modelo_veiculo`
|
|
- `valor_veiculo`
|
|
- `status`
|
|
- `motivo_cancelamento`
|
|
- `data_cancelamento`
|
|
- `created_at`
|
|
- `updated_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `user_id`
|
|
- `cpf`
|
|
|
|
### 3. Agenda de revisoes
|
|
|
|
Fonte atual:
|
|
|
|
- `review_schedules`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- ocupacao de slots
|
|
- revisoes agendadas por periodo
|
|
- taxa de cancelamento
|
|
- fila operacional da oficina
|
|
|
|
Campos permitidos:
|
|
|
|
- `protocolo`
|
|
- `placa`
|
|
- `data_hora`
|
|
- `status`
|
|
- `created_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `user_id`
|
|
|
|
### 4. Frota de locacao
|
|
|
|
Fonte atual:
|
|
|
|
- `rental_vehicles`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- disponibilidade da frota
|
|
- status operacional por categoria
|
|
- tarifa diaria vigente
|
|
|
|
Campos permitidos:
|
|
|
|
- `id`
|
|
- `placa`
|
|
- `modelo`
|
|
- `categoria`
|
|
- `ano`
|
|
- `valor_diaria`
|
|
- `status`
|
|
- `created_at`
|
|
|
|
### 5. Contratos de locacao
|
|
|
|
Fonte atual:
|
|
|
|
- `rental_contracts`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- contratos ativos e encerrados
|
|
- devolucoes em atraso
|
|
- receita prevista versus receita final
|
|
- ocupacao da frota no tempo
|
|
|
|
Campos permitidos:
|
|
|
|
- `contrato_numero`
|
|
- `rental_vehicle_id`
|
|
- `placa`
|
|
- `modelo_veiculo`
|
|
- `categoria`
|
|
- `data_inicio`
|
|
- `data_fim_prevista`
|
|
- `data_devolucao`
|
|
- `valor_diaria`
|
|
- `valor_previsto`
|
|
- `valor_final`
|
|
- `status`
|
|
- `created_at`
|
|
- `updated_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `user_id`
|
|
- `cpf`
|
|
- `observacoes`
|
|
|
|
### 6. Pagamentos de locacao
|
|
|
|
Fonte atual:
|
|
|
|
- `rental_payments`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- arrecadacao por periodo
|
|
- pagamentos conciliados por contrato
|
|
- inadimplencia operacional
|
|
|
|
Campos permitidos:
|
|
|
|
- `protocolo`
|
|
- `contrato_numero`
|
|
- `placa`
|
|
- `valor`
|
|
- `data_pagamento`
|
|
- `created_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `user_id`
|
|
- `rental_contract_id`
|
|
- `favorecido`
|
|
- `identificador_comprovante`
|
|
- `observacoes`
|
|
|
|
### 7. Telemetria conversacional
|
|
|
|
Fonte atual:
|
|
|
|
- `conversation_turns`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- volume de atendimento
|
|
- latencia por turno
|
|
- distribuicao por dominio
|
|
- uso de tools
|
|
- falhas operacionais por status
|
|
|
|
Campos permitidos:
|
|
|
|
- `request_id`
|
|
- `conversation_id`
|
|
- `channel`
|
|
- `turn_status`
|
|
- `intent`
|
|
- `domain`
|
|
- `action`
|
|
- `tool_name`
|
|
- `elapsed_ms`
|
|
- `started_at`
|
|
- `completed_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `user_id`
|
|
- `external_id`
|
|
- `username`
|
|
- `user_message`
|
|
- `assistant_response`
|
|
- `tool_arguments`
|
|
- `error_detail`
|
|
|
|
### 8. Entregas de integracao
|
|
|
|
Fonte atual:
|
|
|
|
- `integration_deliveries`
|
|
|
|
Uso administrativo esperado:
|
|
|
|
- taxa de sucesso por provedor
|
|
- volume de eventos entregues
|
|
- entregas pendentes ou com falha
|
|
- tentativas de reenvio
|
|
|
|
Campos permitidos:
|
|
|
|
- `route_id`
|
|
- `event_type`
|
|
- `provider`
|
|
- `status`
|
|
- `attempts`
|
|
- `dispatched_at`
|
|
- `created_at`
|
|
- `updated_at`
|
|
|
|
Campos bloqueados:
|
|
|
|
- `payload_json`
|
|
- `recipient_email`
|
|
- `recipient_name`
|
|
- `rendered_subject`
|
|
- `rendered_body`
|
|
- `provider_message_id`
|
|
- `last_error`
|
|
|
|
## Fontes fora do escopo administrativo nesta fase
|
|
|
|
O admin **nao** deve consultar diretamente, nesta fase:
|
|
|
|
- `customers`
|
|
- `users`
|
|
- stores de estado conversacional de hot path
|
|
- payloads brutos de tools e mensagens do usuario
|
|
- comprovantes e identificadores sensiveis de pagamento
|
|
- configuracoes internas de provedor e credenciais
|
|
|
|
## Regra de autorizacao
|
|
|
|
A leitura desses dados nasce amarrada a `view_reports`.
|
|
|
|
Consequencia pratica:
|
|
|
|
- `colaborador` pode consultar os dados operacionais liberados para relatorio
|
|
- `diretor` herda essa leitura e acumula as etapas de aprovacao e configuracao
|
|
- permissao adicional sera exigida apenas quando a consulta implicar governanca, aprovacao ou configuracao
|
|
|
|
## Decisao tomada nesta etapa
|
|
|
|
O `admin` pode consultar apenas datasets operacionais explicitamente declarados em contrato compartilhado e sempre em modo somente leitura.
|
|
|
|
A fronteira inicial favorece relatorios de:
|
|
|
|
- vendas
|
|
- arrecadacao
|
|
- operacao
|
|
- telemetria de atendimento
|
|
- entregas de integracao
|
|
|
|
## Decisao de materializacao relacionada
|
|
|
|
Para esses datasets, a fase inicial escolhe:
|
|
|
|
- `etl_incremental` como estrategia de sincronizacao
|
|
- `snapshot_table` no lado administrativo como persistencia de leitura
|
|
- `dedicated_view` sobre os snapshots como superficie de consulta para APIs e UI
|
|
- nenhuma replica operacional do banco do produto no dashboard administrativo
|