{"openapi":"3.1.0","info":{"title":"PuronFit 3.3 Action API","description":"API do PuronFit 3.3 para consultar historico vivo de clientes, pecas, precos, PDFs digitalizados e desenhos, com foco em qualificação, recorrência, reajuste, rankings analíticos e BI de pedidos fechados por data de emissão do pedido.","version":"3.3.0"},"servers":[{"url":"https://puronfit-32.puron.uk","description":"PuronFit 3.3 endpoint configurado para este ambiente"}],"paths":{"/health":{"get":{"tags":["infra"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/ready":{"get":{"tags":["infra"],"summary":"Ready","description":"Readiness leve da Action API. Valida configuracao e caminhos locais sem abrir conexao SQL nem executar consulta pesada.","operationId":"ready_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadyResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"503":{"description":"Configuracao essencial indisponivel para atender chamadas.","content":{"application/json":{"example":{"detail":{"status":"error","app":"PuronFit 3.3 Action API","checks":{"api_key_registry":{"status":"error","detail":"Nenhuma chave de API configurada."}}}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/historico/consultar":{"post":{"tags":["historico"],"summary":"Historico Consultar","description":"Endpoint homologado em SQL direto via snapshot local em PROTHEUS_CONSULTAS e fallback CSV apenas como contingencia. O payload inclui o bloco fonte_dados com a origem efetivamente utilizada.","operationId":"historico_consultar_historico_consultar_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligentQueryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/historico/referencias-orcamento":{"post":{"tags":["historico"],"summary":"Historico Referencias Orcamento","description":"Endpoint homologado em SQL direto via snapshot local em PROTHEUS_CONSULTAS e fallback CSV apenas como contingencia. O payload inclui o bloco fonte_dados com a origem efetivamente utilizada.","operationId":"historico_referencias_orcamento_historico_referencias_orcamento_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetReferenceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/historico/comparativo-preco":{"post":{"tags":["historico"],"summary":"Historico Comparativo Preco","description":"Endpoint comercial para ultima compra compativel e comparativo de preco (ultimo, penultimo, media do cliente e referencia de base) com SQL direto via snapshot local em PROTHEUS_CONSULTAS e fallback CSV apenas como contingencia.","operationId":"historico_comparativo_preco_historico_comparativo_preco_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceComparisonRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/historico/similares":{"post":{"tags":["historico"],"summary":"Historico Similares","description":"Endpoint dedicado de similares por descricao e medida, com ranking semantico na API e SQL direto via snapshot local em PROTHEUS_CONSULTAS. Retorna similares no cliente e na base, mantendo fallback CSV apenas como contingencia.","operationId":"historico_similares_historico_similares_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimilarPiecesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/cliente/resumo":{"post":{"tags":["cliente"],"summary":"Cliente Resumo","description":"Endpoint de resumo do cliente com SQL direto via snapshot local em PROTHEUS_CONSULTAS e fallback CSV apenas como contingencia. O payload inclui o bloco fonte_dados com a origem efetivamente utilizada.","operationId":"cliente_resumo_cliente_resumo_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSummaryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/qualificacao/oportunidade":{"post":{"tags":["qualificacao"],"summary":"Qualificacao Oportunidade","description":"Endpoint de qualificação consultiva da oportunidade com stage gate G0/G1/G2/G3/G4, usando histórico, similares, comparativo de preço e cadastro do cliente em SQL direto via snapshot local em PROTHEUS_CONSULTAS, com fallback CSV apenas como contingência.","operationId":"qualificacao_oportunidade_qualificacao_oportunidade_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityQualificationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/analitico/top-pecas":{"post":{"tags":["analitico"],"summary":"Analitico Top Pecas","description":"Endpoint homologado em SQL direto em PROTHEUS_CONSULTAS via view liberada e fallback CSV apenas como contingencia. O payload inclui o bloco fonte_dados com a origem efetivamente utilizada.","operationId":"analitico_top_pecas_analitico_top_pecas_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPiecesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"PuronFitApiKey":[]}]}},"/bi/pedidos-fechados/resumo-periodo":{"post":{"tags":["bi"],"summary":"Resumo de fechamentos por periodo","description":"Resumo SQL de pedidos fechados por data de fechamento comercial baseada na emissao do pedido. Use TOTAL para total da janela; DIA, SEMANA, MES ou CLIENTE quando pedir quebra. Confira fonte_dados.snapshot_refreshed_at/alerta_frescor.","operationId":"biPedidosFechadosResumoPeriodo","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersSummaryRequest"},"examples":{"fechamento_total_semana_passada":{"summary":"Total da semana passada","value":{"data_inicial":"2026-04-20","data_final":"2026-04-26","granularidade":"TOTAL"}},"fechamento_mes_cliente":{"summary":"Fechamento do mes por cliente","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","cliente":"PIPEWAY","granularidade":"MES"}},"fechamento_semana":{"summary":"Fechamento da semana","value":{"data_inicial":"2026-04-13","data_final":"2026-04-19","granularidade":"SEMANA"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersSummaryResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Payload invalido para a consulta de BI de pedidos fechados.","content":{"application/json":{"examples":{"invalid_period":{"summary":"Periodo invertido","value":{"detail":[{"type":"value_error","loc":["body"],"msg":"Value error, data_final deve ser maior ou igual a data_inicial."}]}}}}}},"503":{"description":"Indisponibilidade da trilha SQL de resumo de fechamentos.","content":{"application/json":{"examples":{"sql_disabled":{"summary":"Flag SQL desligada","value":{"detail":"Consulta SQL está desabilitada para /bi/pedidos-fechados/resumo-periodo."}},"server_not_configured":{"summary":"Servidor SQL nao configurado","value":{"detail":"PURONFIT_SQL_SERVER não configurado para a base SQL de BI de pedidos fechados."}},"database_restricted":{"summary":"Banco fora do permitido","value":{"detail":"O endpoint SQL está restrito ao banco PROTHEUS_CONSULTAS. Valor recebido: OUTRO_BANCO."}}}}}}},"security":[{"PuronFitApiKey":[]}]}},"/bi/orcamentos-emitidos/resumo-periodo":{"post":{"tags":["bi"],"summary":"Resumo de orçamentos emitidos por periodo","description":"Resumo SQL de orcamentos emitidos por data de emissao do orcamento. Use TOTAL para total da janela; DIA, SEMANA, MES ou CLIENTE quando pedir quebra. Nao misture orcado com pedido fechado. Confira snapshot_refreshed_at/alerta_frescor.","operationId":"biOrcamentosEmitidosResumoPeriodo","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetEmittedSummaryRequest"},"examples":{"orcado_semana_passada_total":{"summary":"Total orçado da semana passada","value":{"data_inicial":"2026-04-20","data_final":"2026-04-26","granularidade":"TOTAL"}},"orcado_hoje":{"summary":"Orçado hoje","value":{"data_inicial":"2026-04-22","data_final":"2026-04-22","granularidade":"DIA"}},"orcado_mes_cliente":{"summary":"Orçado no mes por cliente","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","cliente":"PIPEWAY","granularidade":"MES"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetEmittedSummaryResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Payload invalido para a consulta de BI de pedidos fechados.","content":{"application/json":{"examples":{"invalid_period":{"summary":"Periodo invertido","value":{"detail":[{"type":"value_error","loc":["body"],"msg":"Value error, data_final deve ser maior ou igual a data_inicial."}]}}}}}},"503":{"description":"Indisponibilidade da trilha SQL de resumo de orçamentos emitidos.","content":{"application/json":{"examples":{"sql_disabled":{"summary":"Flag SQL desligada","value":{"detail":"Consulta SQL está desabilitada para /bi/orcamentos-emitidos/resumo-periodo."}},"server_not_configured":{"summary":"Servidor SQL nao configurado","value":{"detail":"PURONFIT_SQL_SERVER não configurado para a base SQL de BI de pedidos fechados."}},"database_restricted":{"summary":"Banco fora do permitido","value":{"detail":"O endpoint SQL está restrito ao banco PROTHEUS_CONSULTAS. Valor recebido: OUTRO_BANCO."}}}}}}},"security":[{"PuronFitApiKey":[]}]}},"/bi/pedidos-fechados/pedidos-periodo":{"post":{"tags":["bi"],"summary":"Pedidos fechados no periodo","description":"Lista SQL de pedidos fechados por periodo, usando fechamento comercial baseado na emissao do pedido. Use para detalhe por pedido. Confira fonte_dados.snapshot_refreshed_at/alerta_frescor.","operationId":"biPedidosFechadosPedidosPeriodo","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersOrdersRequest"},"examples":{"pedidos_cliente_periodo":{"summary":"Pedidos fechados do cliente no periodo","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","cliente":"PIPEWAY","top_n":50}},"pedido_pontual":{"summary":"Filtro por numero do pedido","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","num_pedido":"12345","top_n":10}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersOrdersResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Payload invalido para a consulta de BI de pedidos fechados.","content":{"application/json":{"examples":{"invalid_period":{"summary":"Periodo invertido","value":{"detail":[{"type":"value_error","loc":["body"],"msg":"Value error, data_final deve ser maior ou igual a data_inicial."}]}}}}}},"503":{"description":"Indisponibilidade da trilha SQL de listagem de pedidos fechados.","content":{"application/json":{"examples":{"sql_disabled":{"summary":"Flag SQL desligada","value":{"detail":"Consulta SQL está desabilitada para /bi/pedidos-fechados/pedidos-periodo."}},"server_not_configured":{"summary":"Servidor SQL nao configurado","value":{"detail":"PURONFIT_SQL_SERVER não configurado para a base SQL de BI de pedidos fechados."}},"database_restricted":{"summary":"Banco fora do permitido","value":{"detail":"O endpoint SQL está restrito ao banco PROTHEUS_CONSULTAS. Valor recebido: OUTRO_BANCO."}}}}}}},"security":[{"PuronFitApiKey":[]}]}},"/bi/pedidos-fechados/itens-periodo":{"post":{"tags":["bi"],"summary":"Itens fechados no periodo","description":"Detalhe linha a linha por item de pedidos fechados no periodo, usando fechamento comercial baseado na emissao do pedido. Confira fonte_dados.snapshot_refreshed_at/alerta_frescor.","operationId":"biPedidosFechadosItensPeriodo","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersItemsRequest"},"examples":{"detalhe_itens_cliente":{"summary":"Detalhe por item no periodo","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","cliente":"PIPEWAY","top_n":200}},"detalhe_itens_pedido":{"summary":"Detalhe dos itens de um pedido","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","num_pedido":"12345","top_n":100}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersItemsResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Payload invalido para a consulta de BI de pedidos fechados.","content":{"application/json":{"examples":{"invalid_period":{"summary":"Periodo invertido","value":{"detail":[{"type":"value_error","loc":["body"],"msg":"Value error, data_final deve ser maior ou igual a data_inicial."}]}}}}}},"503":{"description":"Indisponibilidade da trilha SQL de detalhe por item.","content":{"application/json":{"examples":{"sql_disabled":{"summary":"Flag SQL desligada","value":{"detail":"Consulta SQL está desabilitada para /bi/pedidos-fechados/itens-periodo."}},"server_not_configured":{"summary":"Servidor SQL nao configurado","value":{"detail":"PURONFIT_SQL_SERVER não configurado para a base SQL de BI de pedidos fechados."}},"database_restricted":{"summary":"Banco fora do permitido","value":{"detail":"O endpoint SQL está restrito ao banco PROTHEUS_CONSULTAS. Valor recebido: OUTRO_BANCO."}}}}}}},"security":[{"PuronFitApiKey":[]}]}},"/bi/pedidos-fechados/itens-resumo-periodo":{"post":{"tags":["bi"],"summary":"Resumo de itens fechados no periodo","description":"Resumo agregado por item/produto dos pedidos fechados no periodo, usando fechamento comercial baseado na emissao do pedido. Confira fonte_dados.snapshot_refreshed_at/alerta_frescor.","operationId":"biPedidosFechadosItensResumoPeriodo","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersItemsSummaryRequest"},"examples":{"ranking_itens_cliente":{"summary":"Ranking agregado por item","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","cliente":"PIPEWAY","top_n":25}},"resumo_item_pontual":{"summary":"Resumo de um item especifico","value":{"data_inicial":"2026-04-01","data_final":"2026-04-30","produto":"ANEL GUIA","top_n":10}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClosedOrdersItemsSummaryResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem escopo suficiente para esta rota.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Payload invalido para a consulta de BI de pedidos fechados.","content":{"application/json":{"examples":{"invalid_period":{"summary":"Periodo invertido","value":{"detail":[{"type":"value_error","loc":["body"],"msg":"Value error, data_final deve ser maior ou igual a data_inicial."}]}}}}}},"503":{"description":"Indisponibilidade da trilha SQL de resumo agregado por item.","content":{"application/json":{"examples":{"sql_disabled":{"summary":"Flag SQL desligada","value":{"detail":"Consulta SQL está desabilitada para /bi/pedidos-fechados/itens-resumo-periodo."}},"server_not_configured":{"summary":"Servidor SQL nao configurado","value":{"detail":"PURONFIT_SQL_SERVER não configurado para a base SQL de BI de pedidos fechados."}},"database_restricted":{"summary":"Banco fora do permitido","value":{"detail":"O endpoint SQL está restrito ao banco PROTHEUS_CONSULTAS. Valor recebido: OUTRO_BANCO."}}}}}}},"security":[{"PuronFitApiKey":[]}]}},"/desenhos/buscar":{"post":{"tags":["desenhos"],"summary":"Buscar desenhos por codigo de peca","description":"Busca desenhos por codigo de peca. A API usa os 4 primeiros caracteres do codigo para localizar a familia e depois procura a pasta da peca. Retorna links temporarios: PDF abre direto no navegador; arquivos SolidWorks devem ser baixados e abertos no eDrawings.","operationId":"desenhosBuscar","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesenhosSearchRequest"},"examples":{"buscar_peca":{"summary":"Buscar desenhos de uma peca","value":{"codigo_peca":"003B0044","limite":20}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesenhosSearchResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem permissao para desenhos.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Pedido de busca invalido.","content":{"application/json":{"example":{"detail":[{"type":"missing","loc":["body","codigo_peca"],"msg":"Field required"}]}}}},"503":{"description":"Busca de desenhos indisponivel por falta de indice ou pasta.","content":{"application/json":{"example":{"detail":"Indice de desenhos nao encontrado. Execute scripts\\indexar_desenhos.ps1 antes da busca."}}}}},"security":[{"PuronFitApiKey":[]}]}},"/desenhos/abrir/{token}":{"get":{"tags":["desenhos"],"summary":"Abrir ou baixar desenho","description":"Abre ou baixa um desenho usando link temporario gerado pela busca. PDF abre no navegador. SolidWorks e eDrawings sao enviados para download, para abrir no eDrawings.","operationId":"desenhosAbrir","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Quando true, baixa o arquivo em vez de abrir no navegador.","default":false,"title":"Download"},"description":"Quando true, baixa o arquivo em vez de abrir no navegador."}],"responses":{"200":{"description":"Desenho encontrado e enviado.","content":{"application/octet-stream":{},"application/pdf":{}}},"403":{"description":"Link temporario invalido ou expirado.","content":{"application/json":{"example":{"detail":"Link de desenho invalido ou expirado."}}}},"404":{"description":"Desenho nao encontrado no servidor.","content":{"application/json":{"example":{"detail":"Desenho nao encontrado no servidor."}}}},"503":{"description":"Pasta de desenhos indisponivel.","content":{"application/json":{"example":{"detail":"Abertura de desenho indisponivel."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/digitalizados/pdfs/buscar":{"post":{"tags":["digitalizados"],"summary":"Buscar PDFs digitalizados","description":"Busca PDFs digitalizados por nome/caminho usando indice local. Retorna url_abrir_pdf e url_baixar_pdf, que sao links HTTPS temporarios. Mostre url_abrir_pdf ao usuario para abrir o arquivo. O conteudo do PDF nao e lido.","operationId":"digitalizadosPdfBuscar","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalizadosPdfSearchRequest"},"examples":{"buscar_por_cliente_ou_pedido":{"summary":"Busca por cliente ou numero","value":{"termo":"PIPEWAY 12345","limite":20,"ordenar_por":"relevancia"}},"ultimos_pdfs":{"summary":"PDFs mais recentes","value":{"limite":10,"ordenar_por":"modificacao"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalizadosPdfSearchResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem permissao para digitalizados.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Pedido de busca invalido.","content":{"application/json":{"example":{"detail":[{"type":"less_than_equal","loc":["body","limite"],"msg":"Input should be less than or equal to 100"}]}}}},"503":{"description":"Busca de PDFs indisponivel por falta de indice ou pasta.","content":{"application/json":{"example":{"detail":"Indice de PDFs digitalizados nao encontrado. Execute scripts\\indexar_digitalizados_pdfs.ps1 antes da busca."}}}}},"security":[{"PuronFitApiKey":[]}]}},"/digitalizados/pdfs/abrir/{token}":{"get":{"tags":["digitalizados"],"summary":"Abrir PDF digitalizado","description":"Abre ou baixa um PDF digitalizado usando um link temporario gerado pela busca. Este link nao exige API key no clique, mas expira automaticamente.","operationId":"digitalizadosPdfAbrir","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Quando true, baixa o arquivo em vez de abrir no navegador.","default":false,"title":"Download"},"description":"Quando true, baixa o arquivo em vez de abrir no navegador."}],"responses":{"200":{"description":"PDF encontrado e enviado como application/pdf.","content":{"application/pdf":{}}},"403":{"description":"Link temporario invalido ou expirado.","content":{"application/json":{"example":{"detail":"Link de PDF invalido ou expirado."}}}},"404":{"description":"PDF nao encontrado no servidor.","content":{"application/json":{"example":{"detail":"PDF digitalizado nao encontrado no servidor."}}}},"503":{"description":"Pasta de digitalizados indisponivel.","content":{"application/json":{"example":{"detail":"Abertura de PDF digitalizado indisponivel."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/digitalizados/pdfs/extrair-texto":{"post":{"tags":["digitalizados"],"summary":"Extrair texto de PDF digitalizado","description":"Extrai texto do PDF encontrado. Usa texto nativo quando existir e OCR para pagina escaneada. Envie caminho_relativo da busca; retorna texto limitado para analise.","operationId":"digitalizadosPdfExtrairTexto","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalizadosPdfTextExtractRequest"},"examples":{"extrair_primeiras_paginas":{"summary":"Extrair texto para analise","value":{"caminho_relativo":"2026/PIPEWAY - 22 DE ABRIL DE 2026 - ORÇ 000456.pdf","pagina_inicial":1,"max_paginas":3,"max_chars":12000,"idioma_ocr":"por"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigitalizadosPdfTextExtractResponse"}}}},"401":{"description":"API key invalida ou ausente.","content":{"application/json":{"example":{"detail":"Invalid API key."}}}},"403":{"description":"API key sem permissao para digitalizados.","content":{"application/json":{"example":{"detail":"API key does not have the required scope."}}}},"422":{"description":"Pedido invalido.","content":{"application/json":{"example":{"detail":"Informe caminho_relativo, token ou url_abrir_pdf."}}}},"503":{"description":"OCR indisponivel ou falha ao ler o PDF.","content":{"application/json":{"example":{"detail":"OCR indisponivel: arquivos de idioma do Tesseract nao encontrados no servidor."}}}}},"security":[{"PuronFitApiKey":[]}]}}},"components":{"schemas":{"BiDataSource":{"properties":{"tipo":{"type":"string","title":"Tipo"},"fallback_acionado":{"type":"boolean","title":"Fallback Acionado","default":false},"motivo_fallback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Motivo Fallback"},"view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View"},"query_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Name"},"banco":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Banco"},"modo_leitura":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modo Leitura"},"snapshot_refreshed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Refreshed At"},"snapshot_cobre_periodo_consultado":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Snapshot Cobre Periodo Consultado"},"alerta_frescor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alerta Frescor"}},"type":"object","required":["tipo"],"title":"BiDataSource","example":{"alerta_frescor":"Snapshot local atualizado até 2026-04-22; consulta solicitada até 2026-04-23.","banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"modo_leitura":"snapshot","query_name":"bi_pedidos_fechados_resumo_periodo","snapshot_cobre_periodo_consultado":false,"snapshot_refreshed_at":"2026-04-22 17:42:00","tipo":"sql","view":"historico_orcamento.vw_api_bi_pedidos_fechados_base"}},"BudgetEmittedSummaryGroup":{"properties":{"grupo":{"type":"string","title":"Grupo"},"data_inicial_grupo":{"type":"string","format":"date","title":"Data Inicial Grupo"},"data_final_grupo":{"type":"string","format":"date","title":"Data Final Grupo"},"qtd_orcamentos_emitidos":{"type":"integer","title":"Qtd Orcamentos Emitidos"},"qtd_clientes":{"type":"integer","title":"Qtd Clientes"},"qtd_itens_orcados":{"type":"integer","title":"Qtd Itens Orcados"},"valor_total_orcado":{"type":"number","title":"Valor Total Orcado"},"qtd_orcamentos_com_fechamento":{"type":"integer","title":"Qtd Orcamentos Com Fechamento"},"valor_total_fechado":{"type":"number","title":"Valor Total Fechado"}},"type":"object","required":["grupo","data_inicial_grupo","data_final_grupo","qtd_orcamentos_emitidos","qtd_clientes","qtd_itens_orcados","valor_total_orcado","qtd_orcamentos_com_fechamento","valor_total_fechado"],"title":"BudgetEmittedSummaryGroup"},"BudgetEmittedSummaryRequest":{"properties":{"data_inicial":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Inicial","description":"Data inicial em YYYY-MM-DD."},"data_final":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Final","description":"Data final em YYYY-MM-DD."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial para restringir o resumo."},"granularidade":{"type":"string","enum":["TOTAL","DIA","SEMANA","MES","CLIENTE"],"title":"Granularidade","description":"Granularidade do resumo de orçamentos emitidos. Use TOTAL quando a pergunta pedir o total da janela inteira; use DIA, SEMANA, MES ou CLIENTE quando a pergunta pedir quebra por grupo.","default":"MES"}},"type":"object","title":"BudgetEmittedSummaryRequest","example":{"data_final":"2026-04-26","data_inicial":"2026-04-20","granularidade":"TOTAL"}},"BudgetEmittedSummaryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BudgetEmittedSummaryGroup"},"type":"array","title":"Items"},"total_registros":{"type":"integer","title":"Total Registros"},"fonte_dados":{"$ref":"#/components/schemas/BiDataSource"}},"type":"object","required":["items","total_registros","fonte_dados"],"title":"BudgetEmittedSummaryResponse","example":{"fonte_dados":{"banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"motivo_fallback":"","query_name":"bi_orcamentos_emitidos_resumo_periodo","tipo":"sql","view":"historico_orcamento.vw_api_historico_consulta_base"},"items":[{"data_final_grupo":"2026-04-22","data_inicial_grupo":"2026-04-22","grupo":"2026-04-22","qtd_clientes":5,"qtd_itens_orcados":27,"qtd_orcamentos_com_fechamento":2,"qtd_orcamentos_emitidos":12,"valor_total_fechado":3260.0,"valor_total_orcado":18450.75}],"total_registros":1}},"BudgetReferenceRequest":{"properties":{"descricao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao","description":"Descrição técnica ou comercial da peça."},"descricao_cientifica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao Cientifica","description":"Descrição científica ou complementar da peça no cadastro adicional do produto."},"codigo_cliente_peca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Cliente Peca","description":"Código da peça no cliente, quando existir no cadastro adicional do produto."},"fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fabricante","description":"Fabricante informado no cadastro adicional do produto."},"codigo_fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Fabricante","description":"Código do fabricante informado no cadastro adicional do produto."},"modelos":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelos","description":"Modelos de máquina ou aplicação ligados à peça."},"medidas_texto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medidas Texto","description":"Medidas em texto livre, por exemplo 42x16x210."},"diametro_externo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Externo","description":"Diâmetro externo da peça, quando vier separado no orçamento."},"diametro_interno":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Interno","description":"Diâmetro interno da peça, quando vier separado no orçamento."},"largura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura","description":"Largura da peça."},"comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Comprimento","description":"Comprimento da peça."},"espessura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Espessura","description":"Espessura da peça."},"largura_total":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura Total","description":"Largura total da peça."},"diametro_rolo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Rolo","description":"Diâmetro do rolo, quando houver."},"diametro_furo_guia":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Guia","description":"Diâmetro do furo guia, quando houver."},"diametro_furo_fixacao":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Fixacao","description":"Diâmetro do furo de fixação, quando houver."},"alojamento_flange":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Alojamento Flange","description":"Alojamento ou flange, quando houver."},"centro_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Centro Furos","description":"Centro dos furos, quando houver."},"quantidade_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Quantidade Furos","description":"Quantidade de furos, quando houver."},"larg_comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Larg Comprimento","description":"Campo combinado de largura ou comprimento, quando vier nesse formato."},"dureza":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Dureza","description":"Dureza da peça, por exemplo 75 SHA."},"cor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cor","description":"Cor da peça, quando informada."},"especificacao_tecnica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Especificacao Tecnica","description":"Especificação técnica livre, como dureza, densidade, norma ou observação técnica."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"limite":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limite","default":10},"tolerancia_absoluta":{"type":"number","minimum":0.0,"title":"Tolerancia Absoluta","default":2.0},"tolerancia_relativa":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Tolerancia Relativa","default":0.08}},"type":"object","title":"BudgetReferenceRequest"},"ClientSummaryRequest":{"properties":{"cliente":{"type":"string","title":"Cliente","description":"Nome do cliente completo ou parcial."},"limite_historico":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limite Historico","default":10}},"type":"object","required":["cliente"],"title":"ClientSummaryRequest"},"ClosedOrdersItem":{"properties":{"data_fechamento_comercial":{"type":"string","format":"date","title":"Data Fechamento Comercial"},"data_emissao_pedido":{"type":"string","format":"date","title":"Data Emissao Pedido"},"data_faturamento":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Faturamento"},"cliente_loja":{"type":"string","title":"Cliente Loja"},"nome_cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Cliente"},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido"},"empresa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Empresa"},"filial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filial"},"empresa_num_pedido":{"type":"string","title":"Empresa Num Pedido"},"num_pedido":{"type":"string","title":"Num Pedido"},"empresa_num_pedido_item":{"type":"string","title":"Empresa Num Pedido Item"},"item":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item"},"produto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Produto"},"um":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Um"},"qtd_venda":{"type":"number","title":"Qtd Venda"},"prc_venda":{"type":"number","title":"Prc Venda"},"valor_item_fechado":{"type":"number","title":"Valor Item Fechado"},"num_orc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Num Orc"},"status_pedido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Pedido"},"vend1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vend1"},"cond_pag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cond Pag"}},"type":"object","required":["data_fechamento_comercial","data_emissao_pedido","cliente_loja","empresa_num_pedido","num_pedido","empresa_num_pedido_item","qtd_venda","prc_venda","valor_item_fechado"],"title":"ClosedOrdersItem"},"ClosedOrdersItemsRequest":{"properties":{"data_inicial":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Inicial","description":"Data inicial em YYYY-MM-DD."},"data_final":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Final","description":"Data final em YYYY-MM-DD."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial. Tambem aceita o nome comercial usado pela operacao, incluindo loja reduzida como VOLKSWAGEN-SBC."},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido","description":"Nome reduzido da loja, quando aplicavel. Preferir este campo quando o usuario citar explicitamente a unidade abreviada."},"num_pedido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Num Pedido","description":"Numero do pedido para filtro pontual."},"top_n":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Top N","default":200}},"type":"object","title":"ClosedOrdersItemsRequest","example":{"cliente":"PIPEWAY","data_final":"2026-04-30","data_inicial":"2026-04-01","num_pedido":"12345","top_n":200}},"ClosedOrdersItemsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ClosedOrdersItem"},"type":"array","title":"Items"},"total_registros":{"type":"integer","title":"Total Registros"},"fonte_dados":{"$ref":"#/components/schemas/BiDataSource"}},"type":"object","required":["items","total_registros","fonte_dados"],"title":"ClosedOrdersItemsResponse","example":{"fonte_dados":{"banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"query_name":"bi_pedidos_fechados_detalhe_periodo","tipo":"sql","view":"historico_orcamento.vw_api_bi_pedidos_fechados_base"},"items":[{"cliente_loja":"00000101","cond_pag":"28D","data_emissao_pedido":"2026-04-20","data_faturamento":"2026-04-22","data_fechamento_comercial":"2026-04-20","empresa":"01","empresa_num_pedido":"01-12345","empresa_num_pedido_item":"01-12345-01","filial":"0101","item":"01","nome_cliente":"PIPEWAY","nome_reduzido":"PIPEWAY","num_orc":"99887","num_pedido":"12345","prc_venda":300.0,"produto":"ANEL GUIA","qtd_venda":5.0,"status_pedido":"FECHADO","um":"PC","valor_item_fechado":1500.0,"vend1":"000123"}],"total_registros":1}},"ClosedOrdersItemsSummaryItem":{"properties":{"produto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Produto"},"um":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Um"},"primeira_data_fechamento":{"type":"string","format":"date","title":"Primeira Data Fechamento"},"ultima_data_fechamento":{"type":"string","format":"date","title":"Ultima Data Fechamento"},"qtd_itens_fechados":{"type":"integer","title":"Qtd Itens Fechados"},"qtd_pedidos_fechados":{"type":"integer","title":"Qtd Pedidos Fechados"},"qtd_clientes":{"type":"integer","title":"Qtd Clientes"},"qtd_total_vendida":{"type":"number","title":"Qtd Total Vendida"},"valor_total_fechado":{"type":"number","title":"Valor Total Fechado"},"preco_medio_fechado":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Preco Medio Fechado"}},"type":"object","required":["primeira_data_fechamento","ultima_data_fechamento","qtd_itens_fechados","qtd_pedidos_fechados","qtd_clientes","qtd_total_vendida","valor_total_fechado"],"title":"ClosedOrdersItemsSummaryItem"},"ClosedOrdersItemsSummaryRequest":{"properties":{"data_inicial":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Inicial","description":"Data inicial em YYYY-MM-DD."},"data_final":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Final","description":"Data final em YYYY-MM-DD."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial. Tambem aceita o nome comercial usado pela operacao, incluindo loja reduzida como VOLKSWAGEN-SBC."},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido","description":"Nome reduzido da loja, quando aplicavel. Preferir este campo quando o usuario citar explicitamente a unidade abreviada."},"produto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Produto","description":"Codigo ou texto do item/produto para filtro pontual."},"top_n":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Top N","default":100}},"type":"object","title":"ClosedOrdersItemsSummaryRequest","example":{"cliente":"PIPEWAY","data_final":"2026-04-30","data_inicial":"2026-04-01","produto":"ANEL GUIA","top_n":25}},"ClosedOrdersItemsSummaryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ClosedOrdersItemsSummaryItem"},"type":"array","title":"Items"},"total_registros":{"type":"integer","title":"Total Registros"},"fonte_dados":{"$ref":"#/components/schemas/BiDataSource"}},"type":"object","required":["items","total_registros","fonte_dados"],"title":"ClosedOrdersItemsSummaryResponse","example":{"fonte_dados":{"banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"query_name":"bi_pedidos_fechados_itens_resumo_periodo","tipo":"sql","view":"historico_orcamento.vw_api_bi_pedidos_fechados_base"},"items":[{"preco_medio_fechado":300.0,"primeira_data_fechamento":"2026-04-01","produto":"ANEL GUIA","qtd_clientes":2,"qtd_itens_fechados":6,"qtd_pedidos_fechados":4,"qtd_total_vendida":12.0,"ultima_data_fechamento":"2026-04-20","um":"PC","valor_total_fechado":3600.0}],"total_registros":1}},"ClosedOrdersOrder":{"properties":{"data_fechamento_comercial":{"type":"string","format":"date","title":"Data Fechamento Comercial"},"primeira_data_faturamento":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Primeira Data Faturamento"},"ultima_data_faturamento":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Ultima Data Faturamento"},"cliente_loja":{"type":"string","title":"Cliente Loja"},"nome_cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Cliente"},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido"},"empresa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Empresa"},"filial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filial"},"empresa_num_pedido":{"type":"string","title":"Empresa Num Pedido"},"num_pedido":{"type":"string","title":"Num Pedido"},"qtd_itens_fechados":{"type":"integer","title":"Qtd Itens Fechados"},"qtd_produtos_fechados":{"type":"integer","title":"Qtd Produtos Fechados"},"qtd_orcamentos_relacionados":{"type":"integer","title":"Qtd Orcamentos Relacionados"},"qtd_total_vendida":{"type":"number","title":"Qtd Total Vendida"},"valor_total_pedido_fechado":{"type":"number","title":"Valor Total Pedido Fechado"},"status_pedido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Pedido"},"vend1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vend1"},"cond_pag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cond Pag"}},"type":"object","required":["data_fechamento_comercial","cliente_loja","empresa_num_pedido","num_pedido","qtd_itens_fechados","qtd_produtos_fechados","qtd_orcamentos_relacionados","qtd_total_vendida","valor_total_pedido_fechado"],"title":"ClosedOrdersOrder"},"ClosedOrdersOrdersRequest":{"properties":{"data_inicial":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Inicial","description":"Data inicial em YYYY-MM-DD."},"data_final":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Final","description":"Data final em YYYY-MM-DD."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial. Tambem aceita o nome comercial usado pela operacao, incluindo loja reduzida como VOLKSWAGEN-SBC."},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido","description":"Nome reduzido da loja, quando aplicavel. Preferir este campo quando o usuario citar explicitamente a unidade abreviada."},"num_pedido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Num Pedido","description":"Numero do pedido para filtro pontual."},"top_n":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Top N","default":100}},"type":"object","title":"ClosedOrdersOrdersRequest","example":{"cliente":"PIPEWAY","data_final":"2026-04-30","data_inicial":"2026-04-01","num_pedido":"12345","top_n":50}},"ClosedOrdersOrdersResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ClosedOrdersOrder"},"type":"array","title":"Items"},"total_registros":{"type":"integer","title":"Total Registros"},"fonte_dados":{"$ref":"#/components/schemas/BiDataSource"}},"type":"object","required":["items","total_registros","fonte_dados"],"title":"ClosedOrdersOrdersResponse","example":{"fonte_dados":{"banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"query_name":"bi_pedidos_fechados_pedidos_periodo","tipo":"sql","view":"historico_orcamento.vw_api_bi_pedidos_fechados_resumo_pedido"},"items":[{"cliente_loja":"00000101","cond_pag":"28D","data_fechamento_comercial":"2026-04-20","empresa":"01","empresa_num_pedido":"01-12345","filial":"0101","nome_cliente":"PIPEWAY","nome_reduzido":"PIPEWAY","num_pedido":"12345","primeira_data_faturamento":"2026-04-22","qtd_itens_fechados":4,"qtd_orcamentos_relacionados":2,"qtd_produtos_fechados":3,"qtd_total_vendida":10.0,"status_pedido":"FECHADO","ultima_data_faturamento":"2026-04-25","valor_total_pedido_fechado":3450.75,"vend1":"000123"}],"total_registros":1}},"ClosedOrdersSummaryGroup":{"properties":{"grupo":{"type":"string","title":"Grupo"},"data_inicial_grupo":{"type":"string","format":"date","title":"Data Inicial Grupo"},"data_final_grupo":{"type":"string","format":"date","title":"Data Final Grupo"},"qtd_itens_fechados":{"type":"integer","title":"Qtd Itens Fechados"},"qtd_pedidos_fechados":{"type":"integer","title":"Qtd Pedidos Fechados"},"qtd_clientes":{"type":"integer","title":"Qtd Clientes"},"valor_total_fechado":{"type":"number","title":"Valor Total Fechado"}},"type":"object","required":["grupo","data_inicial_grupo","data_final_grupo","qtd_itens_fechados","qtd_pedidos_fechados","qtd_clientes","valor_total_fechado"],"title":"ClosedOrdersSummaryGroup"},"ClosedOrdersSummaryRequest":{"properties":{"data_inicial":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Inicial","description":"Data inicial em YYYY-MM-DD."},"data_final":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Final","description":"Data final em YYYY-MM-DD."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial. Tambem aceita o nome comercial usado pela operacao, incluindo loja reduzida como VOLKSWAGEN-SBC."},"nome_reduzido":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nome Reduzido","description":"Nome reduzido da loja, quando aplicavel. Preferir este campo quando o usuario citar explicitamente a unidade abreviada."},"granularidade":{"type":"string","enum":["TOTAL","DIA","SEMANA","MES","CLIENTE"],"title":"Granularidade","description":"Granularidade do resumo. Use TOTAL quando a pergunta pedir o total da janela inteira; use DIA, SEMANA, MES ou CLIENTE quando a pergunta pedir quebra por grupo.","default":"MES"}},"type":"object","title":"ClosedOrdersSummaryRequest","example":{"data_final":"2026-04-26","data_inicial":"2026-04-20","granularidade":"TOTAL"}},"ClosedOrdersSummaryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ClosedOrdersSummaryGroup"},"type":"array","title":"Items"},"total_registros":{"type":"integer","title":"Total Registros"},"fonte_dados":{"$ref":"#/components/schemas/BiDataSource"}},"type":"object","required":["items","total_registros","fonte_dados"],"title":"ClosedOrdersSummaryResponse","example":{"fonte_dados":{"banco":"PROTHEUS_CONSULTAS","fallback_acionado":false,"query_name":"bi_pedidos_fechados_resumo_periodo","tipo":"sql","view":"historico_orcamento.vw_api_bi_pedidos_fechados_base"},"items":[{"data_final_grupo":"2026-04-30","data_inicial_grupo":"2026-04-01","grupo":"2026-04","qtd_clientes":3,"qtd_itens_fechados":18,"qtd_pedidos_fechados":7,"valor_total_fechado":12890.5}],"total_registros":1}},"DesenhoItem":{"properties":{"codigo_peca":{"type":"string","title":"Codigo Peca"},"familia_codigo":{"type":"string","title":"Familia Codigo"},"familia_pasta":{"type":"string","title":"Familia Pasta"},"pasta_peca":{"type":"string","title":"Pasta Peca"},"nome_arquivo":{"type":"string","title":"Nome Arquivo"},"extensao":{"type":"string","title":"Extensao"},"tipo_arquivo":{"type":"string","title":"Tipo Arquivo"},"caminho_relativo":{"type":"string","title":"Caminho Relativo"},"pasta_relativa":{"type":"string","title":"Pasta Relativa"},"tamanho_bytes":{"type":"integer","title":"Tamanho Bytes"},"modificado_em":{"type":"string","title":"Modificado Em"},"score":{"type":"number","title":"Score"},"abre_no_navegador":{"type":"boolean","title":"Abre No Navegador"},"precisa_edrawings":{"type":"boolean","title":"Precisa Edrawings"},"viewer_recomendado":{"type":"string","title":"Viewer Recomendado"},"mensagem_visualizacao":{"type":"string","title":"Mensagem Visualizacao"},"caminho_absoluto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caminho Absoluto"},"url_abrir_desenho":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Abrir Desenho","description":"Link HTTPS temporario para abrir o desenho. PDF abre no navegador; SolidWorks baixa para abrir no eDrawings."},"url_baixar_desenho":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Baixar Desenho","description":"Link HTTPS temporario para baixar o desenho."},"link_expira_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Expira Em","description":"Data e hora em UTC em que o link temporario deixa de funcionar."}},"type":"object","required":["codigo_peca","familia_codigo","familia_pasta","pasta_peca","nome_arquivo","extensao","tipo_arquivo","caminho_relativo","pasta_relativa","tamanho_bytes","modificado_em","score","abre_no_navegador","precisa_edrawings","viewer_recomendado","mensagem_visualizacao"],"title":"DesenhoItem"},"DesenhosDataSource":{"properties":{"tipo":{"type":"string","title":"Tipo"},"pasta":{"type":"string","title":"Pasta"},"pasta_disponivel":{"type":"boolean","title":"Pasta Disponivel"},"observacao":{"type":"string","title":"Observacao"},"links_desenhos_disponiveis":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Links Desenhos Disponiveis"},"link_expira_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Expira Em"},"modo_busca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modo Busca"},"indice_disponivel":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Indice Disponivel"},"indexado_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Indexado Em"},"index_age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Index Age Hours"},"index_max_age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Index Max Age Hours"},"total_indexado":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Indexado"}},"type":"object","required":["tipo","pasta","pasta_disponivel","observacao"],"title":"DesenhosDataSource"},"DesenhosSearchRequest":{"properties":{"codigo_peca":{"type":"string","title":"Codigo Peca","description":"Codigo real da peca. A API usa os 4 primeiros caracteres para localizar a familia e depois procura a pasta da peca."},"limite":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limite","default":20},"incluir_caminho_absoluto":{"type":"boolean","title":"Incluir Caminho Absoluto","default":false}},"type":"object","required":["codigo_peca"],"title":"DesenhosSearchRequest"},"DesenhosSearchResponse":{"properties":{"consulta":{"additionalProperties":true,"type":"object","title":"Consulta"},"items":{"items":{"$ref":"#/components/schemas/DesenhoItem"},"type":"array","title":"Items"},"total_retornado":{"type":"integer","title":"Total Retornado"},"total_candidatos_avaliados":{"type":"integer","title":"Total Candidatos Avaliados"},"limite_varredura_atingido":{"type":"boolean","title":"Limite Varredura Atingido"},"fonte_dados":{"$ref":"#/components/schemas/DesenhosDataSource"}},"type":"object","required":["consulta","items","total_retornado","total_candidatos_avaliados","limite_varredura_atingido","fonte_dados"],"title":"DesenhosSearchResponse"},"DigitalizadosPdfDataSource":{"properties":{"tipo":{"type":"string","title":"Tipo"},"pasta":{"type":"string","title":"Pasta"},"pasta_disponivel":{"type":"boolean","title":"Pasta Disponivel"},"conteudo_pdf_lido":{"type":"boolean","title":"Conteudo Pdf Lido"},"observacao":{"type":"string","title":"Observacao"},"links_pdf_disponiveis":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Links Pdf Disponiveis"},"link_expira_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Expira Em"},"modo_busca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modo Busca"},"indice_disponivel":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Indice Disponivel"},"indexado_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Indexado Em"},"index_age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Index Age Hours"},"index_max_age_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Index Max Age Hours"},"total_indexado":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Indexado"},"fts5_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fts5 Enabled"}},"type":"object","required":["tipo","pasta","pasta_disponivel","conteudo_pdf_lido","observacao"],"title":"DigitalizadosPdfDataSource"},"DigitalizadosPdfItem":{"properties":{"nome_arquivo":{"type":"string","title":"Nome Arquivo"},"caminho_relativo":{"type":"string","title":"Caminho Relativo"},"pasta_relativa":{"type":"string","title":"Pasta Relativa"},"tamanho_bytes":{"type":"integer","title":"Tamanho Bytes"},"modificado_em":{"type":"string","title":"Modificado Em"},"score":{"type":"number","title":"Score"},"caminho_absoluto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caminho Absoluto"},"url_abrir_pdf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Abrir Pdf","description":"Link HTTPS temporario para abrir o PDF no navegador. Mostre este link ao usuario quando ele pedir para abrir o arquivo encontrado."},"url_baixar_pdf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Baixar Pdf","description":"Link HTTPS temporario para baixar o PDF."},"link_expira_em":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Expira Em","description":"Data e hora em UTC em que o link temporario deixa de funcionar."}},"type":"object","required":["nome_arquivo","caminho_relativo","pasta_relativa","tamanho_bytes","modificado_em","score"],"title":"DigitalizadosPdfItem"},"DigitalizadosPdfPageText":{"properties":{"pagina":{"type":"integer","title":"Pagina"},"origem":{"type":"string","title":"Origem"},"texto":{"type":"string","title":"Texto"},"chars":{"type":"integer","title":"Chars"},"cache_usado":{"type":"boolean","title":"Cache Usado"}},"type":"object","required":["pagina","origem","texto","chars","cache_usado"],"title":"DigitalizadosPdfPageText"},"DigitalizadosPdfSearchRequest":{"properties":{"termo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Termo","description":"Texto para procurar no nome ou caminho do PDF."},"subpasta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subpasta","description":"Subpasta relativa dentro de Digitalizados."},"limite":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limite","default":20},"ordenar_por":{"type":"string","enum":["relevancia","modificacao"],"title":"Ordenar Por","default":"relevancia"},"incluir_caminho_absoluto":{"type":"boolean","title":"Incluir Caminho Absoluto","default":false}},"type":"object","title":"DigitalizadosPdfSearchRequest"},"DigitalizadosPdfSearchResponse":{"properties":{"consulta":{"additionalProperties":true,"type":"object","title":"Consulta"},"items":{"items":{"$ref":"#/components/schemas/DigitalizadosPdfItem"},"type":"array","title":"Items"},"total_retornado":{"type":"integer","title":"Total Retornado"},"total_candidatos_avaliados":{"type":"integer","title":"Total Candidatos Avaliados"},"limite_varredura_atingido":{"type":"boolean","title":"Limite Varredura Atingido"},"fonte_dados":{"$ref":"#/components/schemas/DigitalizadosPdfDataSource"}},"type":"object","required":["consulta","items","total_retornado","total_candidatos_avaliados","limite_varredura_atingido","fonte_dados"],"title":"DigitalizadosPdfSearchResponse"},"DigitalizadosPdfTextDataSource":{"properties":{"tipo":{"type":"string","title":"Tipo"},"conteudo_pdf_lido":{"type":"boolean","title":"Conteudo Pdf Lido"},"ocr_usado":{"type":"boolean","title":"Ocr Usado"},"texto_pdf_usado":{"type":"boolean","title":"Texto Pdf Usado"},"cache_usado":{"type":"boolean","title":"Cache Usado"},"idioma_ocr":{"type":"string","title":"Idioma Ocr"},"dpi_ocr":{"type":"integer","title":"Dpi Ocr"},"tessdata_disponivel":{"type":"boolean","title":"Tessdata Disponivel"},"cache_path":{"type":"string","title":"Cache Path"},"pdf_modificado_em":{"type":"string","title":"Pdf Modificado Em"},"observacao":{"type":"string","title":"Observacao"}},"type":"object","required":["tipo","conteudo_pdf_lido","ocr_usado","texto_pdf_usado","cache_usado","idioma_ocr","dpi_ocr","tessdata_disponivel","cache_path","pdf_modificado_em","observacao"],"title":"DigitalizadosPdfTextDataSource"},"DigitalizadosPdfTextExtractRequest":{"properties":{"caminho_relativo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caminho Relativo","description":"Caminho relativo retornado pela busca de PDFs."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Token temporario gerado pelo link de abrir PDF."},"url_abrir_pdf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url Abrir Pdf","description":"URL temporaria retornada em url_abrir_pdf."},"pagina_inicial":{"type":"integer","minimum":1.0,"title":"Pagina Inicial","default":1},"max_paginas":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Max Paginas","default":5},"max_chars":{"type":"integer","maximum":60000.0,"minimum":1000.0,"title":"Max Chars","default":16000},"idioma_ocr":{"type":"string","title":"Idioma Ocr","description":"Idioma OCR. Use por, eng ou por+eng.","default":"por"},"dpi_ocr":{"type":"integer","maximum":350.0,"minimum":150.0,"title":"Dpi Ocr","default":220},"forcar_ocr":{"type":"boolean","title":"Forcar Ocr","default":false}},"type":"object","title":"DigitalizadosPdfTextExtractRequest"},"DigitalizadosPdfTextExtractResponse":{"properties":{"caminho_relativo":{"type":"string","title":"Caminho Relativo"},"nome_arquivo":{"type":"string","title":"Nome Arquivo"},"pagina_inicial":{"type":"integer","title":"Pagina Inicial"},"paginas_processadas":{"type":"integer","title":"Paginas Processadas"},"total_paginas_pdf":{"type":"integer","title":"Total Paginas Pdf"},"max_paginas":{"type":"integer","title":"Max Paginas"},"max_chars":{"type":"integer","title":"Max Chars"},"chars_extraidos":{"type":"integer","title":"Chars Extraidos"},"texto_truncado":{"type":"boolean","title":"Texto Truncado"},"texto_extraido":{"type":"string","title":"Texto Extraido"},"paginas":{"items":{"$ref":"#/components/schemas/DigitalizadosPdfPageText"},"type":"array","title":"Paginas"},"avisos":{"items":{"type":"string"},"type":"array","title":"Avisos"},"fonte_dados":{"$ref":"#/components/schemas/DigitalizadosPdfTextDataSource"}},"type":"object","required":["caminho_relativo","nome_arquivo","pagina_inicial","paginas_processadas","total_paginas_pdf","max_paginas","max_chars","chars_extraidos","texto_truncado","texto_extraido","paginas","avisos","fonte_dados"],"title":"DigitalizadosPdfTextExtractResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"app":{"type":"string","title":"App"},"csv_fallback_installed":{"type":"boolean","title":"Csv Fallback Installed"},"sql_top_pecas_enabled":{"type":"boolean","title":"Sql Top Pecas Enabled"},"sql_historico_enabled":{"type":"boolean","title":"Sql Historico Enabled"},"sql_bi_pedidos_fechados_enabled":{"type":"boolean","title":"Sql Bi Pedidos Fechados Enabled"},"sql_bi_orcamentos_emitidos_enabled":{"type":"boolean","title":"Sql Bi Orcamentos Emitidos Enabled"},"analitico_top_pecas_primary_source":{"type":"string","title":"Analitico Top Pecas Primary Source"},"historico_primary_source":{"type":"string","title":"Historico Primary Source"},"bi_pedidos_fechados_primary_source":{"type":"string","title":"Bi Pedidos Fechados Primary Source"},"bi_orcamentos_emitidos_primary_source":{"type":"string","title":"Bi Orcamentos Emitidos Primary Source"},"bi_closed_orders_primary_source":{"type":"string","title":"Bi Closed Orders Primary Source"},"digitalizados_pdf_enabled":{"type":"boolean","title":"Digitalizados Pdf Enabled"},"digitalizados_pdf_primary_source":{"type":"string","title":"Digitalizados Pdf Primary Source"},"digitalizados_pdf_ocr_enabled":{"type":"boolean","title":"Digitalizados Pdf Ocr Enabled"},"digitalizados_pdf_ocr_primary_source":{"type":"string","title":"Digitalizados Pdf Ocr Primary Source"},"desenhos_enabled":{"type":"boolean","title":"Desenhos Enabled"},"desenhos_primary_source":{"type":"string","title":"Desenhos Primary Source"},"bi_closed_orders_csv_fallback_installed":{"type":"boolean","title":"Bi Closed Orders Csv Fallback Installed"},"bi_closed_orders_drive_fallback_installed":{"type":"boolean","title":"Bi Closed Orders Drive Fallback Installed"},"bi_closed_orders_fallback_active":{"type":"boolean","title":"Bi Closed Orders Fallback Active"},"historico_snapshot_refreshed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Historico Snapshot Refreshed At"},"bi_pedidos_fechados_snapshot_refreshed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Refreshed At"},"bi_pedidos_fechados_snapshot_age_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Age Minutes"},"bi_pedidos_fechados_snapshot_sla_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Sla Minutes"},"bi_pedidos_fechados_snapshot_covers_today":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Covers Today"},"bi_pedidos_fechados_snapshot_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Status"},"bi_pedidos_fechados_snapshot_alert":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Pedidos Fechados Snapshot Alert"},"bi_orcamentos_emitidos_snapshot_refreshed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Refreshed At"},"bi_orcamentos_emitidos_snapshot_age_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Age Minutes"},"bi_orcamentos_emitidos_snapshot_sla_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Sla Minutes"},"bi_orcamentos_emitidos_snapshot_covers_today":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Covers Today"},"bi_orcamentos_emitidos_snapshot_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Status"},"bi_orcamentos_emitidos_snapshot_alert":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bi Orcamentos Emitidos Snapshot Alert"},"historico_cache_origin":{"type":"string","title":"Historico Cache Origin","default":"cold"},"historico_disk_cache_enabled":{"type":"boolean","title":"Historico Disk Cache Enabled","default":false},"historico_cadastro_disk_cache_enabled":{"type":"boolean","title":"Historico Cadastro Disk Cache Enabled","default":false},"historico_fetch_batch_size":{"type":"integer","title":"Historico Fetch Batch Size","default":0},"historico_cache_exists":{"type":"boolean","title":"Historico Cache Exists","default":false},"historico_cache_size_bytes":{"type":"integer","title":"Historico Cache Size Bytes","default":0},"historico_cache_last_write_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Historico Cache Last Write At"},"historico_cache_row_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Row Count"},"historico_cache_last_build_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Historico Cache Last Build At"},"historico_cache_last_build_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Historico Cache Last Build Mode"},"historico_cache_last_build_total_elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Last Build Total Elapsed Ms"},"historico_cache_sql_fetch_elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Sql Fetch Elapsed Ms"},"historico_cache_tool_prepare_elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Tool Prepare Elapsed Ms"},"historico_cache_save_elapsed_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Save Elapsed Ms"},"historico_cache_source_frame_memory_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Source Frame Memory Bytes"},"historico_cache_prepared_frame_memory_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Historico Cache Prepared Frame Memory Bytes"},"housekeeping_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Housekeeping Status"},"housekeeping_last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Housekeeping Last Run At"},"housekeeping_deleted_files":{"type":"integer","title":"Housekeeping Deleted Files","default":0},"housekeeping_freed_bytes":{"type":"integer","title":"Housekeeping Freed Bytes","default":0}},"type":"object","required":["status","app","csv_fallback_installed","sql_top_pecas_enabled","sql_historico_enabled","sql_bi_pedidos_fechados_enabled","sql_bi_orcamentos_emitidos_enabled","analitico_top_pecas_primary_source","historico_primary_source","bi_pedidos_fechados_primary_source","bi_orcamentos_emitidos_primary_source","bi_closed_orders_primary_source","digitalizados_pdf_enabled","digitalizados_pdf_primary_source","digitalizados_pdf_ocr_enabled","digitalizados_pdf_ocr_primary_source","desenhos_enabled","desenhos_primary_source","bi_closed_orders_csv_fallback_installed","bi_closed_orders_drive_fallback_installed","bi_closed_orders_fallback_active"],"title":"HealthResponse"},"IntelligentQueryRequest":{"properties":{"descricao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao","description":"Descrição técnica ou comercial da peça."},"descricao_cientifica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao Cientifica","description":"Descrição científica ou complementar da peça no cadastro adicional do produto."},"codigo_cliente_peca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Cliente Peca","description":"Código da peça no cliente, quando existir no cadastro adicional do produto."},"fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fabricante","description":"Fabricante informado no cadastro adicional do produto."},"codigo_fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Fabricante","description":"Código do fabricante informado no cadastro adicional do produto."},"modelos":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelos","description":"Modelos de máquina ou aplicação ligados à peça."},"medidas_texto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medidas Texto","description":"Medidas em texto livre, por exemplo 42x16x210."},"diametro_externo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Externo","description":"Diâmetro externo da peça, quando vier separado no orçamento."},"diametro_interno":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Interno","description":"Diâmetro interno da peça, quando vier separado no orçamento."},"largura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura","description":"Largura da peça."},"comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Comprimento","description":"Comprimento da peça."},"espessura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Espessura","description":"Espessura da peça."},"largura_total":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura Total","description":"Largura total da peça."},"diametro_rolo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Rolo","description":"Diâmetro do rolo, quando houver."},"diametro_furo_guia":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Guia","description":"Diâmetro do furo guia, quando houver."},"diametro_furo_fixacao":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Fixacao","description":"Diâmetro do furo de fixação, quando houver."},"alojamento_flange":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Alojamento Flange","description":"Alojamento ou flange, quando houver."},"centro_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Centro Furos","description":"Centro dos furos, quando houver."},"quantidade_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Quantidade Furos","description":"Quantidade de furos, quando houver."},"larg_comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Larg Comprimento","description":"Campo combinado de largura ou comprimento, quando vier nesse formato."},"dureza":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Dureza","description":"Dureza da peça, por exemplo 75 SHA."},"cor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cor","description":"Cor da peça, quando informada."},"especificacao_tecnica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Especificacao Tecnica","description":"Especificação técnica livre, como dureza, densidade, norma ou observação técnica."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"limite":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limite","default":10},"tolerancia_absoluta":{"type":"number","minimum":0.0,"title":"Tolerancia Absoluta","default":2.0},"tolerancia_relativa":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Tolerancia Relativa","default":0.08}},"type":"object","title":"IntelligentQueryRequest"},"OpportunityQualificationRequest":{"properties":{"descricao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao","description":"Descrição técnica ou comercial da peça."},"descricao_cientifica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao Cientifica","description":"Descrição científica ou complementar da peça no cadastro adicional do produto."},"codigo_cliente_peca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Cliente Peca","description":"Código da peça no cliente, quando existir no cadastro adicional do produto."},"fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fabricante","description":"Fabricante informado no cadastro adicional do produto."},"codigo_fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Fabricante","description":"Código do fabricante informado no cadastro adicional do produto."},"modelos":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelos","description":"Modelos de máquina ou aplicação ligados à peça."},"medidas_texto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medidas Texto","description":"Medidas em texto livre, por exemplo 42x16x210."},"diametro_externo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Externo","description":"Diâmetro externo da peça, quando vier separado no orçamento."},"diametro_interno":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Interno","description":"Diâmetro interno da peça, quando vier separado no orçamento."},"largura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura","description":"Largura da peça."},"comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Comprimento","description":"Comprimento da peça."},"espessura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Espessura","description":"Espessura da peça."},"largura_total":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura Total","description":"Largura total da peça."},"diametro_rolo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Rolo","description":"Diâmetro do rolo, quando houver."},"diametro_furo_guia":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Guia","description":"Diâmetro do furo guia, quando houver."},"diametro_furo_fixacao":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Fixacao","description":"Diâmetro do furo de fixação, quando houver."},"alojamento_flange":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Alojamento Flange","description":"Alojamento ou flange, quando houver."},"centro_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Centro Furos","description":"Centro dos furos, quando houver."},"quantidade_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Quantidade Furos","description":"Quantidade de furos, quando houver."},"larg_comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Larg Comprimento","description":"Campo combinado de largura ou comprimento, quando vier nesse formato."},"dureza":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Dureza","description":"Dureza da peça, por exemplo 75 SHA."},"cor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cor","description":"Cor da peça, quando informada."},"especificacao_tecnica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Especificacao Tecnica","description":"Especificação técnica livre, como dureza, densidade, norma ou observação técnica."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"aplicacao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aplicacao","description":"Aplicacao ou funcao da peca no processo/equipamento."},"material_informado":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Material Informado","description":"Material informado pelo cliente, quando aparecer em email, conversa ou desenho."},"contexto_cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contexto Cliente","description":"Texto relevante vindo de email, conversa ou pedido do cliente."},"texto_desenho":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Texto Desenho","description":"Texto lido no desenho tecnico ou extraido por OCR, quando houver. OCR transforma imagem em texto."},"quantidade":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Quantidade","description":"Quantidade estimada, lote ou consumo."},"tipo_relacao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tipo Relacao","description":"Usuario final, revenda ou equivalente. Tambem aceita relacao_cliente."},"natureza_operacao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Natureza Operacao","description":"Reposicao, manutencao, desenvolvimento, etc. Tambem aceita natureza_oportunidade."},"dor_principal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dor Principal","description":"Problema atual ou objetivo da troca."},"urgencia":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Urgencia","description":"Urgencia, prazo ou timing esperado."},"desenho_disponivel":{"type":"boolean","title":"Desenho Disponivel","description":"Se ha desenho tecnico disponivel.","default":false},"amostra_disponivel":{"type":"boolean","title":"Amostra Disponivel","description":"Se ha amostra fisica disponivel.","default":false},"codigo_referencia":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Referencia","description":"Codigo interno, do cliente ou referencia historica. Tambem aceita codigo_peca."},"cnpj_cpf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cnpj Cpf","description":"CNPJ/CPF informado pelo usuario. Tambem aceita cnpj."},"condicao_pagamento_informada":{"type":"boolean","title":"Condicao Pagamento Informada","description":"Se a condicao de pagamento ja foi informada. Tambem aceita pagamento_definido.","default":false},"frete_informado":{"type":"boolean","title":"Frete Informado","description":"Se frete/logistica ja foi informado. Tambem aceita frete_definido.","default":false},"proximo_passo_claro":{"type":"boolean","title":"Proximo Passo Claro","description":"Se ha proximo passo claro com o cliente.","default":false},"foco_exclusivo_preco":{"type":"boolean","title":"Foco Exclusivo Preco","description":"Marcar true quando o caso for focado so em menor preco.","default":false},"benchmark_puro":{"type":"boolean","title":"Benchmark Puro","description":"Marcar true quando o caso for benchmark puro.","default":false},"limite_historico":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Limite Historico","default":5},"tolerancia_absoluta":{"type":"number","minimum":0.0,"title":"Tolerancia Absoluta","default":2.0},"tolerancia_relativa":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Tolerancia Relativa","default":0.08}},"type":"object","title":"OpportunityQualificationRequest"},"PriceComparisonRequest":{"properties":{"descricao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao","description":"Descrição técnica ou comercial da peça."},"descricao_cientifica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao Cientifica","description":"Descrição científica ou complementar da peça no cadastro adicional do produto."},"codigo_cliente_peca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Cliente Peca","description":"Código da peça no cliente, quando existir no cadastro adicional do produto."},"fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fabricante","description":"Fabricante informado no cadastro adicional do produto."},"codigo_fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Fabricante","description":"Código do fabricante informado no cadastro adicional do produto."},"modelos":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelos","description":"Modelos de máquina ou aplicação ligados à peça."},"medidas_texto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medidas Texto","description":"Medidas em texto livre, por exemplo 42x16x210."},"diametro_externo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Externo","description":"Diâmetro externo da peça, quando vier separado no orçamento."},"diametro_interno":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Interno","description":"Diâmetro interno da peça, quando vier separado no orçamento."},"largura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura","description":"Largura da peça."},"comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Comprimento","description":"Comprimento da peça."},"espessura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Espessura","description":"Espessura da peça."},"largura_total":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura Total","description":"Largura total da peça."},"diametro_rolo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Rolo","description":"Diâmetro do rolo, quando houver."},"diametro_furo_guia":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Guia","description":"Diâmetro do furo guia, quando houver."},"diametro_furo_fixacao":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Fixacao","description":"Diâmetro do furo de fixação, quando houver."},"alojamento_flange":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Alojamento Flange","description":"Alojamento ou flange, quando houver."},"centro_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Centro Furos","description":"Centro dos furos, quando houver."},"quantidade_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Quantidade Furos","description":"Quantidade de furos, quando houver."},"larg_comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Larg Comprimento","description":"Campo combinado de largura ou comprimento, quando vier nesse formato."},"dureza":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Dureza","description":"Dureza da peça, por exemplo 75 SHA."},"cor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cor","description":"Cor da peça, quando informada."},"especificacao_tecnica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Especificacao Tecnica","description":"Especificação técnica livre, como dureza, densidade, norma ou observação técnica."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"limite":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limite","default":10},"tolerancia_absoluta":{"type":"number","minimum":0.0,"title":"Tolerancia Absoluta","default":2.0},"tolerancia_relativa":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Tolerancia Relativa","default":0.08}},"type":"object","title":"PriceComparisonRequest"},"ReadyCheck":{"properties":{"status":{"type":"string","enum":["ok","disabled","error","stale"],"title":"Status"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["status","detail"],"title":"ReadyCheck"},"ReadyResponse":{"properties":{"status":{"type":"string","enum":["ok","error"],"title":"Status"},"app":{"type":"string","title":"App"},"checks":{"additionalProperties":{"$ref":"#/components/schemas/ReadyCheck"},"type":"object","title":"Checks"}},"type":"object","required":["status","app","checks"],"title":"ReadyResponse"},"SimilarPiecesRequest":{"properties":{"descricao":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao","description":"Descrição técnica ou comercial da peça."},"descricao_cientifica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Descricao Cientifica","description":"Descrição científica ou complementar da peça no cadastro adicional do produto."},"codigo_cliente_peca":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Cliente Peca","description":"Código da peça no cliente, quando existir no cadastro adicional do produto."},"fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fabricante","description":"Fabricante informado no cadastro adicional do produto."},"codigo_fabricante":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Codigo Fabricante","description":"Código do fabricante informado no cadastro adicional do produto."},"modelos":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelos","description":"Modelos de máquina ou aplicação ligados à peça."},"medidas_texto":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medidas Texto","description":"Medidas em texto livre, por exemplo 42x16x210."},"diametro_externo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Externo","description":"Diâmetro externo da peça, quando vier separado no orçamento."},"diametro_interno":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Interno","description":"Diâmetro interno da peça, quando vier separado no orçamento."},"largura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura","description":"Largura da peça."},"comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Comprimento","description":"Comprimento da peça."},"espessura":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Espessura","description":"Espessura da peça."},"largura_total":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Largura Total","description":"Largura total da peça."},"diametro_rolo":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Rolo","description":"Diâmetro do rolo, quando houver."},"diametro_furo_guia":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Guia","description":"Diâmetro do furo guia, quando houver."},"diametro_furo_fixacao":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Diametro Furo Fixacao","description":"Diâmetro do furo de fixação, quando houver."},"alojamento_flange":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Alojamento Flange","description":"Alojamento ou flange, quando houver."},"centro_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Centro Furos","description":"Centro dos furos, quando houver."},"quantidade_furos":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Quantidade Furos","description":"Quantidade de furos, quando houver."},"larg_comprimento":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Larg Comprimento","description":"Campo combinado de largura ou comprimento, quando vier nesse formato."},"dureza":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Dureza","description":"Dureza da peça, por exemplo 75 SHA."},"cor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cor","description":"Cor da peça, quando informada."},"especificacao_tecnica":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Especificacao Tecnica","description":"Especificação técnica livre, como dureza, densidade, norma ou observação técnica."},"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"limite":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limite","default":10},"tolerancia_absoluta":{"type":"number","minimum":0.0,"title":"Tolerancia Absoluta","default":2.0},"tolerancia_relativa":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Tolerancia Relativa","default":0.08}},"type":"object","title":"SimilarPiecesRequest"},"TopPiecesRequest":{"properties":{"cliente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cliente","description":"Nome do cliente completo ou parcial."},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year","description":"Ano com 4 dígitos, por exemplo 2026."},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date","description":"Data inicial em YYYY-MM-DD."},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date","description":"Data final em YYYY-MM-DD."},"relative_period":{"anyOf":[{"type":"string","enum":["current_year","previous_year","current_month","last_12_months","last_24_months","last_2_years","last_36_months","last_3_years"]},{"type":"null"}],"title":"Relative Period","description":"Atalho de período. Exemplos: current_year, last_12_months, last_3_years."},"top_n":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top N","default":10},"status_scope":{"type":"string","enum":["realized","closed","all"],"title":"Status Scope","description":"realized=faturado; closed=faturado+aprovado; all=todos os status.","default":"realized"},"metric":{"type":"string","enum":["quantidade","valor_fechado","valor_orcado","ocorrencias"],"title":"Metric","description":"Métrica de ranking.","default":"quantidade"}},"type":"object","title":"TopPiecesRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"PuronFitApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Chave da Action do PuronFit com escopos por rota."}}}}