{"openapi":"3.1.0","info":{"title":"API do Sistema Mapogos","version":"1.0.0","description":"Integração segura com o Mapogos. Desenvolvida por SIX Informática. Documentação: https://apimapogos.sixinformatica.com/docs","contact":{"name":"SIX Informática"}},"servers":[{"url":"https://apimapogos.sixinformatica.com/v1"}],"security":[{"bearer":[]}],"tags":[{"name":"Utilitários"},{"name":"Operação"},{"name":"Financeiro"},{"name":"Frota"},{"name":"Oficina"},{"name":"Estoque"},{"name":"Atendimento"},{"name":"Arquivos"},{"name":"Relatórios"},{"name":"Administração"}],"paths":{"/status":{"get":{"tags":["Utilitários"],"summary":"Saúde da API","security":[],"responses":{"200":{"description":"Online"}}}},"/me":{"get":{"tags":["Utilitários"],"summary":"Dados e permissões da chave","responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modulos":{"get":{"tags":["Utilitários"],"summary":"Módulos acessíveis por esta chave","responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/carteiras":{"get":{"tags":["Relatórios"],"summary":"Carteiras visíveis","responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/dashboard":{"get":{"tags":["Relatórios"],"summary":"Indicadores gerais","parameters":[{"name":"carteira","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/relatorios/financeiro":{"get":{"tags":["Relatórios"],"summary":"Relatório financeiro","parameters":[{"name":"de","in":"query","schema":{"type":"string","format":"date"}},{"name":"ate","in":"query","schema":{"type":"string","format":"date"}},{"name":"carteira","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/relatorios/frota":{"get":{"tags":["Relatórios"],"summary":"Relatório frota","parameters":[{"name":"carteira","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/relatorios/dre":{"get":{"tags":["Relatórios"],"summary":"Relatório dre","parameters":[{"name":"de","in":"query","schema":{"type":"string","format":"date"}},{"name":"ate","in":"query","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/relatorios/fluxo_caixa":{"get":{"tags":["Relatórios"],"summary":"Relatório fluxo_caixa","parameters":[{"name":"dias","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/relatorios/roi_veiculos":{"get":{"tags":["Relatórios"],"summary":"Relatório roi_veiculos","parameters":[{"name":"de","in":"query","schema":{"type":"string","format":"date"}},{"name":"ate","in":"query","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/usuarios":{"get":{"tags":["Administração"],"summary":"Listar Usuários","description":"Usuários do painel. Senhas e hashes nunca são expostos. Somente leitura pela API (criar usuário por chave de API permitiria escalada de privilégio).","operationId":"listar_usuarios","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, created_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"role","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Usuarios"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/usuarios/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Usuários","operationId":"detalhar_usuarios","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: cargos"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Usuarios"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/usuarios/{id}/cargos":{"get":{"tags":["Administração"],"summary":"Usuários → Cargos & Acessos","operationId":"rel_usuarios_cargos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/usuarios/exportar":{"get":{"tags":["Administração"],"summary":"Exportar Usuários (cursor)","operationId":"exportar_usuarios","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"role","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cargos":{"get":{"tags":["Administração"],"summary":"Listar Cargos & Acessos","description":"Cargos (perfis) do painel e as permissões de cada um. Somente leitura.","operationId":"listar_cargos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Cargos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cargos/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Cargos & Acessos","operationId":"detalhar_cargos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: permissoes, usuarios"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Cargos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cargos/{id}/permissoes":{"get":{"tags":["Administração"],"summary":"Cargos & Acessos → Permissões do painel","operationId":"rel_cargos_permissoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cargos/{id}/usuarios":{"get":{"tags":["Administração"],"summary":"Cargos & Acessos → Usuários","operationId":"rel_cargos_usuarios","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/permissoes_painel":{"get":{"tags":["Administração"],"summary":"Listar Permissões do painel","description":"Lista de permissões existentes no painel (perm_key).","operationId":"listar_permissoes_painel","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, perm_key (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"perm_key","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PermissoesPainel"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/permissoes_painel/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Permissões do painel","operationId":"detalhar_permissoes_painel","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PermissoesPainel"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modelos_contrato":{"get":{"tags":["Administração"],"summary":"Listar Modelos de Contrato","description":"Modelos (templates HTML) usados para gerar contratos de aluguel e venda, com histórico de versões. Somente leitura (texto jurídico).","operationId":"listar_modelos_contrato","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, updated_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/ModelosContrato"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modelos_contrato/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Modelos de Contrato","operationId":"detalhar_modelos_contrato","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: versoes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/ModelosContrato"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modelos_contrato/{id}/versoes":{"get":{"tags":["Administração"],"summary":"Modelos de Contrato → Versões de modelo de contrato","operationId":"rel_modelos_contrato_versoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modelos_contrato_versoes":{"get":{"tags":["Administração"],"summary":"Listar Versões de modelo de contrato","description":"Histórico de alterações dos modelos de contrato.","operationId":"listar_modelos_contrato_versoes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, changed_at (prefixo - = desc)"},{"name":"template_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/ModelosContratoVersoes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/modelos_contrato_versoes/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Versões de modelo de contrato","operationId":"detalhar_modelos_contrato_versoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/ModelosContratoVersoes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/notificacoes":{"get":{"tags":["Administração"],"summary":"Listar Notificações do painel","description":"Notificações internas exibidas no sino do painel (pagamentos recebidos, OS, alertas).","operationId":"listar_notificacoes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"audience","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Notificacoes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/notificacoes/{id}":{"get":{"tags":["Administração"],"summary":"Detalhar Notificações do painel","operationId":"detalhar_notificacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Notificacoes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/notificacoes/exportar":{"get":{"tags":["Administração"],"summary":"Exportar Notificações do painel (cursor)","operationId":"exportar_notificacoes","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"audience","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes":{"get":{"tags":["Operação"],"summary":"Listar Clientes","description":"Locatários e compradores: identificação, CNH, contato e endereço.","operationId":"listar_clientes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, created_at, cnh_validade (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"city","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"uf","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"cnh_categoria","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"log_origem","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Clientes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Operação"],"summary":"Cadastrar cliente","operationId":"post_clientes_c9e8b","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"Nome completo / razão social","type":"string"},"cpf_cnpj":{"description":"CPF ou CNPJ válido (com ou sem máscara; gravado só com dígitos). Duplicado → 409","type":"string"},"email":{"description":"E-mail válido","type":"string"},"phone":{"description":"DDD + número (gravado só com dígitos)","type":"string"},"telefones_extras":{"description":"Lista de telefones auxiliares (substitui os atuais)","type":"array"},"cep":{"description":"8 dígitos","type":"string"},"street":{"description":"street","type":"string"},"number":{"description":"number","type":"string"},"complement":{"description":"complement","type":"string"},"neighborhood":{"description":"neighborhood","type":"string"},"city":{"description":"city","type":"string"},"uf":{"description":"Sigla do estado","type":"string"},"cnh_registro":{"description":"cnh_registro","type":"string"},"cnh_categoria":{"description":"Ex.: AB","type":"string"},"cnh_validade":{"description":"cnh_validade","type":"string"},"cnh_emissao":{"description":"cnh_emissao","type":"string"},"cnh_primeira_habilitacao":{"description":"cnh_primeira_habilitacao","type":"string"},"rg":{"description":"rg","type":"string"},"birth_date":{"description":"birth_date","type":"string"},"civil_status":{"description":"civil_status","type":"string"},"profession":{"description":"profession","type":"string"},"reference_point":{"description":"reference_point","type":"string"},"neighbors":{"description":"Até 3 vizinhos [{\"name\":\"…\",\"phone\":\"…\"}]","type":"array"},"witness_neighbors":{"description":"Até 3 testemunhas [{\"name\":\"…\",\"phone\":\"…\"}]","type":"array"}},"required":["name"]},"example":{"name":"Maria Fernanda Souza","cpf_cnpj":"529.982.247-25","phone":"(91) 99876-5432","email":"maria@exemplo.com.br","cep":"66000-000","city":"Belém","uf":"PA"}}}}}},"/clientes/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Clientes","operationId":"detalhar_clientes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: locacoes, pagamentos, acordos, multas, documentos"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Clientes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Operação"],"summary":"Atualizar cliente (parcial)","operationId":"patch_clientes_24562","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"Nome completo / razão social","type":"string"},"cpf_cnpj":{"description":"CPF ou CNPJ válido (com ou sem máscara; gravado só com dígitos). Duplicado → 409","type":"string"},"email":{"description":"E-mail válido","type":"string"},"phone":{"description":"DDD + número (gravado só com dígitos)","type":"string"},"telefones_extras":{"description":"Lista de telefones auxiliares (substitui os atuais)","type":"array"},"cep":{"description":"8 dígitos","type":"string"},"street":{"description":"street","type":"string"},"number":{"description":"number","type":"string"},"complement":{"description":"complement","type":"string"},"neighborhood":{"description":"neighborhood","type":"string"},"city":{"description":"city","type":"string"},"uf":{"description":"Sigla do estado","type":"string"},"cnh_registro":{"description":"cnh_registro","type":"string"},"cnh_categoria":{"description":"Ex.: AB","type":"string"},"cnh_validade":{"description":"cnh_validade","type":"string"},"cnh_emissao":{"description":"cnh_emissao","type":"string"},"cnh_primeira_habilitacao":{"description":"cnh_primeira_habilitacao","type":"string"},"rg":{"description":"rg","type":"string"},"birth_date":{"description":"birth_date","type":"string"},"civil_status":{"description":"civil_status","type":"string"},"profession":{"description":"profession","type":"string"},"reference_point":{"description":"reference_point","type":"string"},"neighbors":{"description":"Até 3 vizinhos [{\"name\":\"…\",\"phone\":\"…\"}]","type":"array"},"witness_neighbors":{"description":"Até 3 testemunhas [{\"name\":\"…\",\"phone\":\"…\"}]","type":"array"}}},"example":{"phone":"(91) 98888-7777","city":"Ananindeua"}}}}}},"/clientes/{id}/locacoes":{"get":{"tags":["Operação"],"summary":"Clientes → Locações","operationId":"rel_clientes_locacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes/{id}/pagamentos":{"get":{"tags":["Operação"],"summary":"Clientes → Pagamentos","operationId":"rel_clientes_pagamentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes/{id}/acordos":{"get":{"tags":["Operação"],"summary":"Clientes → Acordos","operationId":"rel_clientes_acordos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes/{id}/multas":{"get":{"tags":["Operação"],"summary":"Clientes → Multas","operationId":"rel_clientes_multas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes/{id}/documentos":{"get":{"tags":["Operação"],"summary":"Clientes → Documentos do cliente","operationId":"rel_clientes_documentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes/exportar":{"get":{"tags":["Operação"],"summary":"Exportar Clientes (cursor)","operationId":"exportar_clientes","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"city","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"uf","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"cnh_categoria","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"log_origem","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes_documentos":{"get":{"tags":["Operação"],"summary":"Listar Documentos do cliente","description":"Metadados de documentos anexados ao cliente (CNH, comprovantes).","operationId":"listar_clientes_documentos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"doc_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"match_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/ClientesDocumentos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/clientes_documentos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Documentos do cliente","operationId":"detalhar_clientes_documentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/ClientesDocumentos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes":{"get":{"tags":["Operação"],"summary":"Listar Locações","description":"Contratos de locação (aluguel normal/particular) e de venda, com ciclo de cobrança e situação.","operationId":"listar_locacoes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, start_datetime, expected_return, created_at, next_charge_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"contract_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"payment_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fleet_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_step","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Locacoes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Locações","operationId":"detalhar_locacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: cliente, veiculo, pagamentos, acordos, multas, vistorias, encerramento, contatos, contratos, cobrancas_pix"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Locacoes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/cliente":{"get":{"tags":["Operação"],"summary":"Locações → Clientes","operationId":"rel_locacoes_cliente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/veiculo":{"get":{"tags":["Operação"],"summary":"Locações → Veículos","operationId":"rel_locacoes_veiculo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/pagamentos":{"get":{"tags":["Operação"],"summary":"Locações → Pagamentos","operationId":"rel_locacoes_pagamentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/acordos":{"get":{"tags":["Operação"],"summary":"Locações → Acordos","operationId":"rel_locacoes_acordos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/multas":{"get":{"tags":["Operação"],"summary":"Locações → Multas","operationId":"rel_locacoes_multas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/vistorias":{"get":{"tags":["Operação"],"summary":"Locações → Vistorias","operationId":"rel_locacoes_vistorias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/encerramento":{"get":{"tags":["Operação"],"summary":"Locações → Encerramento & Pós-Encerramento","operationId":"rel_locacoes_encerramento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/contatos":{"get":{"tags":["Operação"],"summary":"Locações → Contatos de referência da locação","operationId":"rel_locacoes_contatos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/contratos":{"get":{"tags":["Operação"],"summary":"Locações → Documentos de contrato","operationId":"rel_locacoes_contratos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/{id}/cobrancas_pix":{"get":{"tags":["Operação"],"summary":"Locações → Cobranças PIX","operationId":"rel_locacoes_cobrancas_pix","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes/exportar":{"get":{"tags":["Operação"],"summary":"Exportar Locações (cursor)","operationId":"exportar_locacoes","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"contract_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"payment_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fleet_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_step","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes_contatos":{"get":{"tags":["Operação"],"summary":"Listar Contatos de referência da locação","description":"Familiares/referências informados no contrato.","operationId":"listar_locacoes_contatos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, position (prefixo - = desc)"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/LocacoesContatos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes_contatos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Contatos de referência da locação","operationId":"detalhar_locacoes_contatos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/LocacoesContatos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes_contratos":{"get":{"tags":["Operação"],"summary":"Listar Documentos de contrato","description":"Contratos gerados para assinatura (situação e datas). O link/token de assinatura e a assinatura em si nunca são expostos.","operationId":"listar_locacoes_contratos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, signed_at (prefixo - = desc)"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"contract_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/LocacoesContratos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/locacoes_contratos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Documentos de contrato","operationId":"detalhar_locacoes_contratos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/LocacoesContratos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento":{"get":{"tags":["Operação"],"summary":"Listar Encerramento & Pós-Encerramento","description":"Encerramento do contrato (KM, avarias, caução, multas, saldo financeiro) e o acompanhamento de pendências após o encerramento. Pela API: leitura completa e atualização do acompanhamento pós-encerramento; o encerramento em si é feito no painel.","operationId":"listar_pos_encerramento","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, closed_at, updated_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"caucao_retencao_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"caucao_destino","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PosEncerramento"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Encerramento & Pós-Encerramento","operationId":"detalhar_pos_encerramento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: locacao, acompanhamento, eventos, arquivos"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PosEncerramento"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/{id}/locacao":{"get":{"tags":["Operação"],"summary":"Encerramento & Pós-Encerramento → Locações","operationId":"rel_pos_encerramento_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/{id}/acompanhamento":{"get":{"tags":["Operação"],"summary":"Encerramento & Pós-Encerramento → Pendências pós-encerramento","operationId":"rel_pos_encerramento_acompanhamento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/{id}/eventos":{"get":{"tags":["Operação"],"summary":"Encerramento & Pós-Encerramento → Histórico do encerramento","operationId":"rel_pos_encerramento_eventos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/{id}/arquivos":{"get":{"tags":["Operação"],"summary":"Encerramento & Pós-Encerramento → Arquivos do encerramento","operationId":"rel_pos_encerramento_arquivos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento/exportar":{"get":{"tags":["Operação"],"summary":"Exportar Encerramento & Pós-Encerramento (cursor)","operationId":"exportar_pos_encerramento","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"caucao_retencao_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"caucao_destino","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento_acompanhamento":{"get":{"tags":["Operação"],"summary":"Listar Pendências pós-encerramento","description":"Acompanhamento após o encerramento: checklist, pendências e devolução da caução.","operationId":"listar_pos_encerramento_acompanhamento","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, updated_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"responsavel_user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PosEncerramentoAcompanhamento"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento_acompanhamento/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Pendências pós-encerramento","operationId":"detalhar_pos_encerramento_acompanhamento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PosEncerramentoAcompanhamento"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Operação"],"summary":"Atualizar pendências / caução (mesma regra da tela Pós-Encerramento)","operationId":"patch_pos_encerramento_acompanhamento_40e7b","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"description":"status","type":"string"},"responsavel_user_id":{"description":"responsavel_user_id","type":"integer"},"checklist_json":{"description":"checklist_json","type":"object"},"pendencias":{"description":"pendencias","type":"string"},"caucao_forma":{"description":"caucao_forma","type":"string"},"caucao_data_prevista":{"description":"caucao_data_prevista","type":"string"},"caucao_resp_user_id":{"description":"caucao_resp_user_id","type":"integer"},"caucao_devolvida":{"description":"caucao_devolvida","type":"boolean"},"notes":{"description":"notes","type":"string"}}},"example":{"status":"aguardando_devolucao_caucao","caucao_forma":"PIX","caucao_data_prevista":"2026-11-05"}}}}}},"/pos_encerramento_eventos":{"get":{"tags":["Operação"],"summary":"Listar Histórico do encerramento","description":"Linha do tempo do encerramento (quem fez o quê).","operationId":"listar_pos_encerramento_eventos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"closure_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"event_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PosEncerramentoEventos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento_eventos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Histórico do encerramento","operationId":"detalhar_pos_encerramento_eventos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PosEncerramentoEventos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento_arquivos":{"get":{"tags":["Operação"],"summary":"Listar Arquivos do encerramento","description":"Metadados das fotos/arquivos anexados ao encerramento.","operationId":"listar_pos_encerramento_arquivos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, uploaded_at (prefixo - = desc)"},{"name":"closure_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PosEncerramentoArquivos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pos_encerramento_arquivos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Arquivos do encerramento","operationId":"detalhar_pos_encerramento_arquivos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PosEncerramentoArquivos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias":{"get":{"tags":["Operação"],"summary":"Listar Vistorias","description":"Vistorias 360° de entrada/saída: KM, avarias por área, fotos e análise de IA.","operationId":"listar_vistorias","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, updated_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"has_avarias","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Vistorias"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Operação"],"summary":"Abrir vistoria (dados e avarias; fotos pelo painel)","operationId":"post_vistorias_ed111","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"rental_id":{"description":"rental_id","type":"integer"},"km_atual":{"description":"km_atual","type":"integer"},"km_ultima_troca_oleo":{"description":"km_ultima_troca_oleo","type":"integer"},"inspector_name":{"description":"inspector_name","type":"string"},"observacoes":{"description":"observacoes","type":"string"},"status":{"description":"status","type":"string"},"avarias":{"description":"[{area, area_label, descricao}] — substitui a lista atual","type":"array"}},"required":["vehicle_id","km_atual"]},"example":{"vehicle_id":512,"km_atual":45310,"observacoes":"Entrega ao cliente","avarias":[{"area":"para_choque_dianteiro","area_label":"Para-choque dianteiro","descricao":"Risco leve"}]}}}}}},"/vistorias/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Vistorias","operationId":"detalhar_vistorias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: avarias, fotos, veiculo, locacao"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Vistorias"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Operação"],"summary":"Atualizar vistoria / validar","operationId":"patch_vistorias_cf3f9","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"rental_id":{"description":"rental_id","type":"integer"},"km_atual":{"description":"km_atual","type":"integer"},"km_ultima_troca_oleo":{"description":"km_ultima_troca_oleo","type":"integer"},"inspector_name":{"description":"inspector_name","type":"string"},"observacoes":{"description":"observacoes","type":"string"},"status":{"description":"status","type":"string"},"avarias":{"description":"[{area, area_label, descricao}] — substitui a lista atual","type":"array"}}},"example":{"status":"validada"}}}}}},"/vistorias/{id}/avarias":{"get":{"tags":["Operação"],"summary":"Vistorias → Avarias da vistoria","operationId":"rel_vistorias_avarias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias/{id}/fotos":{"get":{"tags":["Operação"],"summary":"Vistorias → Fotos da vistoria","operationId":"rel_vistorias_fotos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias/{id}/veiculo":{"get":{"tags":["Operação"],"summary":"Vistorias → Veículos","operationId":"rel_vistorias_veiculo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias/{id}/locacao":{"get":{"tags":["Operação"],"summary":"Vistorias → Locações","operationId":"rel_vistorias_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias/exportar":{"get":{"tags":["Operação"],"summary":"Exportar Vistorias (cursor)","operationId":"exportar_vistorias","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"has_avarias","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_avarias":{"get":{"tags":["Operação"],"summary":"Listar Avarias da vistoria","description":"Áreas do veículo verificadas e avarias encontradas.","operationId":"listar_vistorias_avarias","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id (prefixo - = desc)"},{"name":"vistoria_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"tem_avaria","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/VistoriasAvarias"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_avarias/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Avarias da vistoria","operationId":"detalhar_vistorias_avarias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/VistoriasAvarias"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_fotos":{"get":{"tags":["Operação"],"summary":"Listar Fotos da vistoria","description":"Metadados das fotos da vistoria.","operationId":"listar_vistorias_fotos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id (prefixo - = desc)"},{"name":"vistoria_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"categoria","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/VistoriasFotos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_fotos/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Fotos da vistoria","operationId":"detalhar_vistorias_fotos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/VistoriasFotos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_entrada_saida":{"get":{"tags":["Operação"],"summary":"Listar Vistorias simples (legado)","description":"Vistorias de entrada/saída do formulário antigo.","operationId":"listar_vistorias_entrada_saida","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"inspection_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/VistoriasEntradaSaida"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/vistorias_entrada_saida/{id}":{"get":{"tags":["Operação"],"summary":"Detalhar Vistorias simples (legado)","operationId":"detalhar_vistorias_entrada_saida","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/VistoriasEntradaSaida"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos":{"get":{"tags":["Financeiro"],"summary":"Listar Pagamentos","description":"Cobranças dos contratos (aluguel, taxas, entradas) com situação, vencimento e baixa. A escrita segue exatamente as regras do painel (baixa, recebimento manual, cancelamento).","operationId":"listar_pagamentos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, due_date, paid_at, created_at, amount (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"method","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"revenue_center","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"due_date","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Pagamentos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Financeiro"],"summary":"Gerar cobrança pendente para um contrato ativo (não duplica: mesma data+valor devolve a existente)","operationId":"post_pagamentos_097a5","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rental_id":{"description":"Contrato ATIVO","type":"integer"},"amount":{"description":"amount","type":"string"},"due_date":{"description":"due_date","type":"string"},"method":{"description":"method","type":"string"},"note":{"description":"note","type":"string"}},"required":["rental_id","amount","due_date"]},"example":{"rental_id":1024,"amount":"450.00","due_date":"2026-10-15","method":"pix","note":"Aluguel semanal"}}}}}},"/pagamentos/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Pagamentos","operationId":"detalhar_pagamentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: locacao, comprovantes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Pagamentos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/{id}/locacao":{"get":{"tags":["Financeiro"],"summary":"Pagamentos → Locações","operationId":"rel_pagamentos_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/{id}/comprovantes":{"get":{"tags":["Financeiro"],"summary":"Pagamentos → Comprovantes de pagamento","operationId":"rel_pagamentos_comprovantes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Pagamentos (cursor)","operationId":"exportar_pagamentos","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"method","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"revenue_center","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"due_date","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/{id}/baixa":{"post":{"tags":["Financeiro"],"summary":"Dar baixa (pago) — mesma regra do botão \"Baixa\" do painel: cancela PIX pendente, reinicia o ciclo e confirma ao cliente","operationId":"post_pagamentos_ae369","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/{id}/recebimento":{"post":{"tags":["Financeiro"],"summary":"Recebimento manual (valor recebido pode ser diferente do original)","operationId":"post_pagamentos_1992d","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"valor_recebido":{"description":"Vazio = valor original","type":"string"},"descricao":{"description":"descricao","type":"string"}}},"example":{"valor_recebido":"400.00","descricao":"Pago em dinheiro na loja"}}}}}},"/pagamentos/{id}/estornar":{"post":{"tags":["Financeiro"],"summary":"Desfazer baixa (volta para pendente)","operationId":"post_pagamentos_ad983","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos/{id}/cancelar":{"post":{"tags":["Financeiro"],"summary":"Cancelar cobrança pendente (remove a cobrança e cancela o PIX correspondente, como no painel)","operationId":"post_pagamentos_c3d22","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"motivo":{"description":"Mínimo 3 caracteres","type":"string"}},"required":["motivo"]},"example":{"motivo":"Cobrança duplicada"}}}}}},"/pagamentos_comprovantes":{"get":{"tags":["Financeiro"],"summary":"Listar Comprovantes de pagamento","description":"Comprovantes anexados na baixa manual (metadados).","operationId":"listar_pagamentos_comprovantes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"payment_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"row_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PagamentosComprovantes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pagamentos_comprovantes/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Comprovantes de pagamento","operationId":"detalhar_pagamentos_comprovantes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PagamentosComprovantes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cobrancas_pix":{"get":{"tags":["Financeiro"],"summary":"Listar Cobranças PIX","description":"Cobranças PIX emitidas nos bancos (Sicredi/Itaú/Mercado Pago) e sua situação. O código copia-e-cola só sai com permissão de dados pessoais; QR em imagem e resposta bruta do banco nunca saem.","operationId":"listar_cobrancas_pix","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, due_date, updated_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"provider","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"txid","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/CobrancasPix"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cobrancas_pix/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Cobranças PIX","operationId":"detalhar_cobrancas_pix","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/CobrancasPix"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/cobrancas_pix/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Cobranças PIX (cursor)","operationId":"exportar_cobrancas_pix","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"provider","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"txid","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas":{"get":{"tags":["Financeiro"],"summary":"Listar Taxas","description":"Taxas de desbloqueio (cobranças cuja descrição começa com \"Taxa de Desbloqueio\"): pagar, estornar e cancelar seguem a tela Taxas.","operationId":"listar_taxas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, paid_at, due_date (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Taxas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Taxas","operationId":"detalhar_taxas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: locacao"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Taxas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"delete":{"tags":["Financeiro"],"summary":"Cancelar taxa (removida, como na tela Taxas)","operationId":"delete_taxas_b101c","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas/{id}/locacao":{"get":{"tags":["Financeiro"],"summary":"Taxas → Locações","operationId":"rel_taxas_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Taxas (cursor)","operationId":"exportar_taxas","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas/{id}/pagar":{"post":{"tags":["Financeiro"],"summary":"Marcar taxa como paga","operationId":"post_taxas_4bd62","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/taxas/{id}/estornar":{"post":{"tags":["Financeiro"],"summary":"Estornar taxa (volta para pendente)","operationId":"post_taxas_472c9","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos":{"get":{"tags":["Financeiro"],"summary":"Listar Acordos","description":"Acordos/parcelamentos de débitos (multas, avarias, atrasos) com itens e parcelas.","operationId":"listar_acordos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, updated_at, total_final (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Acordos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Financeiro"],"summary":"Criar acordo — mesma regra da tela Novo Acordo: um acordo aberto por cliente; cancela débitos e PIX pendentes do contrato; reinicia o ciclo de lembretes; envia ao cliente o WhatsApp e o PIX da 1ª parcela","operationId":"post_acordos_4d308","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rental_id":{"description":"rental_id","type":"integer"},"title":{"description":"title","type":"string"},"notes":{"description":"notes","type":"string"},"installments":{"description":"installments","type":"integer"},"first_due":{"description":"first_due","type":"string"},"interval":{"description":"Padrão monthly (biweekly = a cada 15 dias)","type":"string"},"itens":{"description":"[{item_type, description, qty, unit_amount}] — item_type: multas_transito, avarias, diaria_atraso, outras… (valor_pago = desconto)","type":"array"}},"required":["rental_id","installments","first_due","itens"]},"example":{"rental_id":1024,"title":"Acordo de multas","installments":4,"first_due":"2026-10-15","interval":"weekly","itens":[{"item_type":"multas_transito","description":"AIT PA1234567","qty":1,"unit_amount":"293.47"}]}}}}}},"/acordos/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Acordos","operationId":"detalhar_acordos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: parcelas, itens, multas, locacao, cliente"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Acordos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/parcelas":{"get":{"tags":["Financeiro"],"summary":"Acordos → Parcelas de acordo","operationId":"rel_acordos_parcelas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/itens":{"get":{"tags":["Financeiro"],"summary":"Acordos → Itens de acordo","operationId":"rel_acordos_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/multas":{"get":{"tags":["Financeiro"],"summary":"Acordos → Multas","operationId":"rel_acordos_multas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/locacao":{"get":{"tags":["Financeiro"],"summary":"Acordos → Locações","operationId":"rel_acordos_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/cliente":{"get":{"tags":["Financeiro"],"summary":"Acordos → Clientes","operationId":"rel_acordos_cliente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Acordos (cursor)","operationId":"exportar_acordos","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos/{id}/parcelas/{pid}/baixa":{"post":{"tags":["Financeiro"],"summary":"Dar baixa (total ou parcial) numa parcela — mesma regra da Central de Acordos","operationId":"post_acordos_40832","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"valor":{"description":"valor","type":"string"},"metodo":{"description":"metodo","type":"string"},"observacao":{"description":"observacao","type":"string"},"pago_em":{"description":"Padrão: agora","type":"string"}},"required":["valor"]},"example":{"valor":"73.37","metodo":"pix","pago_em":"2026-10-08T10:30:00-03:00"}}}}}},"/acordos_parcelas":{"get":{"tags":["Financeiro"],"summary":"Listar Parcelas de acordo","description":"Parcelas de cada acordo (valor, vencimento, pago).","operationId":"listar_acordos_parcelas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, installment_no, due_date, paid_at (prefixo - = desc)"},{"name":"agreement_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"due_date","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/AcordosParcelas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos_parcelas/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Parcelas de acordo","operationId":"detalhar_acordos_parcelas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/AcordosParcelas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos_itens":{"get":{"tags":["Financeiro"],"summary":"Listar Itens de acordo","description":"Composição do acordo (multas de trânsito, avarias, diárias etc.).","operationId":"listar_acordos_itens","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id (prefixo - = desc)"},{"name":"agreement_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"item_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/AcordosItens"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/acordos_itens/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Itens de acordo","operationId":"detalhar_acordos_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/AcordosItens"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/despesas":{"get":{"tags":["Financeiro"],"summary":"Listar Despesas","description":"Despesas da empresa (fornecedor, categoria, NF, veículo/OS vinculados).","operationId":"listar_despesas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, paid_at, due_date, amount, created_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"payment_method","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"os_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Despesas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Financeiro"],"summary":"Lançar despesa","operationId":"post_despesas_ed48f","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"description":"description","type":"string"},"amount":{"description":"amount","type":"string"},"category":{"description":"Ex.: combustivel, oficina, peca, aluguel, folha, ipva…","type":"string"},"subcategory":{"description":"subcategory","type":"string"},"supplier":{"description":"supplier","type":"string"},"supplier_cnpj":{"description":"supplier_cnpj","type":"string"},"payment_method":{"description":"payment_method","type":"string"},"status":{"description":"status","type":"string"},"due_date":{"description":"due_date","type":"string"},"paid_at":{"description":"Data da despesa/pagamento (padrão: vencimento ou hoje; ao marcar pago sem data, usa hoje)","type":"string"},"vehicle_id":{"description":"vehicle_id","type":"integer"},"rental_id":{"description":"rental_id","type":"integer"},"os_id":{"description":"os_id","type":"integer"},"nf_number":{"description":"nf_number","type":"string"},"notes":{"description":"notes","type":"string"}},"required":["description","amount"]},"example":{"description":"Troca de pneus","category":"oficina","amount":"980.00","due_date":"2026-10-20","supplier":"Pneus Norte","vehicle_id":512}}}}}},"/despesas/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Despesas","operationId":"detalhar_despesas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Despesas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Financeiro"],"summary":"Atualizar despesa","operationId":"patch_despesas_c14a9","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"description":"description","type":"string"},"amount":{"description":"amount","type":"string"},"category":{"description":"Ex.: combustivel, oficina, peca, aluguel, folha, ipva…","type":"string"},"subcategory":{"description":"subcategory","type":"string"},"supplier":{"description":"supplier","type":"string"},"supplier_cnpj":{"description":"supplier_cnpj","type":"string"},"payment_method":{"description":"payment_method","type":"string"},"status":{"description":"status","type":"string"},"due_date":{"description":"due_date","type":"string"},"paid_at":{"description":"Data da despesa/pagamento (padrão: vencimento ou hoje; ao marcar pago sem data, usa hoje)","type":"string"},"vehicle_id":{"description":"vehicle_id","type":"integer"},"rental_id":{"description":"rental_id","type":"integer"},"os_id":{"description":"os_id","type":"integer"},"nf_number":{"description":"nf_number","type":"string"},"notes":{"description":"notes","type":"string"}}},"example":{"status":"pago","paid_at":"2026-10-20"}}}}}},"/despesas/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Despesas (cursor)","operationId":"exportar_despesas","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"payment_method","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"os_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/lancamentos_financeiros":{"get":{"tags":["Financeiro"],"summary":"Listar Lançamentos financeiros","description":"Lançamentos avulsos do financeiro (referência, valor, vencimento, situação).","operationId":"listar_lancamentos_financeiros","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, due_date, created_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/LancamentosFinanceiros"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/lancamentos_financeiros/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Lançamentos financeiros","operationId":"detalhar_lancamentos_financeiros","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/LancamentosFinanceiros"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/lancamentos_financeiros/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Lançamentos financeiros (cursor)","operationId":"exportar_lancamentos_financeiros","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/conciliacao_bancaria":{"get":{"tags":["Financeiro"],"summary":"Listar Conciliação Bancária","description":"Transações bancárias importadas e o vínculo com pagamentos/despesas/acordos.","operationId":"listar_conciliacao_bancaria","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, posted_at, amount (prefixo - = desc)"},{"name":"reconcile_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"direction","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"match_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"bank_code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/ConciliacaoBancaria"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/conciliacao_bancaria/{id}":{"get":{"tags":["Financeiro"],"summary":"Detalhar Conciliação Bancária","operationId":"detalhar_conciliacao_bancaria","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/ConciliacaoBancaria"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/conciliacao_bancaria/exportar":{"get":{"tags":["Financeiro"],"summary":"Exportar Conciliação Bancária (cursor)","operationId":"exportar_conciliacao_bancaria","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"reconcile_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"direction","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"match_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"bank_code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos":{"get":{"tags":["Frota"],"summary":"Listar Veículos","description":"Frota: cadastro, situação, KM, restrição e estado do rastreador. Bloqueio/desbloqueio NÃO é feito pela API.","operationId":"listar_veiculos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, plate, created_at, current_km (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fleet_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"tracker_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"restricao","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"brand","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Veiculos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Frota"],"summary":"Cadastrar veículo (entra como disponível/desbloqueado)","operationId":"post_veiculos_f7541","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plate":{"description":"Placa (única)","type":"string"},"model":{"description":"model","type":"string"},"brand":{"description":"brand","type":"string"},"type":{"description":"Padrão carro","type":"string"},"fleet_type":{"description":"Carteira (padrão mapogos; precisa estar nas carteiras da chave)","type":"string"},"manufacture_year":{"description":"manufacture_year","type":"integer"},"model_year":{"description":"model_year","type":"integer"},"renavam":{"description":"renavam","type":"string"},"chassi":{"description":"chassi","type":"string"},"daily_rate":{"description":"daily_rate","type":"string"},"price":{"description":"price","type":"string"},"current_km":{"description":"current_km","type":"integer"},"notes":{"description":"notes","type":"string"}},"required":["plate","model"]},"example":{"plate":"ABC1D23","brand":"RENAULT","model":"LOGAN LIFE 1.0","manufacture_year":2023,"model_year":2024,"fleet_type":"mapogos","daily_rate":"100.00"}}}}}},"/veiculos/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Veículos","operationId":"detalhar_veiculos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: locacoes, multas, debitos, ordens_servico, licenciamento, manutencao, vistorias"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Veiculos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Frota"],"summary":"Atualizar cadastro (status e rastreador não são alteráveis pela API)","operationId":"patch_veiculos_e923a","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plate":{"description":"Placa (única)","type":"string"},"model":{"description":"model","type":"string"},"brand":{"description":"brand","type":"string"},"type":{"description":"Padrão carro","type":"string"},"fleet_type":{"description":"Carteira (padrão mapogos; precisa estar nas carteiras da chave)","type":"string"},"manufacture_year":{"description":"manufacture_year","type":"integer"},"model_year":{"description":"model_year","type":"integer"},"renavam":{"description":"renavam","type":"string"},"chassi":{"description":"chassi","type":"string"},"daily_rate":{"description":"daily_rate","type":"string"},"price":{"description":"price","type":"string"},"current_km":{"description":"current_km","type":"integer"},"notes":{"description":"notes","type":"string"}}},"example":{"current_km":45210,"notes":"Revisão em dia"}}}}}},"/veiculos/{id}/locacoes":{"get":{"tags":["Frota"],"summary":"Veículos → Locações","operationId":"rel_veiculos_locacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/multas":{"get":{"tags":["Frota"],"summary":"Veículos → Multas","operationId":"rel_veiculos_multas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/debitos":{"get":{"tags":["Frota"],"summary":"Veículos → Débitos Veiculares","operationId":"rel_veiculos_debitos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/ordens_servico":{"get":{"tags":["Frota"],"summary":"Veículos → Ordens de Serviço","operationId":"rel_veiculos_ordens_servico","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/licenciamento":{"get":{"tags":["Frota"],"summary":"Veículos → Licenciamento","operationId":"rel_veiculos_licenciamento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/manutencao":{"get":{"tags":["Frota"],"summary":"Veículos → Manutenção Preditiva","operationId":"rel_veiculos_manutencao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/{id}/vistorias":{"get":{"tags":["Frota"],"summary":"Veículos → Vistorias","operationId":"rel_veiculos_vistorias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/veiculos/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Veículos (cursor)","operationId":"exportar_veiculos","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fleet_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"tracker_status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"restricao","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"brand","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/multas":{"get":{"tags":["Frota"],"summary":"Listar Multas","description":"Multas de trânsito por veículo, com responsável (contrato), valores, taxa administrativa e vínculo com acordo.","operationId":"listar_multas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, issue_date, created_at, total_amount (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"added_to_agreement_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fine_number","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"situacao_detran","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Multas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Frota"],"summary":"Registrar multa (taxa adm. 50%, vincula contrato ativo e roda a automação de multas do sistema)","operationId":"post_multas_ab946","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"fine_number":{"description":"AIT","type":"string"},"description":{"description":"description","type":"string"},"issue_date":{"description":"issue_date","type":"string"},"due_date":{"description":"due_date","type":"string"},"fine_amount":{"description":"Taxa administrativa = 50% e total = multa + taxa (regra do painel)","type":"string"}},"required":["vehicle_id","fine_number","description","issue_date","fine_amount"]},"example":{"vehicle_id":512,"fine_number":"PA1234567","description":"Avançar sinal vermelho","issue_date":"2026-10-01","fine_amount":"293.47"}}}}}},"/multas/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Multas","operationId":"detalhar_multas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: veiculo, locacao, acordo"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Multas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Frota"],"summary":"Corrigir dados da multa (recalcula taxa e total)","operationId":"patch_multas_af3c0","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"fine_number":{"description":"AIT","type":"string"},"description":{"description":"description","type":"string"},"issue_date":{"description":"issue_date","type":"string"},"due_date":{"description":"due_date","type":"string"},"fine_amount":{"description":"Taxa administrativa = 50% e total = multa + taxa (regra do painel)","type":"string"}}},"example":{"due_date":"2026-11-10"}}}}}},"/multas/{id}/veiculo":{"get":{"tags":["Frota"],"summary":"Multas → Veículos","operationId":"rel_multas_veiculo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/multas/{id}/locacao":{"get":{"tags":["Frota"],"summary":"Multas → Locações","operationId":"rel_multas_locacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/multas/{id}/acordo":{"get":{"tags":["Frota"],"summary":"Multas → Acordos","operationId":"rel_multas_acordo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/multas/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Multas (cursor)","operationId":"exportar_multas","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"added_to_agreement_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"fine_number","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"situacao_detran","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/debitos_veiculares":{"get":{"tags":["Frota"],"summary":"Listar Débitos Veiculares","description":"IPVA, licenciamento, DPVAT e outros débitos por veículo.","operationId":"listar_debitos_veiculares","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, due_date, reference_year, amount (prefixo - = desc)"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"reference_year","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/DebitosVeiculares"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Frota"],"summary":"Cadastrar débito","operationId":"post_debitos_veiculares_6602e","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"type":{"description":"type","type":"string"},"reference_year":{"description":"reference_year","type":"integer"},"description":{"description":"description","type":"string"},"amount":{"description":"amount","type":"string"},"due_date":{"description":"due_date","type":"string"},"status":{"description":"status","type":"string"}},"required":["vehicle_id","type","amount"]},"example":{"vehicle_id":512,"type":"ipva","reference_year":2026,"amount":"1250.00","due_date":"2026-03-15"}}}}}},"/debitos_veiculares/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Débitos Veiculares","operationId":"detalhar_debitos_veiculares","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: veiculo"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/DebitosVeiculares"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Frota"],"summary":"Atualizar débito","operationId":"patch_debitos_veiculares_039e0","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"type":{"description":"type","type":"string"},"reference_year":{"description":"reference_year","type":"integer"},"description":{"description":"description","type":"string"},"amount":{"description":"amount","type":"string"},"due_date":{"description":"due_date","type":"string"},"status":{"description":"status","type":"string"}}},"example":{"status":"quitado"}}}}}},"/debitos_veiculares/{id}/veiculo":{"get":{"tags":["Frota"],"summary":"Débitos Veiculares → Veículos","operationId":"rel_debitos_veiculares_veiculo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/debitos_veiculares/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Débitos Veiculares (cursor)","operationId":"exportar_debitos_veiculares","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"reference_year","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/licenciamento":{"get":{"tags":["Frota"],"summary":"Listar Licenciamento","description":"Situação do licenciamento anual (DETRAN), boleto e gravame por veículo.","operationId":"listar_licenciamento","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, data_limite, updated_at (prefixo - = desc)"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"placa","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"situacao","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"exercicio","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Licenciamento"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/licenciamento/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Licenciamento","operationId":"detalhar_licenciamento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Licenciamento"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/licenciamento/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Licenciamento (cursor)","operationId":"exportar_licenciamento","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"placa","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"situacao","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"exercicio","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/real_condutor":{"get":{"tags":["Frota"],"summary":"Listar Real Condutor","description":"Condutor principal indicado na SENATRAN por placa.","operationId":"listar_real_condutor","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: placa, verificado_em, mudou_em (prefixo - = desc)"},{"name":"tem_condutor","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"placa","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/RealCondutor"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/real_condutor/{placa}":{"get":{"tags":["Frota"],"summary":"Detalhar Real Condutor","operationId":"detalhar_real_condutor","parameters":[{"name":"placa","in":"path","required":true,"schema":{"type":"string"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/RealCondutor"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/real_condutor/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Real Condutor (cursor)","operationId":"exportar_real_condutor","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"tem_condutor","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"placa","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/indicacoes_condutor":{"get":{"tags":["Frota"],"summary":"Listar Indicações de condutor","description":"Processo de indicação do condutor (pedido de CNH, prazo, situação).","operationId":"listar_indicacoes_condutor","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, deadline, created_at (prefixo - = desc)"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/IndicacoesCondutor"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/indicacoes_condutor/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Indicações de condutor","operationId":"detalhar_indicacoes_condutor","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/IndicacoesCondutor"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/manutencao_preditiva":{"get":{"tags":["Frota"],"summary":"Listar Manutenção Preditiva","description":"Próximas manutenções previstas por veículo (KM e data), com situação ok/próxima/atrasada.","operationId":"listar_manutencao_preditiva","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, next_due_at, km_remaining, days_remaining (prefixo - = desc)"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"item","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/ManutencaoPreditiva"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/manutencao_preditiva/{id}":{"get":{"tags":["Frota"],"summary":"Detalhar Manutenção Preditiva","operationId":"detalhar_manutencao_preditiva","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/ManutencaoPreditiva"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/manutencao_preditiva/exportar":{"get":{"tags":["Frota"],"summary":"Exportar Manutenção Preditiva (cursor)","operationId":"exportar_manutencao_preditiva","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"item","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico":{"get":{"tags":["Oficina"],"summary":"Listar Ordens de Serviço","description":"OS da oficina: abertura, diagnóstico, peças e serviços, conclusão.","operationId":"listar_ordens_servico","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, opened_at, closed_at, total_amount (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"os_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"mechanic_user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"destaque","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/OrdensServico"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Oficina"],"summary":"Abrir OS (veículo vai para manutenção)","operationId":"post_ordens_servico_c1613","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"description":"vehicle_id","type":"integer"},"km_open":{"description":"≥ KM atual do veículo","type":"integer"},"client_id":{"description":"client_id","type":"integer"},"mechanic_user_id":{"description":"mechanic_user_id","type":"integer"},"diagnosis":{"description":"diagnosis","type":"string"},"notes":{"description":"notes","type":"string"}},"required":["vehicle_id","km_open"]},"example":{"vehicle_id":512,"km_open":45300,"diagnosis":"Barulho na suspensão dianteira"}}}}}},"/ordens_servico/{id}":{"get":{"tags":["Oficina"],"summary":"Detalhar Ordens de Serviço","operationId":"detalhar_ordens_servico","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: itens, veiculo, cliente"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/OrdensServico"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Oficina"],"summary":"Atualizar mecânico, diagnóstico, notas ou KM (OS aberta)","operationId":"patch_ordens_servico_3ea60","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mechanic_user_id":{"description":"mechanic_user_id","type":"integer"},"diagnosis":{"description":"diagnosis","type":"string"},"notes":{"description":"notes","type":"string"},"km_open":{"description":"Não pode ser menor que o KM atual do veículo","type":"integer"}}},"example":{"diagnosis":"Bucha da bandeja gasta"}}}}}},"/ordens_servico/{id}/itens":{"get":{"tags":["Oficina"],"summary":"Ordens de Serviço → Itens de OS","operationId":"rel_ordens_servico_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Oficina"],"summary":"Adicionar peça (baixa do estoque) ou serviço","operationId":"post_ordens_servico_fbb7d","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"item_type":{"description":"item_type","type":"string"},"stock_item_id":{"description":"Obrigatório para peça (id em estoque_pecas)","type":"integer"},"description":{"description":"Obrigatório para serviço","type":"string"},"qty":{"description":"qty","type":"string"},"unit_price":{"description":"unit_price","type":"string"},"notes":{"description":"notes","type":"string"}},"required":["item_type"]},"example":{"item_type":"service","description":"Troca de bucha","qty":1,"unit_price":"120.00"}}}}}},"/ordens_servico/{id}/veiculo":{"get":{"tags":["Oficina"],"summary":"Ordens de Serviço → Veículos","operationId":"rel_ordens_servico_veiculo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico/{id}/cliente":{"get":{"tags":["Oficina"],"summary":"Ordens de Serviço → Clientes","operationId":"rel_ordens_servico_cliente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico/exportar":{"get":{"tags":["Oficina"],"summary":"Exportar Ordens de Serviço (cursor)","operationId":"exportar_ordens_servico","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"os_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"mechanic_user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"destaque","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico/{id}/itens/{pid}/remover":{"post":{"tags":["Oficina"],"summary":"Remover item (devolve peça ao estoque)","operationId":"post_ordens_servico_9de79","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pid","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico/{id}/concluir":{"post":{"tags":["Oficina"],"summary":"Concluir OS (libera o veículo e notifica)","operationId":"post_ordens_servico_b523c","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"km_close":{"description":"km_close","type":"integer"},"final_diagnosis":{"description":"final_diagnosis","type":"string"},"final_notes":{"description":"final_notes","type":"string"},"due_date":{"description":"due_date","type":"string"}}},"example":{"km_close":45310,"final_diagnosis":"Buchas substituídas"}}}}}},"/ordens_servico_itens":{"get":{"tags":["Oficina"],"summary":"Listar Itens de OS","description":"Peças e serviços lançados na OS.","operationId":"listar_ordens_servico_itens","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"os_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"item_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"stock_item_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/OrdensServicoItens"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico_itens/{id}":{"get":{"tags":["Oficina"],"summary":"Detalhar Itens de OS","operationId":"detalhar_ordens_servico_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/OrdensServicoItens"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico_legado":{"get":{"tags":["Oficina"],"summary":"Listar Ordens de Serviço (legado)","description":"OS do sistema anterior (somente consulta histórica).","operationId":"listar_ordens_servico_legado","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, opened_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/OrdensServicoLegado"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico_legado/{id}":{"get":{"tags":["Oficina"],"summary":"Detalhar Ordens de Serviço (legado)","operationId":"detalhar_ordens_servico_legado","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/OrdensServicoLegado"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/ordens_servico_legado/exportar":{"get":{"tags":["Oficina"],"summary":"Exportar Ordens de Serviço (legado) (cursor)","operationId":"exportar_ordens_servico_legado","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/orcamentos":{"get":{"tags":["Oficina"],"summary":"Listar Orçamentos","description":"Orçamentos de peças e serviços para clientes/veículos.","operationId":"listar_orcamentos","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, total_amount (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Orcamentos"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Oficina"],"summary":"Criar orçamento com itens (total calculado)","operationId":"post_orcamentos_1fff6","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"description":"client_id","type":"integer"},"vehicle_id":{"description":"vehicle_id","type":"integer"},"notes":{"description":"notes","type":"string"},"validade_dias":{"description":"validade_dias","type":"integer"},"itens":{"description":"[{item_type: part|service|other, description, qty, unit_price}]","type":"array"}},"required":["itens"]},"example":{"vehicle_id":512,"validade_dias":7,"itens":[{"item_type":"part","description":"Pastilha de freio","qty":1,"unit_price":"180.00"},{"item_type":"service","description":"Mão de obra","qty":1,"unit_price":"90.00"}]}}}}}},"/orcamentos/{id}":{"get":{"tags":["Oficina"],"summary":"Detalhar Orçamentos","operationId":"detalhar_orcamentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: itens"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Orcamentos"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Oficina"],"summary":"Atualizar orçamento (itens enviados substituem os atuais)","operationId":"patch_orcamentos_3b7cb","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"description":"client_id","type":"integer"},"vehicle_id":{"description":"vehicle_id","type":"integer"},"notes":{"description":"notes","type":"string"},"validade_dias":{"description":"validade_dias","type":"integer"},"itens":{"description":"[{item_type: part|service|other, description, qty, unit_price}]","type":"array"}}},"example":{"notes":"Validade estendida","validade_dias":15}}}}},"delete":{"tags":["Oficina"],"summary":"Excluir orçamento em rascunho","operationId":"delete_orcamentos_3b7cb","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/orcamentos/{id}/itens":{"get":{"tags":["Oficina"],"summary":"Orçamentos → Itens de orçamento","operationId":"rel_orcamentos_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/orcamentos/exportar":{"get":{"tags":["Oficina"],"summary":"Exportar Orçamentos (cursor)","operationId":"exportar_orcamentos","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"vehicle_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"plate","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/orcamentos_itens":{"get":{"tags":["Oficina"],"summary":"Listar Itens de orçamento","description":"Peças e serviços do orçamento.","operationId":"listar_orcamentos_itens","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id (prefixo - = desc)"},{"name":"orcamento_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"item_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/OrcamentosItens"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/orcamentos_itens/{id}":{"get":{"tags":["Oficina"],"summary":"Detalhar Itens de orçamento","operationId":"detalhar_orcamentos_itens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/OrcamentosItens"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_pecas":{"get":{"tags":["Estoque"],"summary":"Listar Cadastro de Peças","description":"Peças cadastradas: código, categoria, preço, estoque mínimo e atual.","operationId":"listar_estoque_pecas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, code, current_stock, updated_at (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"supplier","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/EstoquePecas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Estoque"],"summary":"Cadastrar peça","operationId":"post_estoque_pecas_0af6b","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"name","type":"string"},"code":{"description":"Único","type":"string"},"description":{"description":"description","type":"string"},"category":{"description":"category","type":"string"},"supplier":{"description":"supplier","type":"string"},"unit_price":{"description":"unit_price","type":"string"},"min_stock":{"description":"min_stock","type":"integer"},"current_stock":{"description":"Saldo inicial/ajuste direto, como no cadastro do painel (prefira movimentações)","type":"integer"},"active":{"description":"active","type":"boolean"}},"required":["name"]},"example":{"name":"Filtro de óleo","code":"FO-123","unit_price":"35.90","min_stock":5,"category":"Filtros"}}}}}},"/estoque_pecas/{id}":{"get":{"tags":["Estoque"],"summary":"Detalhar Cadastro de Peças","operationId":"detalhar_estoque_pecas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: movimentacoes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/EstoquePecas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Estoque"],"summary":"Atualizar peça","operationId":"patch_estoque_pecas_0ee9f","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"name","type":"string"},"code":{"description":"Único","type":"string"},"description":{"description":"description","type":"string"},"category":{"description":"category","type":"string"},"supplier":{"description":"supplier","type":"string"},"unit_price":{"description":"unit_price","type":"string"},"min_stock":{"description":"min_stock","type":"integer"},"current_stock":{"description":"Saldo inicial/ajuste direto, como no cadastro do painel (prefira movimentações)","type":"integer"},"active":{"description":"active","type":"boolean"}}},"example":{"min_stock":8}}}}}},"/estoque_pecas/{id}/movimentacoes":{"get":{"tags":["Estoque"],"summary":"Cadastro de Peças → Movimentações de Estoque","operationId":"rel_estoque_pecas_movimentacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_pecas/exportar":{"get":{"tags":["Estoque"],"summary":"Exportar Cadastro de Peças (cursor)","operationId":"exportar_estoque_pecas","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"supplier","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_movimentacoes":{"get":{"tags":["Estoque"],"summary":"Listar Movimentações de Estoque","description":"Entradas, saídas e ajustes de estoque (com referência à OS quando houver).","operationId":"listar_estoque_movimentacoes","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"part_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"movement_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/EstoqueMovimentacoes"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Estoque"],"summary":"Registrar entrada/saída (atualiza o saldo como no painel)","operationId":"post_estoque_movimentacoes_4e3dd","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"part_id":{"description":"part_id","type":"integer"},"movement_type":{"description":"movement_type","type":"string"},"qty":{"description":"qty","type":"integer"},"unit_cost":{"description":"Na entrada, vira o preço unitário da peça (como no painel)","type":"string"},"notes":{"description":"notes","type":"string"}},"required":["part_id","movement_type","qty"]},"example":{"part_id":12,"movement_type":"entrada","qty":10,"unit_cost":"32.50","notes":"NF 1234"}}}}}},"/estoque_movimentacoes/{id}":{"get":{"tags":["Estoque"],"summary":"Detalhar Movimentações de Estoque","operationId":"detalhar_estoque_movimentacoes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: peca"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/EstoqueMovimentacoes"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_movimentacoes/{id}/peca":{"get":{"tags":["Estoque"],"summary":"Movimentações de Estoque → Cadastro de Peças","operationId":"rel_estoque_movimentacoes_peca","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_movimentacoes/exportar":{"get":{"tags":["Estoque"],"summary":"Exportar Movimentações de Estoque (cursor)","operationId":"exportar_estoque_movimentacoes","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"part_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"movement_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_saldo":{"get":{"tags":["Estoque"],"summary":"Listar Saldo de Estoque","description":"Posição atual do estoque por peça ativa (estoque atual × mínimo).","operationId":"listar_estoque_saldo","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, current_stock (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/EstoqueSaldo"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_saldo/{id}":{"get":{"tags":["Estoque"],"summary":"Detalhar Saldo de Estoque","operationId":"detalhar_estoque_saldo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/EstoqueSaldo"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/estoque_saldo/exportar":{"get":{"tags":["Estoque"],"summary":"Exportar Saldo de Estoque (cursor)","operationId":"exportar_estoque_saldo","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"code","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_atendimento":{"get":{"tags":["Atendimento"],"summary":"Listar Central de Atendimento (WhatsApp)","description":"Atendimentos (tickets) da Central: contato, setor, atendente, situação e tempos de resposta. Envio de mensagens não é feito pela API.","operationId":"listar_central_atendimento","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, last_message_at, created_at, updated_at (prefixo - = desc)"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"sector_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"assigned_user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"is_group","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/CentralAtendimento"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_atendimento/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Central de Atendimento (WhatsApp)","operationId":"detalhar_central_atendimento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: mensagens"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/CentralAtendimento"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Atendimento"],"summary":"Mudar situação, setor ou atendente do ticket","operationId":"patch_central_atendimento_079de","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"description":"finalizado encerra o atendimento e devolve o contato ao bot de menu","type":"string"},"sector_id":{"description":"sector_id","type":"integer"},"assigned_user_id":{"description":"assigned_user_id","type":"integer"}}},"example":{"status":"finalizado"}}}}}},"/central_atendimento/{id}/mensagens":{"get":{"tags":["Atendimento"],"summary":"Central de Atendimento (WhatsApp) → Mensagens da Central","operationId":"rel_central_atendimento_mensagens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_atendimento/exportar":{"get":{"tags":["Atendimento"],"summary":"Exportar Central de Atendimento (WhatsApp) (cursor)","operationId":"exportar_central_atendimento","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"sector_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"assigned_user_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"client_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"rental_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"is_group","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_mensagens":{"get":{"tags":["Atendimento"],"summary":"Listar Mensagens da Central","description":"Mensagens trocadas em cada atendimento (texto só com permissão de dados pessoais).","operationId":"listar_central_mensagens","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"ticket_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"direction","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"msg_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"from_me","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/CentralMensagens"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_mensagens/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Mensagens da Central","operationId":"detalhar_central_mensagens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/CentralMensagens"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_mensagens/exportar":{"get":{"tags":["Atendimento"],"summary":"Exportar Mensagens da Central (cursor)","operationId":"exportar_central_mensagens","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"ticket_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"direction","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"msg_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"from_me","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_setores":{"get":{"tags":["Atendimento"],"summary":"Listar Setores da Central","description":"Setores de atendimento.","operationId":"listar_central_setores","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, sort, name (prefixo - = desc)"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/CentralSetores"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_setores/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Setores da Central","operationId":"detalhar_central_setores","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/CentralSetores"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_etiquetas":{"get":{"tags":["Atendimento"],"summary":"Listar Etiquetas da Central","description":"Etiquetas aplicáveis aos atendimentos.","operationId":"listar_central_etiquetas","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, sort, name (prefixo - = desc)"},{"name":"active","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/CentralEtiquetas"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/central_etiquetas/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Etiquetas da Central","operationId":"detalhar_central_etiquetas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/CentralEtiquetas"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/whatsapp_mensagens":{"get":{"tags":["Atendimento"],"summary":"Listar Mensagens WhatsApp (envios do sistema)","description":"Mensagens automáticas enviadas pelo sistema (cobranças, avisos), com situação do envio.","operationId":"listar_whatsapp_mensagens","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"context_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"context_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_step","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/WhatsappMensagens"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/whatsapp_mensagens/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Mensagens WhatsApp (envios do sistema)","operationId":"detalhar_whatsapp_mensagens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/WhatsappMensagens"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/whatsapp_mensagens/exportar":{"get":{"tags":["Atendimento"],"summary":"Exportar Mensagens WhatsApp (envios do sistema) (cursor)","operationId":"exportar_whatsapp_mensagens","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limite","in":"query","schema":{"type":"integer","maximum":1000}},{"name":"formato","in":"query","schema":{"type":"string","enum":["json","csv"]}},{"name":"context_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"context_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"charge_step","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK"},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pre_leads":{"get":{"tags":["Atendimento"],"summary":"Listar Pré-Leads (IA)","description":"Interessados captados pelo WhatsApp e a triagem da IA (documentos, score, decisão).","operationId":"listar_pre_leads","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at, last_interaction (prefixo - = desc)"},{"name":"stage","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"decision","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/PreLeads"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/pre_leads/{id}":{"get":{"tags":["Atendimento"],"summary":"Detalhar Pré-Leads (IA)","operationId":"detalhar_pre_leads","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/PreLeads"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/drive":{"get":{"tags":["Arquivos"],"summary":"Listar Drive de Arquivos","description":"Pastas e arquivos do Drive interno (metadados). Download em /v1/drive/{id}/download exige também a permissão de dados pessoais.","operationId":"listar_drive","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, name, created_at, size_bytes (prefixo - = desc)"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"parent_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"node_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"mime_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/Drive"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"post":{"tags":["Arquivos"],"summary":"Criar pasta ou enviar arquivo (conteúdo em base64, até 700 KB)","operationId":"post_drive_e5da9","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"node_type":{"description":"node_type","type":"string"},"name":{"description":"name","type":"string"},"parent_id":{"description":"Pasta destino (null = raiz)","type":"integer"},"conteudo_base64":{"description":"Obrigatório para arquivo; até ~700 KB","type":"string"},"mime_type":{"description":"mime_type","type":"string"}},"required":["node_type","name"]},"example":{"node_type":"folder","name":"Contratos 2026","parent_id":null}}}}}},"/drive/{id}":{"get":{"tags":["Arquivos"],"summary":"Detalhar Drive de Arquivos","operationId":"detalhar_drive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}},{"name":"incluir","in":"query","schema":{"type":"string"},"description":"Relações: conteudo"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/Drive"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}},"patch":{"tags":["Arquivos"],"summary":"Renomear ou mover","operationId":"patch_drive_03bbe","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100}}],"responses":{"200":{"description":"OK"},"201":{"description":"Criado"},"409":{"description":"Conflito","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"415":{"description":"Content-Type inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"422":{"description":"Validação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"name","type":"string"},"parent_id":{"description":"Pasta de destino (null = raiz)","type":"integer"}}},"example":{"name":"Contratos 2026 - assinados"}}}}}},"/drive/{id}/conteudo":{"get":{"tags":["Arquivos"],"summary":"Drive de Arquivos → Drive de Arquivos","operationId":"rel_drive_conteudo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/documentos_ia":{"get":{"tags":["Arquivos"],"summary":"Listar Documentos IA","description":"Documentos gerados pela IA (notificações, cartas, relatórios).","operationId":"listar_documentos_ia","parameters":[{"name":"pagina","in":"query","schema":{"type":"integer","minimum":1}},{"name":"por_pagina","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"campos","in":"query","schema":{"type":"string"},"description":"Lista separada por vírgula"},{"name":"criado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"criado_ate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"atualizado_desde","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"ordenar","in":"query","schema":{"type":"string"},"description":"Campos: id, created_at (prefixo - = desc)"},{"name":"doc_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_type","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"ref_id","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"},{"name":"status","in":"query","schema":{"type":"string"},"description":"Filtro exato; vários valores separados por vírgula"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"type":"array","items":{"$ref":"#/components/schemas/DocumentosIa"}},"meta":{"$ref":"#/components/schemas/MetaPaginacao"},"request_id":{"type":"string"}}}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}},"/documentos_ia/{id}":{"get":{"tags":["Arquivos"],"summary":"Detalhar Documentos IA","operationId":"detalhar_documentos_ia","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"campos","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"sucesso":{"type":"boolean"},"dados":{"$ref":"#/components/schemas/DocumentosIa"},"request_id":{"type":"string"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"400":{"description":"Parâmetro inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"401":{"description":"Não autenticado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}},"429":{"description":"Limite excedido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erro"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Chave mpg_live_… / mpg_test_…"}},"schemas":{"Erro":{"type":"object","required":["sucesso","erro","request_id"],"properties":{"sucesso":{"type":"boolean","const":false},"erro":{"type":"object","properties":{"codigo":{"type":"string","enum":["nao_autenticado","chave_invalida","chave_suspensa","chave_revogada","chave_expirada","https_obrigatorio","ip_nao_permitido","permissao_negada","carteira_nao_permitida","acao_indisponivel","nao_encontrado","rota_inexistente","metodo_nao_permitido","conflito","idempotencia_conflito","corpo_muito_grande","tipo_conteudo_invalido","json_invalido","parametro_invalido","validacao","limite_excedido","erro_interno"]},"mensagem":{"type":"string"},"detalhes":{"type":"array","items":{"type":"object"}}}},"request_id":{"type":"string"}}},"MetaPaginacao":{"type":"object","properties":{"total":{"type":"integer"},"pagina":{"type":"integer"},"por_pagina":{"type":"integer"},"paginas":{"type":"integer"},"dados_pessoais":{"type":"string"},"avisos":{"type":"object"}}},"MetaCursor":{"type":"object","properties":{"quantidade":{"type":"integer"},"limite":{"type":"integer"},"tem_mais":{"type":"boolean"},"proximo_cursor":{"type":["string","null"]}}},"Usuarios":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"username":{"type":"string","description":"username"},"name":{"type":"string","description":"Nome"},"email":{"type":"string","description":"E-mail (dado pessoal: mascarado sem permissão LGPD)"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"role":{"type":"string","enum":["admin","atendente","financeiro"],"description":"role"},"active":{"type":"boolean","description":"Ativo (1/0)"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"Cargos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"name":{"type":"string","description":"Nome"},"description":{"type":"string","description":"Descrição"}}},"PermissoesPainel":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"perm_key":{"type":"string","description":"perm key"},"label":{"type":"string","description":"label"}}},"ModelosContrato":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"type":{"type":"string","description":"type"},"name":{"type":"string","description":"Nome"},"html":{"type":"string","description":"html"},"updated_by":{"type":"integer","description":"updated by"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"ModelosContratoVersoes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"template_id":{"type":"integer","description":"template id"},"html":{"type":"string","description":"html"},"changed_by":{"type":"integer","description":"changed by"},"changed_at":{"type":"string","format":"date-time","description":"changed at"}}},"Notificacoes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"type":{"type":"string","description":"type"},"user_id":{"type":"integer","description":"user id"},"title":{"type":"string","description":"title"},"message":{"type":"string","description":"message"},"data":{"type":["object","array","string","null"],"description":"data"},"read_at":{"type":"string","format":"date-time","description":"read at"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"audience":{"type":"string","description":"audience"}}},"Clientes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"name":{"type":"string","description":"Nome completo / razão social"},"cpf_cnpj":{"type":"string","description":"CPF ou CNPJ (dado pessoal: mascarado sem permissão LGPD)"},"cpf":{"type":"string","description":"cpf (dado pessoal: mascarado sem permissão LGPD)"},"rg":{"type":"string","description":"rg (dado pessoal: mascarado sem permissão LGPD)"},"birth_date":{"type":"string","format":"date","description":"birth date (dado pessoal: mascarado sem permissão LGPD)"},"civil_status":{"type":"string","description":"civil status"},"profession":{"type":"string","description":"profession"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"email":{"type":"string","description":"E-mail (dado pessoal: mascarado sem permissão LGPD)"},"cnh":{"type":"string","description":"cnh (dado pessoal: mascarado sem permissão LGPD)"},"cnh_registro":{"type":"string","description":"cnh registro (dado pessoal: mascarado sem permissão LGPD)"},"cnh_categoria":{"type":"string","description":"cnh categoria"},"cnh_validade":{"type":"string","format":"date","description":"cnh validade"},"cnh_emissao":{"type":"string","format":"date","description":"cnh emissao"},"cnh_primeira_habilitacao":{"type":"string","format":"date","description":"cnh primeira habilitacao"},"cep":{"type":"string","description":"cep (dado pessoal: mascarado sem permissão LGPD)"},"street":{"type":"string","description":"street (dado pessoal: mascarado sem permissão LGPD)"},"number":{"type":"string","description":"number (dado pessoal: mascarado sem permissão LGPD)"},"complement":{"type":"string","description":"complement (dado pessoal: mascarado sem permissão LGPD)"},"neighborhood":{"type":"string","description":"neighborhood (dado pessoal: mascarado sem permissão LGPD)"},"city":{"type":"string","description":"city"},"uf":{"type":"string","description":"uf"},"address":{"type":"string","description":"address (dado pessoal: mascarado sem permissão LGPD)"},"reference_point":{"type":"string","description":"reference point (dado pessoal: mascarado sem permissão LGPD)"},"neighbors":{"type":["object","array","string","null"],"description":"Vizinhos de referência (JSON) (dado pessoal: mascarado sem permissão LGPD)"},"witness_neighbors":{"type":["object","array","string","null"],"description":"Testemunhas (JSON) (dado pessoal: mascarado sem permissão LGPD)"},"billing_day":{"type":"integer","description":"Dia de cobrança preferido"},"billing_start_date":{"type":"string","format":"date","description":"billing start date"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"ClientesDocumentos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"client_id":{"type":"integer","description":"ID do cliente"},"doc_type":{"type":"string","description":"doc type"},"file_name":{"type":"string","description":"file name (dado pessoal: mascarado sem permissão LGPD)"},"mime_type":{"type":"string","description":"mime type"},"size_bytes":{"type":"integer","description":"size bytes"},"match_status":{"type":"string","enum":["pending","matched","unmatched","manual","error"],"description":"match status"},"match_score":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"match score"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"Locacoes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"description":{"type":"string","description":"Descrição"},"client_id":{"type":"integer","description":"ID do cliente"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"contract_type":{"type":"string","enum":["aluguel","aluguel_normal","aluguel_particular","venda"],"description":"aluguel_normal | aluguel_particular | aluguel | venda"},"status":{"type":"string","enum":["aberta","ativa","finalizada","cancelada","atrasada","encerrado","pendente"],"description":"Situação"},"active":{"type":"boolean","description":"Ativo (1/0)"},"fleet_type":{"type":"string","enum":["mapogos","premium"],"description":"Carteira (mapogos | premium)"},"start_datetime":{"type":"string","format":"date-time","description":"start datetime"},"expected_return":{"type":"string","format":"date-time","description":"expected return"},"actual_return":{"type":"string","format":"date-time","description":"actual return"},"km_start":{"type":"integer","description":"km start"},"km_end":{"type":"integer","description":"km end"},"payment_type":{"type":"string","enum":["mensal","semanal","diario"],"description":"payment type"},"recurring_value":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"recurring value"},"recurring_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor da parcela recorrente"},"daily_rate":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"daily rate"},"deposit":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"deposit"},"deposit_value":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"deposit value"},"deposit_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"deposit amount"},"total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total"},"num_installments":{"type":"integer","description":"num installments"},"pay_weekday":{"type":"integer","description":"pay weekday"},"pay_monthday":{"type":"integer","description":"pay monthday"},"payment_day_week":{"type":"integer","description":"payment day week"},"payment_day_month":{"type":"integer","description":"payment day month"},"bridge_days":{"type":"integer","description":"bridge days"},"bridge_charged":{"type":"boolean","description":"bridge charged"},"auto_charge":{"type":"boolean","description":"auto charge"},"charge_step":{"type":"integer","description":"Etapa do ciclo de cobrança (1–3)"},"next_charge_at":{"type":"string","format":"date-time","description":"next charge at"},"last_charge_at":{"type":"string","format":"date-time","description":"last charge at"},"blocked":{"type":"boolean","description":"blocked"},"autoblock_immune_until":{"type":"string","format":"date-time","description":"Imune ao bloqueio automático até esta data"},"revenue_hidden":{"type":"integer","description":"1 = receita oculta dos relatórios"},"contact_phone":{"type":"string","description":"contact phone (dado pessoal: mascarado sem permissão LGPD)"},"notes":{"type":"string","description":"Observações"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"LocacoesContatos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"client_id":{"type":"integer","description":"ID do cliente"},"position":{"type":"integer","description":"position"},"name":{"type":"string","description":"Nome (dado pessoal: mascarado sem permissão LGPD)"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"relation":{"type":"string","description":"relation"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"LocacoesContratos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"contract_type":{"type":"string","description":"contract type"},"status":{"type":"string","enum":["pendente","enviado","assinado","cancelado"],"description":"Situação"},"client_name":{"type":"string","description":"client name (dado pessoal: mascarado sem permissão LGPD)"},"client_cpf":{"type":"string","description":"client cpf (dado pessoal: mascarado sem permissão LGPD)"},"client_phone":{"type":"string","description":"client phone (dado pessoal: mascarado sem permissão LGPD)"},"signed_at":{"type":"string","format":"date-time","description":"signed at"},"sent_whatsapp_at":{"type":"string","format":"date-time","description":"sent whatsapp at"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"PosEncerramento":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"status":{"type":"string","enum":["draft","validated","closed","rejected"],"description":"Situação"},"km_inicial":{"type":"integer","description":"km inicial"},"km_final":{"type":"integer","description":"km final"},"km_rodados":{"type":"integer","description":"km rodados"},"dias_locados":{"type":"integer","description":"dias locados"},"media_km_dia":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"media km dia"},"km_excedente":{"type":"integer","description":"km excedente"},"multa_km_excedente":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"multa km excedente"},"multa_km_excedente_pago":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"multa km excedente pago"},"data_inicial":{"type":"string","format":"date-time","description":"data inicial"},"data_final":{"type":"string","format":"date-time","description":"data final"},"limpeza":{"type":"string","enum":["limpo","sujo","muito_sujo"],"description":"limpeza"},"combustivel":{"type":"string","enum":["vazio","1_4","1_2","3_4","cheio"],"description":"combustivel"},"abastecimento_tipo":{"type":"string","enum":["sem","parcial","integral"],"description":"abastecimento tipo"},"abastecimento_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"abastecimento valor"},"funcionando_normalmente":{"type":"boolean","description":"funcionando normalmente"},"entregue_com_danos":{"type":"boolean","description":"entregue com danos"},"possui_avarias":{"type":"boolean","description":"possui avarias"},"possui_avarias_novas":{"type":"boolean","description":"possui avarias novas"},"avarias_descricao":{"type":"string","description":"avarias descricao"},"avarias_valor_estimado":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"avarias valor estimado"},"avarias_total_pecas":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"avarias total pecas"},"avarias_observacao":{"type":"string","description":"avarias observacao"},"avarias_outros_descricao":{"type":"string","description":"avarias outros descricao"},"avarias_outros_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"avarias outros valor"},"vistoria_id":{"type":"integer","description":"vistoria id"},"caucao_valor_contrato":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"caucao valor contrato"},"caucao_saldo_disponivel":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"caucao saldo disponivel"},"caucao_descontos":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"caucao descontos"},"caucao_destino":{"type":"string","enum":["devolver","parcial","reter"],"description":"caucao destino"},"caucao_valor_devolver":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"caucao valor devolver"},"caucao_motivos_json":{"type":["object","array","string","null"],"description":"caucao motivos json"},"caucao_observacao":{"type":"string","description":"caucao observacao"},"caucao_retencao_ate":{"type":"string","format":"date","description":"caucao retencao ate"},"caucao_retencao_status":{"type":"string","enum":["nao_aplicavel","retida","parcialmente_liberada","liberada"],"description":"caucao retencao status"},"caucao_valor_liberado":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"caucao valor liberado"},"caucao_liberada_em":{"type":"string","format":"date-time","description":"caucao liberada em"},"caucao_liberada_por_nome":{"type":"string","description":"caucao liberada por nome"},"caucao_revisao_nota":{"type":"string","description":"caucao revisao nota"},"multas_qtd_pendentes":{"type":"integer","description":"multas qtd pendentes"},"multas_total_pendente":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"multas total pendente"},"multas_valor_cobrar":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"multas valor cobrar"},"multas_cobradas_ids":{"type":"string","description":"multas cobradas ids"},"multas_ciencia":{"type":"boolean","description":"multas ciencia"},"multas_observacao":{"type":"string","description":"multas observacao"},"fin_acordos_abertos":{"type":"integer","description":"fin acordos abertos"},"fin_parcelas_abertas":{"type":"integer","description":"fin parcelas abertas"},"fin_pix_pendente":{"type":"integer","description":"fin pix pendente"},"fin_total_pago":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"fin total pago"},"fin_total_pendente":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"fin total pendente"},"fin_descontos":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"fin descontos"},"fin_saldo_cliente":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"fin saldo cliente"},"fin_observacao":{"type":"string","description":"fin observacao"},"desbloqueio_qtd":{"type":"integer","description":"desbloqueio qtd"},"guincho_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"guincho valor"},"equipe_busca_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"equipe busca valor"},"diarias_atraso_qtd":{"type":"integer","description":"diarias atraso qtd"},"diarias_atraso_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"diarias atraso valor"},"alertas_json":{"type":["object","array","string","null"],"description":"alertas json"},"bloqueios_json":{"type":["object","array","string","null"],"description":"bloqueios json"},"created_by_name":{"type":"string","description":"created by name"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"validated_at":{"type":"string","format":"date-time","description":"validated at"},"closed_by_name":{"type":"string","description":"closed by name"},"closed_at":{"type":"string","format":"date-time","description":"closed at"},"closed_location":{"type":"string","description":"closed location (dado pessoal: mascarado sem permissão LGPD)"},"pdf_generated_at":{"type":"string","format":"date-time","description":"pdf generated at"},"notes":{"type":"string","description":"Observações"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"PosEncerramentoAcompanhamento":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"status":{"type":"string","description":"Situação"},"responsavel_user_id":{"type":"integer","description":"responsavel user id"},"checklist_json":{"type":["object","array","string","null"],"description":"checklist json"},"pendencias":{"type":"string","description":"pendencias"},"caucao_forma":{"type":"string","description":"caucao forma"},"caucao_data_prevista":{"type":"string","format":"date","description":"caucao data prevista"},"caucao_resp_user_id":{"type":"integer","description":"caucao resp user id"},"caucao_devolvida":{"type":"integer","description":"caucao devolvida"},"caucao_devolvida_em":{"type":"string","format":"date-time","description":"caucao devolvida em"},"data_conclusao":{"type":"string","format":"date-time","description":"data conclusao"},"notes":{"type":"string","description":"Observações"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"PosEncerramentoEventos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"closure_id":{"type":"integer","description":"closure id"},"rental_id":{"type":"integer","description":"ID da locação"},"event_type":{"type":"string","description":"event type"},"user_id":{"type":"integer","description":"user id"},"user_name":{"type":"string","description":"user name"},"payload_json":{"type":["object","array","string","null"],"description":"payload json"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"PosEncerramentoArquivos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"closure_id":{"type":"integer","description":"closure id"},"rental_id":{"type":"integer","description":"ID da locação"},"category":{"type":"string","description":"category"},"original_name":{"type":"string","description":"original name"},"mime_type":{"type":"string","description":"mime type"},"byte_size":{"type":"integer","description":"byte size"},"uploaded_by_name":{"type":"string","description":"uploaded by name"},"uploaded_at":{"type":"string","format":"date-time","description":"uploaded at"}}},"Vistorias":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"rental_id":{"type":"integer","description":"ID da locação"},"client_id":{"type":"integer","description":"ID do cliente"},"client_cpf":{"type":"string","description":"client cpf (dado pessoal: mascarado sem permissão LGPD)"},"client_name":{"type":"string","description":"client name (dado pessoal: mascarado sem permissão LGPD)"},"plate":{"type":"string","description":"Placa"},"km_atual":{"type":"integer","description":"km atual"},"km_ultima_troca_oleo":{"type":"integer","description":"km ultima troca oleo"},"km_excedente":{"type":"integer","description":"km excedente"},"multa_km_alerta":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"multa km alerta"},"inspector_user_id":{"type":"integer","description":"inspector user id"},"inspector_name":{"type":"string","description":"inspector name"},"observacoes":{"type":"string","description":"observacoes"},"ia_summary_json":{"type":["object","array","string","null"],"description":"ia summary json"},"ia_custo_total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"ia custo total"},"ia_processed_at":{"type":"string","format":"date-time","description":"ia processed at"},"has_avarias":{"type":"boolean","description":"has avarias"},"status":{"type":"string","enum":["rascunho","aberta","validada","arquivada"],"description":"Situação"},"validada_por":{"type":"integer","description":"validada por"},"validada_em":{"type":"string","format":"date-time","description":"validada em"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"VistoriasAvarias":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vistoria_id":{"type":"integer","description":"vistoria id"},"area":{"type":"string","description":"area"},"area_label":{"type":"string","description":"area label"},"tem_avaria":{"type":"boolean","description":"tem avaria"},"descricao":{"type":"string","description":"descricao"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"VistoriasFotos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vistoria_id":{"type":"integer","description":"vistoria id"},"categoria":{"type":"string","description":"categoria"},"file_size":{"type":"integer","description":"file size"},"uploaded_at":{"type":"string","format":"date-time","description":"uploaded at"}}},"VistoriasEntradaSaida":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"plate":{"type":"string","description":"Placa"},"inspection_type":{"type":"string","enum":["entrada","saida"],"description":"inspection type"},"inspection_mode":{"type":"string","enum":["vistoria_simples","vistoria_completa"],"description":"inspection mode"},"status":{"type":"string","enum":["rascunho","concluida","cancelada"],"description":"Situação"},"fuel_level":{"type":"string","description":"fuel level"},"overall_condition":{"type":"string","description":"overall condition"},"inspector_name":{"type":"string","description":"inspector name"},"inspector_id":{"type":"integer","description":"inspector id"},"km":{"type":"integer","description":"km"},"notes":{"type":"string","description":"Observações"},"items_data":{"type":["object","array","string","null"],"description":"items data"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"completed_at":{"type":"string","format":"date-time","description":"completed at"}}},"Pagamentos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor da cobrança (após baixa: valor efetivamente recebido)"},"original_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor original antes de ajuste"},"status":{"type":"string","description":"Situação"},"method":{"type":"string","enum":["pix","cartao","dinheiro","transferencia"],"description":"Forma de pagamento"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"paid_at":{"type":"string","format":"date-time","description":"Pago em"},"note":{"type":"string","description":"Observação"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"charge2_at":{"type":"string","format":"date-time","description":"2ª mensagem de cobrança enviada em"},"charge3_at":{"type":"string","format":"date-time","description":"3ª mensagem enviada em"},"bank_transaction_id":{"type":"string","description":"bank transaction id"},"scheduled_charge":{"type":"boolean","description":"scheduled charge"},"scheduled_charged_at":{"type":"string","format":"date-time","description":"scheduled charged at"},"revenue_center":{"type":"string","enum":["mapogos","premium"],"description":"Carteira de receita (null = segue a carteira da locação)"}}},"PagamentosComprovantes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"payment_id":{"type":"integer","description":"payment id"},"row_type":{"type":"string","description":"row type"},"drive_node_id":{"type":"integer","description":"drive node id"},"name":{"type":"string","description":"Nome"},"mime":{"type":"string","description":"mime"},"created_by":{"type":"integer","description":"created by"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"CobrancasPix":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"provider":{"type":"string","description":"provider"},"txid":{"type":"string","description":"txid"},"charge_type":{"type":"string","enum":["cob","cobv"],"description":"charge type"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"installment_due_date":{"type":"string","format":"date","description":"installment due date"},"status":{"type":"string","description":"Situação"},"qr_code":{"type":"string","description":"qr code (dado pessoal: mascarado sem permissão LGPD)"},"ticket_url":{"type":"string","description":"ticket url (dado pessoal: mascarado sem permissão LGPD)"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"Taxas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"status":{"type":"string","description":"Situação"},"method":{"type":"string","enum":["pix","cartao","dinheiro","transferencia"],"description":"Forma de pagamento"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"paid_at":{"type":"string","format":"date-time","description":"Pago em"},"note":{"type":"string","description":"Observação"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"revenue_center":{"type":"string","enum":["mapogos","premium"],"description":"revenue center"}}},"Acordos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"rental_id":{"type":"integer","description":"ID da locação"},"client_id":{"type":"integer","description":"ID do cliente"},"title":{"type":"string","description":"title"},"status":{"type":"string","enum":["aberto","em_dia","atrasado","quitado","cancelado","encerrado"],"description":"Situação"},"total_original":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total original"},"total_interest":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total interest"},"total_fines":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total fines"},"total_discount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total discount"},"total_final":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total final"},"notes":{"type":"string","description":"Observações"},"created_by":{"type":"integer","description":"created by"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"cancelled_at":{"type":"string","format":"date-time","description":"cancelled at"},"cancelled_by":{"type":"integer","description":"cancelled by"}}},"AcordosParcelas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"agreement_id":{"type":"integer","description":"ID do acordo"},"installment_no":{"type":"integer","description":"installment no"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"paid_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"paid amount"},"status":{"type":"string","enum":["pendente","pago","vencido","cancelado"],"description":"Situação"},"paid_at":{"type":"string","format":"date-time","description":"Pago em"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"AcordosItens":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"agreement_id":{"type":"integer","description":"ID do acordo"},"item_type":{"type":"string","enum":["multa_atraso","multa_contratual","avarias","diarias_excedentes","taxa_limpeza","combustivel","franquia_seguro","outras","multas_transito","diaria_atraso","multa_km_excedido","multa_troca_oleo","valor_pago"],"description":"Tipo do item"},"description":{"type":"string","description":"Descrição"},"qty":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Quantidade"},"unit_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"unit amount"},"total_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor total"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"Despesas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"paid_at":{"type":"string","format":"date","description":"Pago em"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"category":{"type":"string","description":"category"},"subcategory":{"type":"string","description":"subcategory"},"supplier":{"type":"string","description":"supplier"},"supplier_cnpj":{"type":"string","description":"supplier cnpj"},"description":{"type":"string","description":"Descrição"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"payment_method":{"type":"string","enum":["pix","cartao","dinheiro","transferencia","boleto","debito_automatico","outros"],"description":"payment method"},"status":{"type":"string","enum":["pendente","pago","cancelado","contestado"],"description":"Situação"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"rental_id":{"type":"integer","description":"ID da locação"},"os_id":{"type":"integer","description":"os id"},"nf_number":{"type":"string","description":"nf number"},"notes":{"type":"string","description":"Observações"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"LancamentosFinanceiros":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"ref_type":{"type":"string","description":"ref type"},"ref_id":{"type":"integer","description":"ref id"},"description":{"type":"string","description":"Descrição"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"status":{"type":"string","enum":["pendente","pago","cancelado"],"description":"Situação"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"}}},"ConciliacaoBancaria":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"bank_code":{"type":"string","description":"bank code"},"bank_name":{"type":"string","description":"bank name"},"posted_at":{"type":"string","format":"date-time","description":"posted at"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"direction":{"type":"string","enum":["in","out"],"description":"direction"},"description":{"type":"string","description":"Descrição"},"counterpart_name":{"type":"string","description":"counterpart name (dado pessoal: mascarado sem permissão LGPD)"},"counterpart_doc":{"type":"string","description":"counterpart doc (dado pessoal: mascarado sem permissão LGPD)"},"counterpart_bank":{"type":"string","description":"counterpart bank"},"reconcile_status":{"type":"string","enum":["pending","matched","manual","ignored"],"description":"reconcile status"},"match_type":{"type":"string","enum":["payment","expense","agreement","manual"],"description":"match type"},"match_id":{"type":"integer","description":"match id"},"match_confidence":{"type":"number","description":"match confidence"},"match_reason":{"type":"string","description":"match reason"},"source":{"type":"string","enum":["webhook","ofx","csv","manual","ofx_manual"],"description":"source"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"reconciled_at":{"type":"string","format":"date-time","description":"reconciled at"}}},"Veiculos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"type":{"type":"string","enum":["carro","moto"],"description":"type"},"brand":{"type":"string","description":"Marca"},"model":{"type":"string","description":"Modelo"},"year":{"type":"integer","description":"year"},"manufacture_year":{"type":"integer","description":"manufacture year"},"model_year":{"type":"integer","description":"model year"},"plate":{"type":"string","description":"Placa"},"renavam":{"type":"string","description":"renavam"},"chassi":{"type":"string","description":"chassi"},"status":{"type":"string","enum":["disponivel","alugado","manutencao","inativo","vendido"],"description":"disponivel | alugado | manutencao | inativo | vendido"},"fleet_type":{"type":"string","enum":["mapogos","premium"],"description":"Carteira (mapogos | premium)"},"tracker_status":{"type":"string","enum":["desbloqueado","bloqueado"],"description":"Estado do bloqueio no rastreador"},"tracker_imei":{"type":"string","description":"tracker imei (dado pessoal: mascarado sem permissão LGPD)"},"tracker_chip":{"type":"string","description":"tracker chip (dado pessoal: mascarado sem permissão LGPD)"},"daily_rate":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"daily rate"},"price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"price"},"current_km":{"type":"integer","description":"current km"},"restricao":{"type":"boolean","description":"1 = veículo com restrição (não pode ser locado)"},"restricao_obs":{"type":"string","description":"restricao obs"},"restricao_at":{"type":"string","format":"date-time","description":"restricao at"},"data_cancelamento_contrato":{"type":"string","format":"date","description":"data cancelamento contrato"},"crlv_uploaded_at":{"type":"string","format":"date-time","description":"crlv uploaded at"},"notes":{"type":"string","description":"Observações"},"deleted_at":{"type":"string","format":"date-time","description":"deleted at"},"delete_reason":{"type":"string","description":"delete reason"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"Multas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"rental_id":{"type":"integer","description":"ID da locação"},"fine_number":{"type":"string","description":"AIT (número do auto de infração)"},"description":{"type":"string","description":"Descrição"},"orgao_autuador":{"type":"string","description":"orgao autuador"},"municipio":{"type":"string","description":"municipio"},"local_infracao":{"type":"string","description":"local infracao"},"pontos_gravidade":{"type":"string","description":"pontos gravidade"},"situacao_detran":{"type":"string","description":"situacao detran"},"data_hora_infracao":{"type":"string","description":"data hora infracao"},"issue_date":{"type":"string","format":"date","description":"issue date"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"fine_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"fine amount"},"admin_fee":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Taxa administrativa"},"total_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Multa + taxa administrativa"},"status":{"type":"string","enum":["pendente","cobrado","adicionado_acordo","pago","contestado","pago_cliente"],"description":"pendente | cobrado | adicionado_acordo | pago | contestado | pago_cliente"},"added_to_agreement_id":{"type":"integer","description":"added to agreement id"},"consulted_at":{"type":"string","format":"date-time","description":"consulted at"},"baixa_obs":{"type":"string","description":"baixa obs"},"baixa_user":{"type":"string","description":"baixa user"},"baixa_at":{"type":"string","format":"date-time","description":"baixa at"},"client_notified_at":{"type":"string","format":"date-time","description":"client notified at"},"team_notified_at":{"type":"string","format":"date-time","description":"team notified at"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"DebitosVeiculares":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"type":{"type":"string","enum":["ipva","licenciamento","dpvat","servicos_bancarios","multa_semob","multa_detran","outro"],"description":"type"},"reference_year":{"type":"integer","description":"reference year"},"description":{"type":"string","description":"Descrição"},"amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"status":{"type":"string","enum":["pendente","quitado","parcelado","isento","vencido"],"description":"Situação"},"sync_source":{"type":"string","description":"sync source"},"synced_at":{"type":"string","format":"date-time","description":"synced at"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"Licenciamento":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"placa":{"type":"string","description":"Placa"},"renavam":{"type":"string","description":"renavam"},"exercicio":{"type":"string","description":"exercicio"},"data_limite":{"type":"string","format":"date","description":"data limite"},"valor_total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"valor total"},"valor_licenciamento":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"valor licenciamento"},"proprietario":{"type":"string","description":"proprietario"},"itens":{"type":["object","array","string","null"],"description":"itens"},"situacao":{"type":"string","description":"situacao"},"erro":{"type":"string","description":"erro"},"consulted_at":{"type":"string","format":"date-time","description":"consulted at"},"linha_digitavel":{"type":"string","description":"linha digitavel"},"codigo_barras":{"type":"string","description":"codigo barras"},"boleto_venc":{"type":"string","format":"date","description":"boleto venc"},"boleto_valor":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"boleto valor"},"gravame_financeira":{"type":"string","description":"gravame financeira"},"gravame_restricao":{"type":"string","description":"gravame restricao"},"gravame_contrato":{"type":"string","description":"gravame contrato"},"gravame_data":{"type":"string","format":"date","description":"gravame data"},"gravame_situacao":{"type":"string","description":"gravame situacao"},"gravame_at":{"type":"string","format":"date-time","description":"gravame at"},"observacao":{"type":"string","description":"observacao"},"observacao_at":{"type":"string","format":"date-time","description":"observacao at"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"RealCondutor":{"type":"object","properties":{"placa":{"type":"string","description":"Placa"},"renavam":{"type":"string","description":"renavam"},"modelo":{"type":"string","description":"modelo"},"empresa_cnpj":{"type":"string","description":"empresa cnpj"},"empresa_nome":{"type":"string","description":"empresa nome"},"tem_condutor":{"type":"boolean","description":"tem condutor"},"condutor_nome":{"type":"string","description":"condutor nome (dado pessoal: mascarado sem permissão LGPD)"},"condutor_cpf":{"type":"string","description":"condutor cpf (dado pessoal: mascarado sem permissão LGPD)"},"condutor_cnh":{"type":"string","description":"condutor cnh (dado pessoal: mascarado sem permissão LGPD)"},"condutor_desde":{"type":"string","format":"date-time","description":"condutor desde"},"autorizacao":{"type":"string","description":"autorizacao"},"ultimo_condutor":{"type":"string","description":"ultimo condutor (dado pessoal: mascarado sem permissão LGPD)"},"excluido_em":{"type":"string","format":"date-time","description":"excluido em"},"motivo_exclusao":{"type":"string","description":"motivo exclusao"},"mudou_em":{"type":"string","format":"date-time","description":"mudou em"},"verificado_em":{"type":"string","format":"date-time","description":"verificado em"}}},"IndicacoesCondutor":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"rental_id":{"type":"integer","description":"ID da locação"},"client_id":{"type":"integer","description":"ID do cliente"},"plate":{"type":"string","description":"Placa"},"status":{"type":"string","description":"Situação"},"motivo":{"type":"string","description":"motivo"},"cnh_on_file":{"type":"integer","description":"cnh on file"},"cnh_requested_at":{"type":"string","format":"date-time","description":"cnh requested at"},"cnh_request_count":{"type":"integer","description":"cnh request count"},"ready_at":{"type":"string","format":"date-time","description":"ready at"},"indicated_at":{"type":"string","format":"date-time","description":"indicated at"},"deadline":{"type":"string","format":"date","description":"deadline"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"ManutencaoPreditiva":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"item":{"type":"string","description":"item"},"interval_km":{"type":"integer","description":"interval km"},"last_done_km":{"type":"integer","description":"last done km"},"last_done_at":{"type":"string","format":"date","description":"last done at"},"next_due_km":{"type":"integer","description":"next due km"},"next_due_at":{"type":"string","format":"date","description":"next due at"},"days_remaining":{"type":"integer","description":"days remaining"},"km_remaining":{"type":"integer","description":"km remaining"},"status":{"type":"string","enum":["ok","due_soon","overdue"],"description":"Situação"},"estimated_cost":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"estimated cost"},"notified_at":{"type":"string","format":"date-time","description":"notified at"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"OrdensServico":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"plate":{"type":"string","description":"Placa"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"vehicle_model":{"type":"string","description":"vehicle model"},"client_id":{"type":"integer","description":"ID do cliente"},"os_type":{"type":"string","enum":["aluguel","venda"],"description":"aluguel | venda"},"status":{"type":"string","description":"aberta | concluida"},"km_open":{"type":"integer","description":"km open"},"km_close":{"type":"integer","description":"km close"},"responsible":{"type":"string","description":"responsible"},"mechanic_name":{"type":"string","description":"mechanic name"},"mechanic_user_id":{"type":"integer","description":"mechanic user id"},"summary":{"type":"string","description":"summary"},"diagnosis":{"type":"string","description":"diagnosis"},"final_diagnosis":{"type":"string","description":"final diagnosis"},"notes":{"type":"string","description":"Observações"},"final_notes":{"type":"string","description":"final notes"},"total_parts":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total parts"},"total_services":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total services"},"discount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"discount"},"total_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor total"},"due_date":{"type":"string","format":"date","description":"Vencimento"},"destaque":{"type":"boolean","description":"destaque"},"calc_excluded":{"type":"boolean","description":"1 = fora do cálculo de custos"},"calc_excluded_reason":{"type":"string","description":"calc excluded reason"},"opened_at":{"type":"string","format":"date-time","description":"opened at"},"released_at":{"type":"string","format":"date-time","description":"released at"},"closed_at":{"type":"string","format":"date-time","description":"closed at"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"closed_by_user_id":{"type":"integer","description":"closed by user id"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"OrdensServicoItens":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"os_id":{"type":"integer","description":"os id"},"item_type":{"type":"string","enum":["part","service"],"description":"Tipo do item"},"description":{"type":"string","description":"Descrição"},"stock_item_id":{"type":"integer","description":"stock item id"},"qty":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Quantidade"},"unit_price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Preço unitário"},"total_price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total price"},"notes":{"type":"string","description":"Observações"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"}}},"OrdensServicoLegado":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"plate":{"type":"string","description":"Placa"},"mechanic_id":{"type":"integer","description":"mechanic id"},"status":{"type":"string","enum":["ABERTA","CONCLUIDA","CANCELADA"],"description":"Situação"},"opened_at":{"type":"string","format":"date-time","description":"opened at"},"released_at":{"type":"string","format":"date-time","description":"released at"},"km_current":{"type":"integer","description":"km current"},"diagnosis":{"type":"string","description":"diagnosis"},"obs":{"type":"string","description":"obs"},"parts_total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"parts total"},"services_total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"services total"},"total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"log_origem":{"type":"string","description":"Origem do registro (sistema novo/antigo)"}}},"Orcamentos":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"client_id":{"type":"integer","description":"ID do cliente"},"client_name":{"type":"string","description":"client name (dado pessoal: mascarado sem permissão LGPD)"},"vehicle_id":{"type":"integer","description":"ID do veículo"},"plate":{"type":"string","description":"Placa"},"vehicle_model":{"type":"string","description":"vehicle model"},"total_amount":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Valor total"},"status":{"type":"string","description":"Situação"},"notes":{"type":"string","description":"Observações"},"validade_dias":{"type":"integer","description":"validade dias"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"sent_at":{"type":"string","format":"date-time","description":"sent at"}}},"OrcamentosItens":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"orcamento_id":{"type":"integer","description":"orcamento id"},"item_type":{"type":"string","description":"Tipo do item"},"description":{"type":"string","description":"Descrição"},"qty":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Quantidade"},"unit_price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Preço unitário"},"total":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"total"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"EstoquePecas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"code":{"type":"string","description":"code"},"name":{"type":"string","description":"Nome"},"description":{"type":"string","description":"Descrição"},"category":{"type":"string","description":"category"},"unit":{"type":"string","description":"unit"},"min_stock":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"min stock"},"current_stock":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"current stock"},"unit_price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Preço unitário"},"supplier":{"type":"string","description":"supplier"},"location":{"type":"string","description":"location"},"reuse_days":{"type":"integer","description":"reuse days"},"active":{"type":"boolean","description":"Ativo (1/0)"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"EstoqueMovimentacoes":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"part_id":{"type":"integer","description":"part id"},"stock_item_id":{"type":"integer","description":"stock item id"},"movement_type":{"type":"string","enum":["entrada","saida","ajuste"],"description":"movement type"},"qty":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Quantidade"},"unit_cost":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"unit cost"},"ref_type":{"type":"string","description":"ref type"},"ref_id":{"type":"integer","description":"ref id"},"notes":{"type":"string","description":"Observações"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"}}},"EstoqueSaldo":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"code":{"type":"string","description":"code"},"name":{"type":"string","description":"Nome"},"category":{"type":"string","description":"category"},"unit":{"type":"string","description":"unit"},"current_stock":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"current stock"},"min_stock":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"min stock"},"unit_price":{"type":"string","pattern":"^-?\\d+\\.\\d{2}$","description":"Preço unitário"},"location":{"type":"string","description":"location"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"},"abaixo_minimo":{"type":"boolean","description":"abaixo minimo"}}},"CentralAtendimento":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"contact_name":{"type":"string","description":"contact name (dado pessoal: mascarado sem permissão LGPD)"},"client_id":{"type":"integer","description":"ID do cliente"},"rental_id":{"type":"integer","description":"ID da locação"},"sector_id":{"type":"integer","description":"sector id"},"status":{"type":"string","description":"novo | em_atendimento | aguardando_cliente | finalizado"},"assigned_user_id":{"type":"integer","description":"assigned user id"},"unread_count":{"type":"integer","description":"unread count"},"last_message_at":{"type":"string","format":"date-time","description":"last message at"},"last_message_preview":{"type":"string","description":"last message preview (dado pessoal: mascarado sem permissão LGPD)"},"last_direction":{"type":"string","description":"last direction"},"last_inbound_at":{"type":"string","format":"date-time","description":"last inbound at"},"awaiting_response":{"type":"integer","description":"awaiting response"},"awaiting_agent":{"type":"integer","description":"awaiting agent"},"first_response_seconds":{"type":"integer","description":"first response seconds"},"resp_time_sum":{"type":"integer","description":"resp time sum"},"resp_time_count":{"type":"integer","description":"resp time count"},"is_group":{"type":"integer","description":"is group"},"started_by_user_id":{"type":"integer","description":"started by user id"},"closed_at":{"type":"string","format":"date-time","description":"closed at"},"closed_by_user_id":{"type":"integer","description":"closed by user id"},"created_at":{"type":"string","format":"date-time","description":"Criado em"},"updated_at":{"type":"string","format":"date-time","description":"Atualizado em"}}},"CentralMensagens":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"ticket_id":{"type":"integer","description":"ticket id"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"direction":{"type":"string","description":"direction"},"msg_type":{"type":"string","description":"msg type"},"body":{"type":"string","description":"body (dado pessoal: mascarado sem permissão LGPD)"},"media_url":{"type":"string","description":"media url (dado pessoal: mascarado sem permissão LGPD)"},"from_me":{"type":"integer","description":"from me"},"author_user_id":{"type":"integer","description":"author user id"},"sender_name":{"type":"string","description":"sender name (dado pessoal: mascarado sem permissão LGPD)"},"status":{"type":"string","description":"Situação"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"CentralSetores":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"name":{"type":"string","description":"Nome"},"color":{"type":"string","description":"color"},"sort":{"type":"integer","description":"sort"},"active":{"type":"integer","description":"Ativo (1/0)"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"CentralEtiquetas":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"name":{"type":"string","description":"Nome"},"color":{"type":"string","description":"color"},"sort":{"type":"integer","description":"sort"},"active":{"type":"integer","description":"Ativo (1/0)"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"WhatsappMensagens":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"context_type":{"type":"string","enum":["rental","os","agreement","other"],"description":"context type"},"context_id":{"type":"integer","description":"context id"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"body":{"type":"string","description":"body (dado pessoal: mascarado sem permissão LGPD)"},"status":{"type":"string","description":"Situação"},"charge_step":{"type":"integer","description":"charge step"},"retry_count":{"type":"integer","description":"retry count"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"PreLeads":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"phone":{"type":"string","description":"Telefone (dado pessoal: mascarado sem permissão LGPD)"},"client_id":{"type":"integer","description":"ID do cliente"},"stage":{"type":"string","enum":["greeting","collecting_doc","doc_received","scoring","approved","rejected","converted","abandoned"],"description":"stage"},"serasa_score":{"type":"integer","description":"serasa score (dado pessoal: mascarado sem permissão LGPD)"},"liveness_ok":{"type":"boolean","description":"liveness ok"},"face_match_ok":{"type":"boolean","description":"face match ok"},"decision":{"type":"string","enum":["aprovado","revisar","recusado"],"description":"decision"},"decision_reason":{"type":"string","description":"decision reason"},"vehicle_preference":{"type":"string","description":"vehicle preference"},"rental_days_pref":{"type":"integer","description":"rental days pref"},"last_interaction":{"type":"string","format":"date-time","description":"last interaction"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"Drive":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"parent_id":{"type":"integer","description":"parent id"},"node_type":{"type":"string","enum":["folder","file"],"description":"node type"},"name":{"type":"string","description":"Nome"},"mime_type":{"type":"string","description":"mime type"},"size_bytes":{"type":"integer","description":"size bytes"},"created_by_user_id":{"type":"integer","description":"ID do usuário que criou"},"created_by_name":{"type":"string","description":"created by name"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}},"DocumentosIa":{"type":"object","properties":{"id":{"type":"integer","description":"Identificador"},"doc_type":{"type":"string","description":"doc type"},"ref_type":{"type":"string","description":"ref type"},"ref_id":{"type":"integer","description":"ref id"},"title":{"type":"string","description":"title"},"content_text":{"type":"string","description":"content text (dado pessoal: mascarado sem permissão LGPD)"},"sent_to":{"type":"string","description":"sent to (dado pessoal: mascarado sem permissão LGPD)"},"sent_at":{"type":"string","format":"date-time","description":"sent at"},"status":{"type":"string","enum":["draft","sent","signed","archived"],"description":"Situação"},"generated_by_user_id":{"type":"integer","description":"generated by user id"},"created_at":{"type":"string","format":"date-time","description":"Criado em"}}}}},"webhooks":{"locacao.criada":{"post":{"summary":"Novo contrato de locação ou venda criado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"locacao.encerrada":{"post":{"summary":"Contrato encerrado/finalizado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"pagamento.criado":{"post":{"summary":"Nova cobrança gerada.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"pagamento.confirmado":{"post":{"summary":"Cobrança baixada como paga (PIX, manual ou banco).","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"pagamento.vencido":{"post":{"summary":"Cobrança pendente passou do vencimento (disparado no dia seguinte ao vencimento).","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"pagamento.cancelado":{"post":{"summary":"Cobrança cancelada.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"veiculo.criado":{"post":{"summary":"Veículo cadastrado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"veiculo.bloqueado":{"post":{"summary":"Rastreador passou para bloqueado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"veiculo.desbloqueado":{"post":{"summary":"Rastreador passou para desbloqueado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"cliente.criado":{"post":{"summary":"Cliente cadastrado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"cliente.atualizado":{"post":{"summary":"Cadastro do cliente alterado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"os.criada":{"post":{"summary":"Ordem de serviço aberta.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"os.concluida":{"post":{"summary":"Ordem de serviço concluída.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"vistoria.concluida":{"post":{"summary":"Vistoria validada.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"acordo.criado":{"post":{"summary":"Acordo/parcelamento criado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"acordo.quitado":{"post":{"summary":"Acordo quitado.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"acordo.parcela_paga":{"post":{"summary":"Parcela de acordo paga.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}},"multa.criada":{"post":{"summary":"Multa registrada para um veículo.","parameters":[{"name":"X-Mapogos-Assinatura","in":"header","schema":{"type":"string"}},{"name":"X-Mapogos-Timestamp","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Recebido"}}}}}}