@wibi-global/sdk 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/artifact-schema/src/biCatalog.d.ts +3 -0
  2. package/dist/artifact-schema/src/biCatalog.d.ts.map +1 -0
  3. package/dist/artifact-schema/src/biCatalog.js +36 -0
  4. package/dist/artifact-schema/src/biCatalog.js.map +1 -0
  5. package/dist/artifact-schema/src/hash.d.ts +3 -0
  6. package/dist/artifact-schema/src/hash.d.ts.map +1 -0
  7. package/dist/artifact-schema/src/hash.js +22 -0
  8. package/dist/artifact-schema/src/hash.js.map +1 -0
  9. package/dist/artifact-schema/src/index.d.ts +6 -0
  10. package/dist/artifact-schema/src/index.d.ts.map +1 -0
  11. package/dist/artifact-schema/src/index.js +6 -0
  12. package/dist/artifact-schema/src/index.js.map +1 -0
  13. package/dist/artifact-schema/src/schema.d.ts +274 -0
  14. package/dist/artifact-schema/src/schema.d.ts.map +1 -0
  15. package/dist/artifact-schema/src/schema.js +165 -0
  16. package/dist/artifact-schema/src/schema.js.map +1 -0
  17. package/dist/artifact-schema/src/types.d.ts +88 -0
  18. package/dist/artifact-schema/src/types.d.ts.map +1 -0
  19. package/dist/artifact-schema/src/types.js +2 -0
  20. package/dist/artifact-schema/src/types.js.map +1 -0
  21. package/dist/artifact-schema/src/validate.d.ts +4 -0
  22. package/dist/artifact-schema/src/validate.d.ts.map +1 -0
  23. package/dist/artifact-schema/src/validate.js +101 -0
  24. package/dist/artifact-schema/src/validate.js.map +1 -0
  25. package/dist/instructions/AGENTS.md +92 -0
  26. package/dist/instructions/AGENT_COMMON.md +78 -0
  27. package/dist/instructions/CLAUDE.md +54 -0
  28. package/dist/instructions/CODEX.md +38 -0
  29. package/dist/instructions/GEMINI.md +35 -0
  30. package/dist/prompts/authoring.wbp +61 -0
  31. package/dist/sdk/src/builder.d.ts.map +1 -0
  32. package/dist/sdk/src/builder.js.map +1 -0
  33. package/dist/sdk/src/context.d.ts.map +1 -0
  34. package/dist/sdk/src/context.js.map +1 -0
  35. package/dist/sdk/src/dashboard-context.d.ts.map +1 -0
  36. package/dist/sdk/src/dashboard-context.js.map +1 -0
  37. package/dist/sdk/src/dashboard-spec.d.ts.map +1 -0
  38. package/dist/{dashboard-spec.js → sdk/src/dashboard-spec.js} +4 -1
  39. package/dist/sdk/src/dashboard-spec.js.map +1 -0
  40. package/dist/sdk/src/data/ctx.wbx +114 -0
  41. package/dist/sdk/src/data/index.d.ts.map +1 -0
  42. package/dist/sdk/src/data/index.js +12 -0
  43. package/dist/sdk/src/data/index.js.map +1 -0
  44. package/dist/sdk/src/data/queries.wbx +330 -0
  45. package/dist/sdk/src/data/serialization/dashboard-serialization.types.d.ts.map +1 -0
  46. package/dist/sdk/src/data/serialization/dashboard-serialization.types.js.map +1 -0
  47. package/dist/sdk/src/data/serialization/dashboard-serialization.types.ts +430 -0
  48. package/dist/sdk/src/data/serialization/index.d.ts.map +1 -0
  49. package/dist/sdk/src/data/serialization/index.js.map +1 -0
  50. package/dist/sdk/src/data/syntax.wbx +155 -0
  51. package/dist/sdk/src/data/view-categories.wbx +88 -0
  52. package/dist/sdk/src/data/views.wbx +1118 -0
  53. package/dist/sdk/src/data/widgets.wbx +2477 -0
  54. package/dist/sdk/src/data.d.ts.map +1 -0
  55. package/dist/sdk/src/data.js.map +1 -0
  56. package/dist/sdk/src/index.d.ts.map +1 -0
  57. package/dist/sdk/src/index.js.map +1 -0
  58. package/package.json +2 -2
  59. package/dist/builder.d.ts.map +0 -1
  60. package/dist/builder.js.map +0 -1
  61. package/dist/context.d.ts.map +0 -1
  62. package/dist/context.js.map +0 -1
  63. package/dist/dashboard-context.d.ts.map +0 -1
  64. package/dist/dashboard-context.js.map +0 -1
  65. package/dist/dashboard-spec.d.ts.map +0 -1
  66. package/dist/dashboard-spec.js.map +0 -1
  67. package/dist/data/index.d.ts.map +0 -1
  68. package/dist/data/index.js +0 -12
  69. package/dist/data/index.js.map +0 -1
  70. package/dist/data/serialization/dashboard-serialization.types.d.ts.map +0 -1
  71. package/dist/data/serialization/dashboard-serialization.types.js.map +0 -1
  72. package/dist/data/serialization/index.d.ts.map +0 -1
  73. package/dist/data/serialization/index.js.map +0 -1
  74. package/dist/data.d.ts.map +0 -1
  75. package/dist/data.js.map +0 -1
  76. package/dist/index.d.ts.map +0 -1
  77. package/dist/index.js.map +0 -1
  78. /package/dist/{builder.d.ts → sdk/src/builder.d.ts} +0 -0
  79. /package/dist/{builder.js → sdk/src/builder.js} +0 -0
  80. /package/dist/{context.d.ts → sdk/src/context.d.ts} +0 -0
  81. /package/dist/{context.js → sdk/src/context.js} +0 -0
  82. /package/dist/{dashboard-context.d.ts → sdk/src/dashboard-context.d.ts} +0 -0
  83. /package/dist/{dashboard-context.js → sdk/src/dashboard-context.js} +0 -0
  84. /package/dist/{dashboard-spec.d.ts → sdk/src/dashboard-spec.d.ts} +0 -0
  85. /package/dist/{data → sdk/src/data}/index.d.ts +0 -0
  86. /package/dist/{data → sdk/src/data}/serialization/dashboard-serialization.types.d.ts +0 -0
  87. /package/dist/{data → sdk/src/data}/serialization/dashboard-serialization.types.js +0 -0
  88. /package/dist/{data → sdk/src/data}/serialization/index.d.ts +0 -0
  89. /package/dist/{data → sdk/src/data}/serialization/index.js +0 -0
  90. /package/dist/{data.d.ts → sdk/src/data.d.ts} +0 -0
  91. /package/dist/{data.js → sdk/src/data.js} +0 -0
  92. /package/dist/{index.d.ts → sdk/src/index.d.ts} +0 -0
  93. /package/dist/{index.js → sdk/src/index.js} +0 -0
@@ -0,0 +1,1118 @@
1
+ {
2
+ "__CONTEXT_BLOCK__": {
3
+ "block_name": "DB_SCHEMA_VIEWS",
4
+ "block_role": "SOURCE_OF_TRUTH_FOR_SQL_VIEWS_AND_COLUMNS",
5
+ "llm_instruction": "Neste bloco, somente as chaves que começam com vw_ representam views válidas. Os campos dentro dessas views são os únicos nomes permitidos para SQL de dados no TSX. O campo __doc__ dentro de cada view explica sua finalidade, relacionamentos e exemplos de uso — NÃO é uma coluna SQL."
6
+ },
7
+ "vw_abastecimentos": {
8
+ "__doc__": "Registros de abastecimento de veículos (combustível, lubrificantes, serviços). Cada linha é uma transação de abastecimento com dados do veículo, motorista, estabelecimento e valores. Útil para dashboards de frota: custo por km, consumo médio, gastos por veículo/motorista. Não possui FK direta com outras views — é uma tabela independente importada de sistema de gestão de frota.",
9
+ "transacao": "UInt64",
10
+ "cartao": "UInt64",
11
+ "placa": "String",
12
+ "modelo": "String",
13
+ "responsavel": "String",
14
+ "quilometragem": "UInt32",
15
+ "km_rodados": "UInt32",
16
+ "numero_externo": "Nullable(Float64)",
17
+ "motorista": "String",
18
+ "matricula": "UInt32",
19
+ "data_hora": "DateTime",
20
+ "tipo": "String",
21
+ "liberacao_restricao": "Nullable(Float64)",
22
+ "estabelecimento": "String",
23
+ "cidade": "String",
24
+ "servico": "String",
25
+ "valor": "Float64",
26
+ "horas": "UInt32",
27
+ "horas_trabalhadas": "UInt32",
28
+ "litros": "Float64",
29
+ "km_por_litro": "Float64",
30
+ "litros_por_hora": "UInt32",
31
+ "valor_por_litro": "Float64",
32
+ "ordem_servico": "Nullable(Float64)",
33
+ "emissora": "Nullable(Float64)",
34
+ "info_adicional_1_veiculo": "String",
35
+ "info_adicional_2_veiculo": "String",
36
+ "info_adicional_3_veiculo": "String",
37
+ "info_adicional_4_veiculo": "Nullable(Float64)",
38
+ "info_adicional_5_veiculo": "Nullable(Float64)",
39
+ "info_adicional_1_motorista": "Nullable(String)",
40
+ "info_adicional_2_motorista": "Nullable(String)",
41
+ "info_adicional_3_motorista": "Nullable(Float64)",
42
+ "info_adicional_4_motorista": "Nullable(Float64)",
43
+ "info_adicional_5_motorista": "Nullable(Float64)"
44
+ },
45
+ "vw_calendario": {
46
+ "__doc__": "Tabela dimensão de calendário. Cada linha representa um dia com ano, mês, semana e dia da semana pré-calculados. Útil para JOINs com fatos (vendas, financeiro) quando se precisa agrupar por semana ou garantir continuidade de datas (inclusive dias sem movimento). JOIN por: data. Relaciona-se com vw_calendario_rotas por (ano, mes, semana).",
47
+ "uid": "UUID",
48
+ "id_coligada": "Int64",
49
+ "data": "Nullable(Date)",
50
+ "ano": "Int64",
51
+ "mes": "Int64",
52
+ "semana": "Int64",
53
+ "dia_semana": "Int64",
54
+ "semana_order": "Int64",
55
+ "is_deleted": "Int64",
56
+ "last_upd": "DateTime64(3)",
57
+ "last_sync": "Nullable(DateTime64(3))"
58
+ },
59
+ "vw_calendario_rotas": {
60
+ "__doc__": "Calendário por rota comercial. Indica quantas semanas cada rota teve atividade no mês e quantas semanas foram efetivamente trabalhadas. Usado para calcular cobertura e frequência de visitas por rota. JOIN: id_rota → vw_rotas.id_rota. Complementa vw_calendario com a dimensão de rota.",
61
+ "uid": "UUID",
62
+ "id_coligada": "Int64",
63
+ "id_rota": "Int64",
64
+ "ano": "Int64",
65
+ "mes": "Int64",
66
+ "semana": "Int64",
67
+ "semanas_mes": "Int64",
68
+ "semanas_trabalhadas": "Int64",
69
+ "is_deleted": "Int64",
70
+ "last_upd": "DateTime64(3)",
71
+ "last_sync": "Nullable(DateTime64(3))"
72
+ },
73
+ "vw_clientes": {
74
+ "__doc__": "Cadastro de clientes (dimensão). Contém dados cadastrais, endereço, geolocalização, segmento, grupo econômico, limites de crédito e vendedor vinculado. É a principal tabela de dimensão para análises comerciais. JOINs: id_cliente → vw_vendas_validas.id_cliente, vw_clientes_estatisticas.id_cliente, vw_clientes_rotas.id_cliente, vw_financ_cr_parcelas.id_entidade. O campo id_vendedor liga ao vendedor padrão em vw_vendedores.id_vendedor.",
75
+ "uid": "UUID",
76
+ "id_coligada": "Int64",
77
+ "id_cliente": "Int64",
78
+ "tipo_pessoa": "String",
79
+ "cnpjcpf": "String",
80
+ "nome_completo": "String",
81
+ "nome_abreviado": "String",
82
+ "sexo": "String",
83
+ "datanasc": "Nullable(Date)",
84
+ "datacadas": "Nullable(Date)",
85
+ "tipo_logradouro": "String",
86
+ "logradouro": "String",
87
+ "numero": "String",
88
+ "complemento": "String",
89
+ "bairro": "String",
90
+ "cidade": "String",
91
+ "uf": "String",
92
+ "ponto_ref": "String",
93
+ "latitude": "String",
94
+ "longitude": "String",
95
+ "segmento": "String",
96
+ "grupo_economico": "String",
97
+ "grupo_segmento": "String",
98
+ "dia_semana": "String",
99
+ "limitecredito_1": "Nullable(Float64)",
100
+ "limitecredito_2": "Nullable(Float64)",
101
+ "limitecredito_atraso": "Int64",
102
+ "id_vendedor": "Int64",
103
+ "is_deleted": "Int64",
104
+ "last_upd": "DateTime64(3)",
105
+ "last_sync": "Nullable(DateTime64(3))"
106
+ },
107
+ "vw_clientes_estatisticas": {
108
+ "__doc__": "Estatísticas consolidadas por cliente. Contém indicadores financeiros (títulos abertos/atraso, inadimplência, dias de atraso), comerciais (ticket médio, mix, compras, cobertura, positivação, efetivação) e logísticos (entregas, devoluções, CMV). Snapshot atualizado periodicamente. JOIN: id_cliente → vw_clientes.id_cliente. Ideal para dashboards de saúde da carteira, análise de inadimplência e ranking de clientes.",
109
+ "uid": "UUID",
110
+ "id_coligada": "Int64",
111
+ "id_cliente": "Int64",
112
+ "titulos_aberto": "Int64",
113
+ "titulos_atraso": "Int64",
114
+ "valor_aberto": "Nullable(Float64)",
115
+ "valor_atraso": "Nullable(Float64)",
116
+ "valor_aberto_orig": "Nullable(Float64)",
117
+ "inadimplencia": "Nullable(Float64)",
118
+ "dias_atraso": "Int64",
119
+ "media_atraso": "Nullable(Float64)",
120
+ "cartorio": "Int64",
121
+ "ultimo_venc": "Nullable(Date)",
122
+ "data_titulo_mais_antigo": "Nullable(Date)",
123
+ "data_cadastro": "Nullable(Date)",
124
+ "data_upd_cob": "Nullable(Date)",
125
+ "valor_ultima_compra": "Nullable(Float64)",
126
+ "data_ultima_compra": "Nullable(Date)",
127
+ "ultimo_pag_valor": "Nullable(Float64)",
128
+ "ultimo_pag_data": "Nullable(Date)",
129
+ "ticket_medio": "Nullable(Float64)",
130
+ "ticket_medio_geral": "Nullable(Float64)",
131
+ "mix": "Nullable(Float64)",
132
+ "compras": "Int64",
133
+ "compras_geral": "Int64",
134
+ "total_compras": "Nullable(Float64)",
135
+ "potencial_setor": "Nullable(Float64)",
136
+ "potencial_rota": "Nullable(Float64)",
137
+ "coberto_mix": "Int64",
138
+ "coberto_especial": "Int64",
139
+ "coberto": "UInt8",
140
+ "efetivacao": "Int64",
141
+ "entregues": "Int64",
142
+ "efetiv_entrega": "Nullable(Float64)",
143
+ "devolucoes": "Int64",
144
+ "indice_devolucoes": "Nullable(Float64)",
145
+ "canceladas": "Int64",
146
+ "cmv_geral": "Nullable(Float64)",
147
+ "cmv_real": "Nullable(Float64)",
148
+ "custo_entrega_geral": "Nullable(Float64)",
149
+ "custo_entrega_real": "Nullable(Float64)",
150
+ "lucratividade": "Nullable(Float64)",
151
+ "titulos_aberto_custom": "Int64",
152
+ "titulos_atraso_custom": "Int64",
153
+ "acompanhamento": "Int64",
154
+ "is_deleted": "Int64",
155
+ "last_upd": "DateTime64(3)",
156
+ "last_sync": "Nullable(DateTime64(3))"
157
+ },
158
+ "vw_clientes_rotas": {
159
+ "__doc__": "Tabela associativa N:N entre clientes e rotas. Um cliente pode estar em várias rotas e uma rota atende vários clientes. Essencial para análises de cobertura geográfica e frequência de visitas. JOINs: id_cliente → vw_clientes.id_cliente | id_rota → vw_rotas.id_rota. Usar para filtrar vendas por rota ou calcular quantos clientes uma rota possui.",
160
+ "uid": "UUID",
161
+ "id_coligada": "Int64",
162
+ "id_cliente": "Int64",
163
+ "id_rota": "Int64",
164
+ "is_deleted": "Int64",
165
+ "last_upd": "DateTime64(3)",
166
+ "last_sync": "Nullable(DateTime64(3))"
167
+ },
168
+ "vw_custos": {
169
+ "__doc__": "Custos de aquisição e reposição por produto. Contém composição detalhada: valor de compra, frete, IPI, ICMS-ST, PIS/COFINS (crédito e débito), ICMS, IRPJ e comissão. O campo 'atual' (UInt8) indica se é o custo vigente (1) ou histórico (0). JOIN: id_produto → vw_produtos.id_produto. Usado para calcular margem de lucro, CMV e análises de precificação. Filtrar com atual = 1 para custo corrente.",
170
+ "uid": "UUID",
171
+ "id_coligada": "Int64",
172
+ "id_empresa": "Int64",
173
+ "id_custo": "Int64",
174
+ "id_produto": "Int64",
175
+ "data_custo": "Nullable(Date)",
176
+ "valor_compra": "Nullable(Float64)",
177
+ "valor_frete": "Nullable(Float64)",
178
+ "ipi": "Nullable(Float64)",
179
+ "icms_st": "Nullable(Float64)",
180
+ "valor_custo_aquisicao": "Nullable(Float64)",
181
+ "pis_credito": "Nullable(Float64)",
182
+ "cofins_credito": "Nullable(Float64)",
183
+ "icms_credito": "Nullable(Float64)",
184
+ "pis_debito": "Nullable(Float64)",
185
+ "cofins_debito": "Nullable(Float64)",
186
+ "icms_pf_debito": "Nullable(Float64)",
187
+ "icms_pj_debito": "Nullable(Float64)",
188
+ "valor_custo_reposicao": "Nullable(Float64)",
189
+ "irpj": "Nullable(Float64)",
190
+ "comissao": "Nullable(Float64)",
191
+ "atual": "UInt8",
192
+ "is_deleted": "Int64",
193
+ "last_upd": "DateTime64(3)",
194
+ "last_sync": "Nullable(DateTime64(3))"
195
+ },
196
+ "vw_empresas": {
197
+ "__doc__": "Cadastro de empresas (filiais) do grupo. Cada empresa tem CNPJ próprio e pode ser uma filial de distribuição, fábrica, etc. O campo id_coligada agrupa empresas do mesmo grupo econômico. JOIN: id_empresa → vw_vendas_validas.id_empresa, vw_produtos.id_empresa, vw_estoque_operacoes.id_empresa, vw_financ_*.id_empresa. Usado como filtro dimensional em praticamente todas as análises.",
198
+ "uid": "UUID",
199
+ "id_coligada": "Int64",
200
+ "id_empresa": "Int64",
201
+ "razao_social": "String",
202
+ "nome_fantasia": "String",
203
+ "cnpj": "String",
204
+ "inscricao_estadual": "String",
205
+ "inscricao_municipal": "String",
206
+ "simples_nacional": "Int64",
207
+ "endereco": "String",
208
+ "latitude": "String",
209
+ "longitude": "String",
210
+ "is_deleted": "Int64",
211
+ "last_upd": "DateTime64(3)",
212
+ "last_sync": "Nullable(DateTime64(3))"
213
+ },
214
+ "vw_estoque_operacoes": {
215
+ "__doc__": "Movimentações de estoque (entradas, saídas, transferências, ajustes). Cada linha é uma operação com produto, quantidade, custo e tipo de operação. O campo 'operacao' indica a direção (entrada/saída) e 'estorno' indica reversão. Pode vincular a vendas (id_venda), notas fiscais (id_nota_fiscal) e cargas (id_carga). JOIN: id_produto → vw_produtos.id_produto | id_empresa → vw_empresas.id_empresa. Usado para saldo de estoque, giro, e rastreabilidade de movimentações.",
216
+ "uid": "UUID",
217
+ "id_coligada": "Int64",
218
+ "id_empresa": "Int64",
219
+ "descricao_estoque": "String",
220
+ "apelido_usuario": "String",
221
+ "descricao_tipo_operacao": "String",
222
+ "id_produto": "Int64",
223
+ "unidade": "String",
224
+ "unidade_original": "String",
225
+ "id_pedido": "Int64",
226
+ "id_venda": "Int64",
227
+ "id_nota_fiscal": "Int64",
228
+ "id_carga": "Int64",
229
+ "id_operacao": "Int64",
230
+ "data_operacao": "Nullable(Date)",
231
+ "hora_operacao": "String",
232
+ "historico": "String",
233
+ "quantidade": "Nullable(Float64)",
234
+ "fator": "Nullable(Float64)",
235
+ "custo": "Nullable(Float64)",
236
+ "operacao": "Int64",
237
+ "estorno": "UInt8",
238
+ "is_deleted": "UInt8",
239
+ "last_upd": "DateTime64(3)",
240
+ "last_sync": "Nullable(DateTime64(3))"
241
+ },
242
+ "vw_financ_cp_parcelas": {
243
+ "__doc__": "Contas a Pagar — parcelas. Cada linha é uma parcela com valor original, corrigido, pago, juros, multa, desconto, datas (lançamento, vencimento, pagamento) e status/situação. Inclui categoria (plano de contas) e centro de custo. JOIN: id_empresa → vw_empresas.id_empresa | id_entidade → vw_fornecedores.id_entidade | id_plano_contas → vw_plano_contas.id_plano_contas. Pode vincular a venda (id_venda) e nota fiscal (id_nota_fiscal). Usado para dashboards financeiros: fluxo de caixa, aging de pagáveis, DRE por categoria.",
244
+ "uid": "UUID",
245
+ "id_coligada": "Int64",
246
+ "id_empresa": "Int64",
247
+ "id_conta_pagar": "Int64",
248
+ "id_parcela": "Int64",
249
+ "id_parcela_pai": "Int64",
250
+ "numero_parcela": "Int64",
251
+ "id_entidade": "Int64",
252
+ "id_plano_contas": "Int64",
253
+ "id_centro_custo": "Int64",
254
+ "id_venda": "Int64",
255
+ "id_nota_fiscal": "Int64",
256
+ "tipo_documento": "String",
257
+ "numero_documento": "String",
258
+ "valor_original": "Nullable(Float64)",
259
+ "valor_corrigido": "Nullable(Float64)",
260
+ "valor_pago": "Nullable(Float64)",
261
+ "juros": "Nullable(Float64)",
262
+ "multa": "Nullable(Float64)",
263
+ "desconto": "Nullable(Float64)",
264
+ "outros_acrescimos": "Nullable(Float64)",
265
+ "data_lancamento": "Nullable(Date)",
266
+ "data_vencimento": "Nullable(Date)",
267
+ "data_pagamento": "Nullable(Date)",
268
+ "data_estorno": "Nullable(Date)",
269
+ "forma_pagamento": "String",
270
+ "historico": "String",
271
+ "observacao": "String",
272
+ "descricao_categoria": "String",
273
+ "descricao_centro_custo": "String",
274
+ "status": "Nullable(String)",
275
+ "situacao": "Nullable(String)",
276
+ "is_deleted": "Int64",
277
+ "last_upd": "DateTime64(3)",
278
+ "last_sync": "Nullable(DateTime64(3))"
279
+ },
280
+ "vw_financ_cr_parcelas": {
281
+ "__doc__": "Contas a Receber — parcelas. Mesma estrutura do CP mas para recebíveis. Inclui campo is_bonif (bonificação) e data_pagamento_process. O campo status é numérico e situacao é texto descritivo. JOIN: id_empresa → vw_empresas.id_empresa | id_entidade → vw_clientes.id_cliente | id_plano_contas → vw_plano_contas.id_plano_contas | id_venda → vw_vendas_validas.id_venda. Usado para aging de recebíveis, inadimplência, previsão de caixa e conciliação com vendas.",
282
+ "uid": "UUID",
283
+ "id_coligada": "Int64",
284
+ "id_empresa": "Int64",
285
+ "id_conta_pagar": "Int64",
286
+ "id_parcela": "Int64",
287
+ "id_parcela_pai": "Int64",
288
+ "numero_parcela": "Int64",
289
+ "id_entidade": "Int64",
290
+ "id_plano_contas": "Int64",
291
+ "id_centro_custo": "Int64",
292
+ "id_venda": "Int64",
293
+ "tipo_documento": "String",
294
+ "numero_documento": "String",
295
+ "valor_original": "Nullable(Float64)",
296
+ "valor_corrigido": "Nullable(Float64)",
297
+ "valor_pago": "Nullable(Float64)",
298
+ "juros": "Nullable(Float64)",
299
+ "multa": "Nullable(Float64)",
300
+ "desconto": "Nullable(Float64)",
301
+ "outros_acrescimos": "Nullable(Float64)",
302
+ "data_lancamento": "Nullable(Date)",
303
+ "data_vencimento": "Nullable(Date)",
304
+ "data_pagamento": "Nullable(Date)",
305
+ "data_pagamento_process": "Nullable(Date)",
306
+ "forma_pagamento": "String",
307
+ "historico": "String",
308
+ "observacao": "String",
309
+ "descricao_categoria": "String",
310
+ "descricao_centro_custo": "String",
311
+ "status": "Int64",
312
+ "situacao": "String",
313
+ "is_bonif": "Int64",
314
+ "is_deleted": "Int64",
315
+ "last_upd": "DateTime64(3)",
316
+ "last_sync": "Nullable(DateTime64(3))"
317
+ },
318
+ "vw_financ_mov_contas": {
319
+ "__doc__": "Movimentações financeiras (caixa/bancos). Cada linha é um lançamento com valor, operação (entrada/saída), tipo, descrição e vínculos com CR/CP e transferências. Registra o usuário responsável e rota (para caixas de rota). JOIN: id_empresa → vw_empresas.id_empresa | id_plano_contas → vw_plano_contas.id_plano_contas | id_entidade → vw_clientes ou vw_fornecedores | id_conta_receber → vw_financ_cr_parcelas | id_conta_pagar → vw_financ_cp_parcelas. Usado para fluxo de caixa realizado, extrato bancário e conciliação.",
320
+ "uid": "UUID",
321
+ "id_coligada": "Int64",
322
+ "id_empresa": "Int64",
323
+ "id_usuario": "Int64",
324
+ "apelido_usuario": "String",
325
+ "id_plano_contas": "Int64",
326
+ "id_entidade": "Int64",
327
+ "id_movimento": "Int64",
328
+ "numero_documento": "String",
329
+ "data_movimento": "Nullable(Date)",
330
+ "hora_movimento": "String",
331
+ "descricao": "String",
332
+ "valor": "Nullable(Float64)",
333
+ "operacao": "Int64",
334
+ "historico": "String",
335
+ "data_lancamento": "Nullable(Date)",
336
+ "hora_lancamento": "String",
337
+ "tipo": "Int64",
338
+ "descricao_tipo": "String",
339
+ "id_conta_receber": "Int64",
340
+ "id_conta_pagar": "Int64",
341
+ "id_transf_contas": "Int64",
342
+ "id_rota": "Int64",
343
+ "id_funcionario": "Int64",
344
+ "is_deleted": "Int64",
345
+ "last_upd": "DateTime64(3)",
346
+ "last_sync": "Nullable(DateTime64(3))"
347
+ },
348
+ "vw_fornecedores": {
349
+ "__doc__": "Cadastro de fornecedores (dimensão). Contém dados cadastrais, CNPJ/CPF, cidade e flags especiais (transportador, produtor rural, contador). O campo id_plano_contas_padrao indica a categoria padrão para lançamentos financeiros deste fornecedor. JOIN: id_entidade → vw_financ_cp_parcelas.id_entidade | id_fornecedor é o código interno. O campo 'fornecedor' em vw_produtos e vw_vendas_validas é o nome textual (não FK numérica). Usado para análises de compras, fornecedores por categoria e aging de pagáveis.",
350
+ "uid": "UUID",
351
+ "id_coligada": "Int64",
352
+ "id_entidade": "Int64",
353
+ "id_fornecedor": "Int64",
354
+ "nome_completo": "String",
355
+ "email": "String",
356
+ "cnpjcpf": "String",
357
+ "cnpjcpf_formatado": "String",
358
+ "cidade": "String",
359
+ "transportador": "Int64",
360
+ "funrural": "Nullable(Float64)",
361
+ "produtor_rural": "UInt8",
362
+ "contador": "UInt8",
363
+ "id_plano_contas_padrao": "Int64",
364
+ "is_deleted": "Int64",
365
+ "last_upd": "DateTime64(3)",
366
+ "last_sync": "Nullable(DateTime64(3))"
367
+ },
368
+ "vw_metas": {
369
+ "__doc__": "Cabeçalho das metas comerciais. Define metas por empresa, ano, mês e tipo. É o registro mestre — os detalhes por produto/vendedor/rota estão em vw_metas_produtos. JOIN: id_meta → vw_metas_produtos.id_meta | id_empresa → vw_empresas.id_empresa. Usado para dashboards de acompanhamento de metas: faturamento vs meta, ranking de vendedores vs objetivo.",
370
+ "uid": "UUID",
371
+ "id_coligada": "Int64",
372
+ "id_empresa": "Int64",
373
+ "id_meta": "Int64",
374
+ "descricao": "String",
375
+ "ano": "Int64",
376
+ "mes": "Int64",
377
+ "tipo": "Int64",
378
+ "is_deleted": "Int64",
379
+ "last_upd": "DateTime64(3)",
380
+ "last_sync": "Nullable(DateTime64(3))"
381
+ },
382
+ "vw_metas_produtos": {
383
+ "__doc__": "Detalhamento das metas por produto, rota e vendedor. Cada linha define metas de faturamento, volume, positivação, cobertura e visitas para uma combinação específica. O campo tipo_meta indica a granularidade. JOIN: id_meta → vw_metas.id_meta | id_produto → vw_produtos.id_produto | id_vendedor → vw_vendedores.id_vendedor | id_rota → vw_rotas.id_rota. Cruzar com vw_vendas_validas para calcular atingimento (realizado vs meta).",
384
+ "uid": "UUID",
385
+ "id_coligada": "Int64",
386
+ "id_meta": "Int64",
387
+ "id_produto": "Int64",
388
+ "id_rota": "Int64",
389
+ "id_vendedor": "Int64",
390
+ "id_meta_familia": "Int64",
391
+ "id_meta_produto": "Int64",
392
+ "meta_faturamento": "Nullable(Float64)",
393
+ "meta_volume": "Nullable(Float64)",
394
+ "meta_positivacao": "Nullable(Float64)",
395
+ "meta_cobertura": "Nullable(Float64)",
396
+ "visitas": "Int64",
397
+ "atualizado": "UInt8",
398
+ "is_deleted": "Int64",
399
+ "last_upd": "DateTime64(3)",
400
+ "last_sync": "Nullable(DateTime64(3))",
401
+ "tipo_meta": "String"
402
+ },
403
+ "vw_plano_contas": {
404
+ "__doc__": "Plano de contas contábil/gerencial (dimensão hierárquica). Estrutura em árvore com id_pai indicando o nível superior. O campo 'der' indica se é Despesa/Receita. O código (codigo_plano_contas) segue formatação hierárquica (ex: 1.01.003). JOIN: id_plano_contas → vw_financ_cp_parcelas.id_plano_contas, vw_financ_cr_parcelas.id_plano_contas, vw_financ_mov_contas.id_plano_contas. Usado para DRE, classificação de receitas/despesas e análise por categoria financeira.",
405
+ "uid": "UUID",
406
+ "id_coligada": "Int64",
407
+ "id_empresa": "Int64",
408
+ "id_plano_contas": "Int64",
409
+ "codigo_plano_contas": "String",
410
+ "nome": "String",
411
+ "descricao": "String",
412
+ "id_pai": "Int64",
413
+ "ativo": "Int64",
414
+ "der": "Int64",
415
+ "is_deleted": "Int64",
416
+ "last_upd": "DateTime64(3)",
417
+ "last_sync": "Nullable(DateTime64(3))"
418
+ },
419
+ "vw_produtos": {
420
+ "__doc__": "Cadastro de produtos (dimensão). Hierarquia: fornecedor → seção → grupo → subgrupo. Contém marca, código de barras, referência, unidade, fator de venda/unidade e preços (compra, custo última entrada, venda). Campo 'ativo' indica status. JOIN: id_produto → vw_vendas_validas.id_produto, vw_custos.id_produto, vw_estoque_operacoes.id_produto, vw_metas_produtos.id_produto, vw_produtos_precos_detalhes.id_produto. A principal dimensão de produto para todas as análises comerciais e de estoque.",
421
+ "uid": "UUID",
422
+ "id_coligada": "Int64",
423
+ "id_empresa": "Int64",
424
+ "id_produto": "Int64",
425
+ "fornecedor": "String",
426
+ "secao": "String",
427
+ "grupo": "String",
428
+ "subgrupo": "String",
429
+ "tipo_produto": "String",
430
+ "codigo_fiscal": "String",
431
+ "codigo_barras": "String",
432
+ "referencia": "String",
433
+ "marca": "String",
434
+ "descricao": "String",
435
+ "unidade": "String",
436
+ "fator_venda": "Nullable(Float64)",
437
+ "fator_unidade": "Nullable(Float64)",
438
+ "preco_compra": "Nullable(Float64)",
439
+ "custo_ultima_entrada": "Nullable(Float64)",
440
+ "preco_venda": "Nullable(Float64)",
441
+ "ativo": "String",
442
+ "periodo_cobertura": "Int64",
443
+ "is_deleted": "Int64",
444
+ "last_upd": "DateTime64(3)",
445
+ "last_sync": "Nullable(DateTime64(3))"
446
+ },
447
+ "vw_produtos_precos_detalhes": {
448
+ "__doc__": "Preços por tabela de preço e produto. Cada produto pode ter preços em múltiplas tabelas (ex: tabela padrão, atacado, promoção). O campo tabela_padrao indica a tabela principal. Inclui quantidade mínima para aplicação do preço. JOIN: id_produto → vw_produtos.id_produto | id_tabela_preco → vw_vendas_validas.id_tabela_preco. Usado para análise de política de preços, desconto médio vs tabela e margem por tabela.",
449
+ "uid": "UUID",
450
+ "id_coligada": "Int64",
451
+ "id_empresa": "Int64",
452
+ "id_produto": "Int64",
453
+ "id_tabela_preco": "Int64",
454
+ "descricao_tabela": "String",
455
+ "tabela_padrao": "UInt8",
456
+ "preco_ativo": "Int64",
457
+ "preco_venda": "Nullable(Float64)",
458
+ "quantidade_minima": "Nullable(Float64)",
459
+ "is_deleted": "Int64",
460
+ "last_upd": "DateTime64(3)",
461
+ "last_sync": "Nullable(DateTime64(3))"
462
+ },
463
+ "vw_rotas": {
464
+ "__doc__": "Cadastro de rotas comerciais (dimensão). A rota representa um dia de visita/entrega: cada rota é um dia da semana atribuído a uma região geográfica. Hierarquia: região → área → zona → setor → rota. O campo dia_semana indica o dia (1=segunda..7=domingo). Um vendedor atende múltiplas rotas (vw_rotas_vendedores) e cada rota tem múltiplos clientes (vw_clientes_rotas). JOIN: id_rota → vw_vendas_validas.id_rota, vw_clientes_rotas.id_rota, vw_rotas_vendedores.id_rota, vw_metas_produtos.id_rota, vw_calendario_rotas.id_rota.",
465
+ "uid": "UUID",
466
+ "id_coligada": "Int64",
467
+ "id_rota": "Int64",
468
+ "estrutura": "String",
469
+ "regiao": "Int64",
470
+ "area": "String",
471
+ "zona": "Int64",
472
+ "setor": "Int64",
473
+ "rota": "Int64",
474
+ "dia_semana": "Int64",
475
+ "ativo": "Int64",
476
+ "is_deleted": "Int64",
477
+ "last_upd": "DateTime64(3)",
478
+ "last_sync": "Nullable(DateTime64(3))"
479
+ },
480
+ "vw_rotas_vendedores": {
481
+ "__doc__": "Tabela associativa N:N entre rotas e vendedores. Um vendedor pode atender várias rotas e uma rota pode ter vários vendedores (ex: titular e substituto). JOIN: id_rota → vw_rotas.id_rota | id_vendedor → vw_vendedores.id_vendedor. Usar para descobrir quais rotas um vendedor atende ou quais vendedores cobrem uma rota.",
482
+ "uid": "UUID",
483
+ "id_coligada": "Int64",
484
+ "id_rota": "Int64",
485
+ "id_vendedor": "Int64",
486
+ "is_deleted": "Int64",
487
+ "last_upd": "DateTime64(3)",
488
+ "last_sync": "Nullable(DateTime64(3))"
489
+ },
490
+ "vw_vendedores": {
491
+ "__doc__": "Cadastro de vendedores (dimensão). Contém nome, CPF/CNPJ, email, telefone e status (ativo). JOIN: id_vendedor → vw_vendas_validas.id_vendedor, vw_clientes.id_vendedor, vw_rotas_vendedores.id_vendedor, vw_metas_produtos.id_vendedor. Principal dimensão para análises de desempenho comercial: ranking de vendedores, meta vs realizado, carteira por vendedor.",
492
+ "uid": "UUID",
493
+ "id_coligada": "Int64",
494
+ "id_vendedor": "Int64",
495
+ "nome_completo": "String",
496
+ "nome_abreviado": "String",
497
+ "cnpjcpf": "String",
498
+ "email": "String",
499
+ "telefone": "String",
500
+ "ativo": "Int64",
501
+ "datacadas": "Nullable(Date)",
502
+ "is_deleted": "Int64",
503
+ "last_upd": "DateTime64(3)",
504
+ "last_sync": "Nullable(DateTime64(3))"
505
+ },
506
+ "vw_positivacao_semanal_cliente": {
507
+ "__doc__": "Positivação semanal por cliente. View materializada que indica se o cliente comprou (1) ou não (0) em cada semana do ano (semana1..semana53). Inclui totais e percentual de frequência. Contém dados geográficos da rota (região, zona, área, setor, rota). JOIN: id_cliente → vw_clientes.id_cliente. Usado para análise de frequência de compra, regularidade da carteira e cobertura semanal. Variantes: _fornecedor, _grupo, _produto, _secao, _subgrupo adicionam dimensões de produto.",
508
+ "id_coligada": "Int64",
509
+ "id_empresa": "Int64",
510
+ "ano": "Int64",
511
+ "id_cliente": "Int64",
512
+ "regiao": "Int64",
513
+ "zona": "Int64",
514
+ "area": "String",
515
+ "setor": "Int64",
516
+ "rota": "Int64",
517
+ "semana1": "UInt8",
518
+ "semana2": "UInt8",
519
+ "semana3": "UInt8",
520
+ "semana4": "UInt8",
521
+ "semana5": "UInt8",
522
+ "semana6": "UInt8",
523
+ "semana7": "UInt8",
524
+ "semana8": "UInt8",
525
+ "semana9": "UInt8",
526
+ "semana10": "UInt8",
527
+ "semana11": "UInt8",
528
+ "semana12": "UInt8",
529
+ "semana13": "UInt8",
530
+ "semana14": "UInt8",
531
+ "semana15": "UInt8",
532
+ "semana16": "UInt8",
533
+ "semana17": "UInt8",
534
+ "semana18": "UInt8",
535
+ "semana19": "UInt8",
536
+ "semana20": "UInt8",
537
+ "semana21": "UInt8",
538
+ "semana22": "UInt8",
539
+ "semana23": "UInt8",
540
+ "semana24": "UInt8",
541
+ "semana25": "UInt8",
542
+ "semana26": "UInt8",
543
+ "semana27": "UInt8",
544
+ "semana28": "UInt8",
545
+ "semana29": "UInt8",
546
+ "semana30": "UInt8",
547
+ "semana31": "UInt8",
548
+ "semana32": "UInt8",
549
+ "semana33": "UInt8",
550
+ "semana34": "UInt8",
551
+ "semana35": "UInt8",
552
+ "semana36": "UInt8",
553
+ "semana37": "UInt8",
554
+ "semana38": "UInt8",
555
+ "semana39": "UInt8",
556
+ "semana40": "UInt8",
557
+ "semana41": "UInt8",
558
+ "semana42": "UInt8",
559
+ "semana43": "UInt8",
560
+ "semana44": "UInt8",
561
+ "semana45": "UInt8",
562
+ "semana46": "UInt8",
563
+ "semana47": "UInt8",
564
+ "semana48": "UInt8",
565
+ "semana49": "UInt8",
566
+ "semana50": "UInt8",
567
+ "semana51": "UInt8",
568
+ "semana52": "UInt8",
569
+ "semana53": "UInt8",
570
+ "total_semanas_compradas": "UInt64",
571
+ "percentual_frequencia": "Float64"
572
+ },
573
+ "vw_positivacao_semanal_fornecedor": {
574
+ "__doc__": "Positivação semanal por cliente + fornecedor. Indica se o cliente comprou produtos de determinado fornecedor em cada semana. Útil para medir penetração de marcas/fornecedores na carteira. Mesma estrutura de semana1..semana53 que vw_positivacao_semanal_cliente, com adição da dimensão fornecedor (texto).",
575
+ "id_coligada": "Int64",
576
+ "id_empresa": "Int64",
577
+ "ano": "Int64",
578
+ "id_cliente": "Int64",
579
+ "regiao": "Int64",
580
+ "zona": "Int64",
581
+ "area": "String",
582
+ "setor": "Int64",
583
+ "rota": "Int64",
584
+ "fornecedor": "String",
585
+ "semana1": "UInt8",
586
+ "semana2": "UInt8",
587
+ "semana3": "UInt8",
588
+ "semana4": "UInt8",
589
+ "semana5": "UInt8",
590
+ "semana6": "UInt8",
591
+ "semana7": "UInt8",
592
+ "semana8": "UInt8",
593
+ "semana9": "UInt8",
594
+ "semana10": "UInt8",
595
+ "semana11": "UInt8",
596
+ "semana12": "UInt8",
597
+ "semana13": "UInt8",
598
+ "semana14": "UInt8",
599
+ "semana15": "UInt8",
600
+ "semana16": "UInt8",
601
+ "semana17": "UInt8",
602
+ "semana18": "UInt8",
603
+ "semana19": "UInt8",
604
+ "semana20": "UInt8",
605
+ "semana21": "UInt8",
606
+ "semana22": "UInt8",
607
+ "semana23": "UInt8",
608
+ "semana24": "UInt8",
609
+ "semana25": "UInt8",
610
+ "semana26": "UInt8",
611
+ "semana27": "UInt8",
612
+ "semana28": "UInt8",
613
+ "semana29": "UInt8",
614
+ "semana30": "UInt8",
615
+ "semana31": "UInt8",
616
+ "semana32": "UInt8",
617
+ "semana33": "UInt8",
618
+ "semana34": "UInt8",
619
+ "semana35": "UInt8",
620
+ "semana36": "UInt8",
621
+ "semana37": "UInt8",
622
+ "semana38": "UInt8",
623
+ "semana39": "UInt8",
624
+ "semana40": "UInt8",
625
+ "semana41": "UInt8",
626
+ "semana42": "UInt8",
627
+ "semana43": "UInt8",
628
+ "semana44": "UInt8",
629
+ "semana45": "UInt8",
630
+ "semana46": "UInt8",
631
+ "semana47": "UInt8",
632
+ "semana48": "UInt8",
633
+ "semana49": "UInt8",
634
+ "semana50": "UInt8",
635
+ "semana51": "UInt8",
636
+ "semana52": "UInt8",
637
+ "semana53": "UInt8",
638
+ "total_semanas_compradas": "UInt64",
639
+ "percentual_frequencia": "Float64"
640
+ },
641
+ "vw_positivacao_semanal_grupo": {
642
+ "__doc__": "Positivação semanal por cliente + fornecedor + seção + grupo de produto. Permite analisar se o cliente comprou produtos de um grupo específico em cada semana. Granularidade mais fina que _fornecedor e _secao. Mesma estrutura de semana1..semana53.",
643
+ "id_coligada": "Int64",
644
+ "id_empresa": "Int64",
645
+ "ano": "Int64",
646
+ "id_cliente": "Int64",
647
+ "regiao": "Int64",
648
+ "zona": "Int64",
649
+ "area": "String",
650
+ "setor": "Int64",
651
+ "rota": "Int64",
652
+ "fornecedor": "String",
653
+ "secao": "String",
654
+ "grupo": "String",
655
+ "semana1": "UInt8",
656
+ "semana2": "UInt8",
657
+ "semana3": "UInt8",
658
+ "semana4": "UInt8",
659
+ "semana5": "UInt8",
660
+ "semana6": "UInt8",
661
+ "semana7": "UInt8",
662
+ "semana8": "UInt8",
663
+ "semana9": "UInt8",
664
+ "semana10": "UInt8",
665
+ "semana11": "UInt8",
666
+ "semana12": "UInt8",
667
+ "semana13": "UInt8",
668
+ "semana14": "UInt8",
669
+ "semana15": "UInt8",
670
+ "semana16": "UInt8",
671
+ "semana17": "UInt8",
672
+ "semana18": "UInt8",
673
+ "semana19": "UInt8",
674
+ "semana20": "UInt8",
675
+ "semana21": "UInt8",
676
+ "semana22": "UInt8",
677
+ "semana23": "UInt8",
678
+ "semana24": "UInt8",
679
+ "semana25": "UInt8",
680
+ "semana26": "UInt8",
681
+ "semana27": "UInt8",
682
+ "semana28": "UInt8",
683
+ "semana29": "UInt8",
684
+ "semana30": "UInt8",
685
+ "semana31": "UInt8",
686
+ "semana32": "UInt8",
687
+ "semana33": "UInt8",
688
+ "semana34": "UInt8",
689
+ "semana35": "UInt8",
690
+ "semana36": "UInt8",
691
+ "semana37": "UInt8",
692
+ "semana38": "UInt8",
693
+ "semana39": "UInt8",
694
+ "semana40": "UInt8",
695
+ "semana41": "UInt8",
696
+ "semana42": "UInt8",
697
+ "semana43": "UInt8",
698
+ "semana44": "UInt8",
699
+ "semana45": "UInt8",
700
+ "semana46": "UInt8",
701
+ "semana47": "UInt8",
702
+ "semana48": "UInt8",
703
+ "semana49": "UInt8",
704
+ "semana50": "UInt8",
705
+ "semana51": "UInt8",
706
+ "semana52": "UInt8",
707
+ "semana53": "UInt8",
708
+ "total_semanas_compradas": "UInt64",
709
+ "percentual_frequencia": "Float64"
710
+ },
711
+ "vw_positivacao_semanal_produto": {
712
+ "__doc__": "Positivação semanal por cliente + produto individual. A mais granular das views de positivação — indica se o cliente comprou um produto específico em cada semana. JOIN: id_produto → vw_produtos.id_produto | id_cliente → vw_clientes.id_cliente. Útil para análise de mix de produtos por cliente e frequência de recompra de itens específicos.",
713
+ "id_coligada": "Int64",
714
+ "id_empresa": "Int64",
715
+ "ano": "Int64",
716
+ "id_cliente": "Int64",
717
+ "regiao": "Int64",
718
+ "zona": "Int64",
719
+ "area": "String",
720
+ "setor": "Int64",
721
+ "rota": "Int64",
722
+ "id_produto": "Int64",
723
+ "semana1": "UInt8",
724
+ "semana2": "UInt8",
725
+ "semana3": "UInt8",
726
+ "semana4": "UInt8",
727
+ "semana5": "UInt8",
728
+ "semana6": "UInt8",
729
+ "semana7": "UInt8",
730
+ "semana8": "UInt8",
731
+ "semana9": "UInt8",
732
+ "semana10": "UInt8",
733
+ "semana11": "UInt8",
734
+ "semana12": "UInt8",
735
+ "semana13": "UInt8",
736
+ "semana14": "UInt8",
737
+ "semana15": "UInt8",
738
+ "semana16": "UInt8",
739
+ "semana17": "UInt8",
740
+ "semana18": "UInt8",
741
+ "semana19": "UInt8",
742
+ "semana20": "UInt8",
743
+ "semana21": "UInt8",
744
+ "semana22": "UInt8",
745
+ "semana23": "UInt8",
746
+ "semana24": "UInt8",
747
+ "semana25": "UInt8",
748
+ "semana26": "UInt8",
749
+ "semana27": "UInt8",
750
+ "semana28": "UInt8",
751
+ "semana29": "UInt8",
752
+ "semana30": "UInt8",
753
+ "semana31": "UInt8",
754
+ "semana32": "UInt8",
755
+ "semana33": "UInt8",
756
+ "semana34": "UInt8",
757
+ "semana35": "UInt8",
758
+ "semana36": "UInt8",
759
+ "semana37": "UInt8",
760
+ "semana38": "UInt8",
761
+ "semana39": "UInt8",
762
+ "semana40": "UInt8",
763
+ "semana41": "UInt8",
764
+ "semana42": "UInt8",
765
+ "semana43": "UInt8",
766
+ "semana44": "UInt8",
767
+ "semana45": "UInt8",
768
+ "semana46": "UInt8",
769
+ "semana47": "UInt8",
770
+ "semana48": "UInt8",
771
+ "semana49": "UInt8",
772
+ "semana50": "UInt8",
773
+ "semana51": "UInt8",
774
+ "semana52": "UInt8",
775
+ "semana53": "UInt8",
776
+ "total_semanas_compradas": "UInt64",
777
+ "percentual_frequencia": "Float64"
778
+ },
779
+ "vw_positivacao_semanal_secao": {
780
+ "__doc__": "Positivação semanal por cliente + fornecedor + seção de produto. Indica se o cliente comprou produtos de uma seção (categoria de nível 1 da hierarquia de produtos) em cada semana. Intermediário entre _fornecedor (mais agregado) e _grupo (mais detalhado).",
781
+ "id_coligada": "Int64",
782
+ "id_empresa": "Int64",
783
+ "ano": "Int64",
784
+ "id_cliente": "Int64",
785
+ "regiao": "Int64",
786
+ "zona": "Int64",
787
+ "area": "String",
788
+ "setor": "Int64",
789
+ "rota": "Int64",
790
+ "fornecedor": "String",
791
+ "secao": "String",
792
+ "semana1": "UInt8",
793
+ "semana2": "UInt8",
794
+ "semana3": "UInt8",
795
+ "semana4": "UInt8",
796
+ "semana5": "UInt8",
797
+ "semana6": "UInt8",
798
+ "semana7": "UInt8",
799
+ "semana8": "UInt8",
800
+ "semana9": "UInt8",
801
+ "semana10": "UInt8",
802
+ "semana11": "UInt8",
803
+ "semana12": "UInt8",
804
+ "semana13": "UInt8",
805
+ "semana14": "UInt8",
806
+ "semana15": "UInt8",
807
+ "semana16": "UInt8",
808
+ "semana17": "UInt8",
809
+ "semana18": "UInt8",
810
+ "semana19": "UInt8",
811
+ "semana20": "UInt8",
812
+ "semana21": "UInt8",
813
+ "semana22": "UInt8",
814
+ "semana23": "UInt8",
815
+ "semana24": "UInt8",
816
+ "semana25": "UInt8",
817
+ "semana26": "UInt8",
818
+ "semana27": "UInt8",
819
+ "semana28": "UInt8",
820
+ "semana29": "UInt8",
821
+ "semana30": "UInt8",
822
+ "semana31": "UInt8",
823
+ "semana32": "UInt8",
824
+ "semana33": "UInt8",
825
+ "semana34": "UInt8",
826
+ "semana35": "UInt8",
827
+ "semana36": "UInt8",
828
+ "semana37": "UInt8",
829
+ "semana38": "UInt8",
830
+ "semana39": "UInt8",
831
+ "semana40": "UInt8",
832
+ "semana41": "UInt8",
833
+ "semana42": "UInt8",
834
+ "semana43": "UInt8",
835
+ "semana44": "UInt8",
836
+ "semana45": "UInt8",
837
+ "semana46": "UInt8",
838
+ "semana47": "UInt8",
839
+ "semana48": "UInt8",
840
+ "semana49": "UInt8",
841
+ "semana50": "UInt8",
842
+ "semana51": "UInt8",
843
+ "semana52": "UInt8",
844
+ "semana53": "UInt8",
845
+ "total_semanas_compradas": "UInt64",
846
+ "percentual_frequencia": "Float64"
847
+ },
848
+ "vw_positivacao_semanal_subgrupo": {
849
+ "__doc__": "Positivação semanal por cliente + fornecedor + seção + grupo + subgrupo. A mais detalhada das views de positivação com hierarquia de produto (antes de chegar ao SKU individual em _produto). Útil para análise de penetração de categorias na carteira de clientes.",
850
+ "id_coligada": "Int64",
851
+ "id_empresa": "Int64",
852
+ "ano": "Int64",
853
+ "id_cliente": "Int64",
854
+ "regiao": "Int64",
855
+ "zona": "Int64",
856
+ "area": "String",
857
+ "setor": "Int64",
858
+ "rota": "Int64",
859
+ "fornecedor": "String",
860
+ "secao": "String",
861
+ "grupo": "String",
862
+ "subgrupo": "String",
863
+ "semana1": "UInt8",
864
+ "semana2": "UInt8",
865
+ "semana3": "UInt8",
866
+ "semana4": "UInt8",
867
+ "semana5": "UInt8",
868
+ "semana6": "UInt8",
869
+ "semana7": "UInt8",
870
+ "semana8": "UInt8",
871
+ "semana9": "UInt8",
872
+ "semana10": "UInt8",
873
+ "semana11": "UInt8",
874
+ "semana12": "UInt8",
875
+ "semana13": "UInt8",
876
+ "semana14": "UInt8",
877
+ "semana15": "UInt8",
878
+ "semana16": "UInt8",
879
+ "semana17": "UInt8",
880
+ "semana18": "UInt8",
881
+ "semana19": "UInt8",
882
+ "semana20": "UInt8",
883
+ "semana21": "UInt8",
884
+ "semana22": "UInt8",
885
+ "semana23": "UInt8",
886
+ "semana24": "UInt8",
887
+ "semana25": "UInt8",
888
+ "semana26": "UInt8",
889
+ "semana27": "UInt8",
890
+ "semana28": "UInt8",
891
+ "semana29": "UInt8",
892
+ "semana30": "UInt8",
893
+ "semana31": "UInt8",
894
+ "semana32": "UInt8",
895
+ "semana33": "UInt8",
896
+ "semana34": "UInt8",
897
+ "semana35": "UInt8",
898
+ "semana36": "UInt8",
899
+ "semana37": "UInt8",
900
+ "semana38": "UInt8",
901
+ "semana39": "UInt8",
902
+ "semana40": "UInt8",
903
+ "semana41": "UInt8",
904
+ "semana42": "UInt8",
905
+ "semana43": "UInt8",
906
+ "semana44": "UInt8",
907
+ "semana45": "UInt8",
908
+ "semana46": "UInt8",
909
+ "semana47": "UInt8",
910
+ "semana48": "UInt8",
911
+ "semana49": "UInt8",
912
+ "semana50": "UInt8",
913
+ "semana51": "UInt8",
914
+ "semana52": "UInt8",
915
+ "semana53": "UInt8",
916
+ "total_semanas_compradas": "UInt64",
917
+ "percentual_frequencia": "Float64"
918
+ },
919
+ "vw_ficha_tecnica": {
920
+ "__doc__": "Cabeçalho da ficha técnica de produção. Define a receita/fórmula de fabricação de um produto: nome, quantidade base de referência e status (ativo/inativo). É o registro mestre que conecta insumos (vw_ficha_tecnica_detalhes) e produtos acabados (vw_ficha_tecnica_acabados). JOIN: ftp_id → vw_ficha_tecnica_detalhes.ftp_id, vw_ficha_tecnica_acabados.ftp_id, vw_ordem_producao_itens.ftp_id. Usado para dashboards de produção: composição de produtos, custo de receita e planejamento.",
921
+ "ftp_id": "Int32",
922
+ "ftp_descricao": "Nullable(String)",
923
+ "ftp_qtd_base": "Nullable(Float64)",
924
+ "ftp_ativo": "UInt8",
925
+ "ftp_id_externo": "Nullable(Int32)"
926
+ },
927
+ "vw_ficha_tecnica_detalhes": {
928
+ "__doc__": "Componentes (insumos/matérias-primas) de cada ficha técnica. Cada linha é um insumo necessário para produzir a receita, com quantidade e estoque de referência. Os campos ftpd_E1..ftpd_E10 e ftpd_EF são flags que indicam em qual etapa do processo produtivo o insumo é consumido. JOIN: ftp_id → vw_ficha_tecnica.ftp_id | pr_codigo → vw_produtos.id_produto. Usado para calcular custo de matéria-prima por receita e explosão de necessidades.",
929
+ "ftpd_id": "Int32",
930
+ "ftp_id": "Nullable(Int32)",
931
+ "pr_codigo": "Nullable(Int32)",
932
+ "eqt_codigo": "Nullable(Int32)",
933
+ "ftpd_qtd": "Nullable(Float64)",
934
+ "ftpd_embalagem": "UInt8",
935
+ "ftpd_E1": "UInt8",
936
+ "ftpd_E2": "UInt8",
937
+ "ftpd_E3": "UInt8",
938
+ "ftpd_E4": "UInt8",
939
+ "ftpd_E5": "UInt8",
940
+ "ftpd_E6": "UInt8",
941
+ "ftpd_E7": "UInt8",
942
+ "ftpd_E8": "UInt8",
943
+ "ftpd_E9": "UInt8",
944
+ "ftpd_E10": "UInt8",
945
+ "ftpd_EF": "UInt8"
946
+ },
947
+ "vw_ficha_tecnica_acabados": {
948
+ "__doc__": "Produtos acabados gerados por cada ficha técnica. Uma ficha pode gerar múltiplos produtos acabados (ex: cortes diferentes de uma mesma matéria-prima). Cada linha indica o produto resultante, quantidade gerada e estoque destino. JOIN: ftp_id → vw_ficha_tecnica.ftp_id | pr_codigo → vw_produtos.id_produto. Embalagens dos acabados estão em vw_ficha_tecnica_acabados_emb.",
949
+ "ftpa_id": "Int32",
950
+ "ftp_id": "Nullable(Int32)",
951
+ "pr_codigo": "Nullable(Int32)",
952
+ "eqt_codigo": "Nullable(Int32)",
953
+ "ftpa_qtd": "Nullable(Float64)"
954
+ },
955
+ "vw_ficha_tecnica_acabados_emb": {
956
+ "__doc__": "Embalagens associadas a cada produto acabado da ficha técnica. Define qual produto-embalagem é usado para acondicionar o produto acabado e o fator de conversão (ex: caixa com 12 unidades → fator 12). JOIN: ftp_id → vw_ficha_tecnica.ftp_id | pr_codigo_acabado → vw_produtos.id_produto (acabado) | pr_codigo_emb → vw_produtos.id_produto (embalagem).",
957
+ "ftpae_id": "Int32",
958
+ "ftp_id": "Nullable(Int32)",
959
+ "pr_codigo_acabado": "Nullable(Int32)",
960
+ "pr_codigo_emb": "Nullable(Int32)",
961
+ "ftpae_fator": "Nullable(Float64)"
962
+ },
963
+ "vw_ordem_producao": {
964
+ "__doc__": "Cabeçalho da Ordem de Produção (OP). Cada linha é uma OP com empresa, tipo de produção, datas (abertura, início/fim previstos) e status (0=Aberta, 1=Em Andamento, 2=Finalizada, 3=Cancelada). É o registro mestre que conecta itens a produzir (vw_ordem_producao_itens) e etapas (vw_ordem_producao_etapas). JOIN: opr_id → vw_ordem_producao_itens.opr_id, vw_ordem_producao_etapas.opr_id | em_codigo → vw_empresas.id_empresa. Usado para dashboards de produção: acompanhamento de OPs, lead time, volume produzido.",
965
+ "opr_id": "Int32",
966
+ "em_codigo": "Nullable(Int32)",
967
+ "tp_producao": "Nullable(Int32)",
968
+ "opr_data": "Nullable(DateTime)",
969
+ "opr_di": "Nullable(DateTime)",
970
+ "opr_df": "Nullable(DateTime)",
971
+ "opr_status": "Nullable(Int16) -- 0=Aberta 1=Em Andamento 2=Finalizada 3=Cancelada",
972
+ "opr_obs": "Nullable(String)"
973
+ },
974
+ "vw_ordem_producao_etapas": {
975
+ "__doc__": "Etapas de execução de cada item da OP. Registra o avanço real da produção: funcionário responsável, datas início/fim reais, quantidade processada, lote e validade. Os campos opre_E1..opre_E10 e opre_EF são flags dos estágios produtivos (mesma lógica da ficha técnica). JOIN: opri_id → vw_ordem_producao_itens.opri_id | opr_id → vw_ordem_producao.opr_id | ftp_id → vw_ficha_tecnica.ftp_id | pr_codigo → vw_produtos.id_produto. Equipamentos usados nas etapas estão em vw_ordem_producao_etapas_equip.",
976
+ "opre_id": "Int32",
977
+ "opri_id": "Nullable(Int32)",
978
+ "opr_id": "Nullable(Int32)",
979
+ "fu_codigo": "Nullable(Int32)",
980
+ "pr_codigo": "Nullable(Int32)",
981
+ "pre_id": "Nullable(Int32)",
982
+ "ftp_id": "Nullable(Int32)",
983
+ "un_sigla": "Nullable(String)",
984
+ "opre_di": "Nullable(DateTime)",
985
+ "opre_df": "Nullable(DateTime)",
986
+ "opre_qtd": "Nullable(Int32)",
987
+ "opre_lote": "Nullable(String)",
988
+ "opre_lote_validade": "Nullable(DateTime)",
989
+ "opre_finalizada": "UInt8",
990
+ "opre_ultima": "UInt8",
991
+ "opre_horas": "Nullable(Int32)",
992
+ "opre_E1": "UInt8",
993
+ "opre_E2": "UInt8",
994
+ "opre_E3": "UInt8",
995
+ "opre_E4": "UInt8",
996
+ "opre_E5": "UInt8",
997
+ "opre_E6": "UInt8",
998
+ "opre_E7": "UInt8",
999
+ "opre_E8": "UInt8",
1000
+ "opre_E9": "UInt8",
1001
+ "opre_E10": "UInt8",
1002
+ "opre_EF": "UInt8"
1003
+ },
1004
+ "vw_ordem_producao_etapas_equip": {
1005
+ "__doc__": "Equipamentos utilizados em cada etapa da OP. Registra qual equipamento (patrimônio) foi alocado e quantas horas foi utilizado. JOIN: opre_id → vw_ordem_producao_etapas.opre_id. Usado para análise de utilização de equipamentos, custo-hora-máquina e planejamento de capacidade produtiva.",
1006
+ "opreq_id": "Int32",
1007
+ "opre_id": "Nullable(Int32)",
1008
+ "peq_id": "Nullable(Int32)",
1009
+ "opreq_horas": "Nullable(Int32)"
1010
+ },
1011
+ "vw_ordem_producao_itens": {
1012
+ "__doc__": "Produtos a produzir dentro de cada OP. Cada linha é um item com ficha técnica vinculada, quantidades (planejada, prevista, real), custo e status (finalizado/cancelado). JOIN: opr_id → vw_ordem_producao.opr_id | pr_codigo → vw_produtos.id_produto | ftp_id → vw_ficha_tecnica.ftp_id. Componentes consumidos por cada item estão em vw_ordem_producao_itens_comp. Etapas de execução em vw_ordem_producao_etapas.",
1013
+ "opri_id": "Int32",
1014
+ "opr_id": "Nullable(Int32)",
1015
+ "pr_codigo": "Nullable(Int32)",
1016
+ "ftp_id": "Nullable(Int32)",
1017
+ "un_sigla": "Nullable(String)",
1018
+ "opri_qtd": "Nullable(Float64)",
1019
+ "opri_qtd_prevista": "Nullable(Float64)",
1020
+ "opri_qtd_real": "Nullable(Float64)",
1021
+ "opri_custo": "Nullable(Float64)",
1022
+ "opri_finalizado": "UInt8",
1023
+ "opri_cancelado": "UInt8",
1024
+ "opri_remessas": "Nullable(Int32)"
1025
+ },
1026
+ "vw_ordem_producao_itens_comp": {
1027
+ "__doc__": "Componentes (matérias-primas) efetivamente consumidos por item da OP. Detalha quantidade prevista vs real, custo, perda percentual e saldo de estoque no momento. Flags classificam o componente: principal, opcional, subproduto ou embalagem. JOIN: opri_id → vw_ordem_producao_itens.opri_id | pr_codigo → vw_produtos.id_produto. Usado para análise de consumo real vs planejado, desperdício e custo efetivo de produção.",
1028
+ "opric_id": "Int32",
1029
+ "opri_id": "Int32",
1030
+ "pr_codigo": "Nullable(Int32)",
1031
+ "eqt_codigo": "Nullable(Int32)",
1032
+ "un_sigla": "Nullable(String)",
1033
+ "opric_qtd": "Nullable(Float64)",
1034
+ "opric_qtd_un": "Nullable(Float64)",
1035
+ "opric_qtd_real": "Nullable(Float64)",
1036
+ "opric_custo": "Nullable(Float64)",
1037
+ "opric_perda_perc": "Nullable(Float64)",
1038
+ "opric_estoque": "Nullable(Float64)",
1039
+ "opric_em_uso": "UInt8",
1040
+ "opric_principal": "UInt8",
1041
+ "opric_opcional": "UInt8",
1042
+ "opric_subproduto": "UInt8",
1043
+ "opric_embalagem": "UInt8"
1044
+ },
1045
+ "vw_vendas_validas": {
1046
+ "__doc__": "View principal de vendas (fato). Cada linha é um ITEM de venda (não um pedido — um pedido tem vários itens). Contém dados completos: datas (venda, fatura, entrega, fechamento), valores (unitário, tabela, custo, total), quantidades, desconto/acréscimo e status (1=ABERTO, 2=FATURADO, 3=ENTREGA, 4=FECHADO, 12=CANCELADO — vendas faturadas: status IN 2,3,4). Já traz desnormalizados: dados do produto (fornecedor, seção, grupo, subgrupo, marca, descrição), da rota (região, área, zona, setor, rota), nomes do cliente e vendedor. JOINs: id_cliente → vw_clientes.id_cliente | id_vendedor → vw_vendedores.id_vendedor | id_rota → vw_rotas.id_rota | id_produto → vw_produtos.id_produto | id_empresa → vw_empresas.id_empresa. É a tabela fato central para todas as análises comerciais.",
1047
+ "uid": "UUID",
1048
+ "id_coligada": "Int64",
1049
+ "id_empresa": "Int64",
1050
+ "id_item": "Int64",
1051
+ "id_venda": "Int64",
1052
+ "ano": "Int64",
1053
+ "semana": "Int64",
1054
+ "data_venda": "Nullable(Date)",
1055
+ "hora_venda": "String",
1056
+ "data_fatura": "Nullable(Date)",
1057
+ "data_fatura_process": "Nullable(Date)",
1058
+ "hora_fatura_process": "String",
1059
+ "data_entrega": "Nullable(Date)",
1060
+ "data_final": "Nullable(Date)",
1061
+ "hora_final": "String",
1062
+ "desconto": "Nullable(Float64)",
1063
+ "acrescimo": "Nullable(Float64)",
1064
+ "bonif": "Int64",
1065
+ "troca": "UInt8",
1066
+ "status": "Int64 -- 1=ABERTO | 2=FATURADO | 3=ENTREGA | 4=FECHADO | 12=CANCELADO | vendas faturadas = status IN (2,3,4)",
1067
+ "id_pedido": "Int64",
1068
+ "id_cliente": "Int64",
1069
+ "id_vendedor": "Int64",
1070
+ "id_rota": "Int64",
1071
+ "limite_credito_1": "Nullable(Float64)",
1072
+ "limite_credito_2": "Nullable(Float64)",
1073
+ "limite_credito_atraso": "Int64",
1074
+ "id_produto": "Int64",
1075
+ "saldo_estoque": "Nullable(Float64)",
1076
+ "quantidade": "Nullable(Float64)",
1077
+ "valor_unitario": "Nullable(Float64)",
1078
+ "preco_tabela": "Nullable(Float64)",
1079
+ "custo_ultima_entrada": "Nullable(Float64)",
1080
+ "custo_boleto": "Nullable(Float64)",
1081
+ "rateio_item": "Nullable(Float64)",
1082
+ "valor_total": "Nullable(Float64)",
1083
+ "id_tabela_preco": "Int64",
1084
+ "is_deleted": "Int64",
1085
+ "fornecedor": "String",
1086
+ "secao": "String",
1087
+ "grupo": "String",
1088
+ "subgrupo": "String",
1089
+ "marca": "String",
1090
+ "descricao_produto": "String",
1091
+ "regiao": "Int64",
1092
+ "area": "String",
1093
+ "zona": "Int64",
1094
+ "setor": "Int64",
1095
+ "rota": "Int64",
1096
+ "nome_completo_cliente": "String",
1097
+ "nome_abreviado_cliente": "String",
1098
+ "nome_vendedor": "String"
1099
+ },
1100
+ "vw_base_agrolog": {
1101
+ "__doc__": "Dados de movimentação agrológica (base_agrolog). Cada linha representa um movimento de produto agrícola com código, descrição, categoria/subcategoria, fornecedor, localização (cidade/estado), data, quantidade, valores unitário e total, e status. Útil para dashboards de agronegócio: faturamento por categoria, ranking de fornecedores, análise geográfica de vendas, evolução temporal de movimentações. Tabela independente importada de sistema agrológico.",
1102
+ "ingestion_datetime": "DateTime",
1103
+ "source_file": "String",
1104
+ "id": "UInt64",
1105
+ "codigo": "String",
1106
+ "descricao": "String",
1107
+ "categoria": "String",
1108
+ "subcategoria": "String",
1109
+ "fornecedor": "String",
1110
+ "cidade": "String",
1111
+ "estado": "String",
1112
+ "data_movimento": "Date",
1113
+ "quantidade": "Decimal(18, 4)",
1114
+ "valor_unitario": "Decimal(18, 4)",
1115
+ "valor_total": "Decimal(18, 4)",
1116
+ "status": "String"
1117
+ }
1118
+ }