{"openapi":"3.0.0","info":{"title":"Sistema Baterias","version":"1.0.0","description":"API REST do Sistema de Programacao e Financeiro de Baterias."},"servers":[{"url":"https:\/\/beta.evonegocios.com\/api\/v1","description":"API v1"}],"tags":[{"name":"Autenticacao"},{"name":"Linhas de produtos"},{"name":"Produtos"},{"name":"Programacoes"},{"name":"Financeiro"},{"name":"Importacoes"},{"name":"Auditoria"},{"name":"Relatorios"},{"name":"Usuarios"},{"name":"Configuracoes"},{"name":"Dashboard"},{"name":"Clientes"},{"name":"Entregas"},{"name":"Papeis"},{"name":"Anexos"},{"name":"Linhas de produto"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Sanctum"}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string"},"message":{"type":"string"},"errors":{"type":"object"},"traceId":{"type":"string"}},"additionalProperties":false}}},"security":[{"bearerAuth":[]}],"paths":{"\/api\/v1\/auth\/login":{"post":{"operationId":"login","tags":["Autenticacao"],"summary":"Realizar login","description":"Autentica o usu\u00e1rio e retorna token de acesso.\n\n**Tool**: `auth_login`\n\n**Permissoes**: _publica_\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"user":{"type":"object"},"permissions":{"type":"array","items":{"type":"string"}},"auth_mode":{"type":"string","enum":["session","token"]},"token":{"type":["string","null"]},"token_type":{"type":["string","null"]},"expires_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"password":{"type":"string"},"mode":{"type":"string","enum":["session","token"],"default":"token"},"device_name":{"type":["string","null"]},"remember":{"type":["boolean","null"]}},"additionalProperties":false,"required":["email","password"]}}}},"x-required-permissions":[],"x-idempotent":false}},"\/api\/v1\/auth\/logout":{"post":{"operationId":"logout","tags":["Autenticacao"],"summary":"Encerrar sess\u00e3o","description":"Revoga o token atual do usu\u00e1rio autenticado.\n\n**Tool**: `auth_logout`\n\n**Permissoes**: _publica_\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"revoked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":[],"x-idempotent":true}},"\/api\/v1\/auth\/session":{"get":{"operationId":"getAuthSession","tags":["Autenticacao"],"summary":"Obter sess\u00e3o","description":"Retorna dados da sess\u00e3o autenticada.\n\n**Tool**: `auth_session`\n\n**Permissoes**: _publica_\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"user":{"type":"object"},"permissions":{"type":"array","items":{"type":"string"}},"auth_mode":{"type":"string","enum":["session","token"]},"token":{"type":["object","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":[],"x-idempotent":true}},"\/api\/v1\/auth\/forgot-password":{"post":{"operationId":"forgotPassword","tags":["Autenticacao"],"summary":"Solicitar recuperacao","description":"Gera (ou dispara) token de recuperacao de senha.\n\n**Tool**: `auth_forgot_password`\n\n**Permissoes**: _publica_\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"token":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"additionalProperties":false,"required":["email"]}}}},"x-required-permissions":[],"x-idempotent":true}},"\/api\/v1\/auth\/reset-password":{"post":{"operationId":"resetPassword","tags":["Autenticacao"],"summary":"Redefinir senha","description":"Confirma token e define uma nova senha.\n\n**Tool**: `auth_reset_password`\n\n**Permissoes**: _publica_\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"token":{"type":"string"},"password":{"type":"string","minLength":8},"password_confirmation":{"type":"string"}},"additionalProperties":false,"required":["email","token","password","password_confirmation"]}}}},"x-required-permissions":[],"x-idempotent":false}},"\/api\/v1\/auth\/change-password":{"post":{"operationId":"changePassword","tags":["Autenticacao"],"summary":"Alterar senha","description":"Altera a senha do usu\u00e1rio autenticado.\n\n**Tool**: `auth_change_password`\n\n**Permissoes**: _publica_\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"user":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"email":{"type":"string","format":"email"},"failed_login_attempts":{"type":"integer"},"locked_until":{"type":["string","null"],"format":"date-time"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"current_password":{"type":"string"},"new_password":{"type":"string"},"new_password_confirmation":{"type":"string"},"revoke_other_tokens":{"type":["boolean","null"]}},"additionalProperties":false,"required":["current_password","new_password","new_password_confirmation"]}}}},"x-required-permissions":[],"x-idempotent":false}},"\/api\/v1\/auth\/tokens":{"get":{"operationId":"listAuthTokens","tags":["Autenticacao"],"summary":"Listar tokens","description":"Lista os tokens do usu\u00e1rio autenticado.\n\n**Tool**: `auth_list_tokens`\n\n**Permissoes**: `api-tokens.manage`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}},"created_at":{"type":["string","null"],"format":"date-time"},"last_used_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["api-tokens.manage"],"x-idempotent":true},"post":{"operationId":"createAuthToken","tags":["Autenticacao"],"summary":"Criar token","description":"Cria um novo token com escopos e opcao de expira\u00e7\u00e3o.\n\n**Tool**: `auth_create_token`\n\n**Permissoes**: `api-tokens.manage`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"token_type":{"type":"string"},"expires_at":{"type":["string","null"],"format":"date-time"},"token_record":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}},"created_at":{"type":["string","null"],"format":"date-time"},"last_used_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"abilities":{"type":["array","null"],"items":{"type":"string"}},"expires_in_hours":{"type":["integer","null"],"minimum":1,"maximum":43800}},"additionalProperties":false,"required":["name"]}}}},"x-required-permissions":["api-tokens.manage"],"x-idempotent":false}},"\/api\/v1\/auth\/tokens\/{id}":{"delete":{"operationId":"deleteAuthToken","tags":["Autenticacao"],"summary":"Revogar token","description":"Revoga um token espec\u00edfico.\n\n**Tool**: `auth_delete_token`\n\n**Permissoes**: `api-tokens.manage`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["api-tokens.manage"],"x-idempotent":true}},"\/api\/v1\/product-lines":{"get":{"operationId":"listProductLines","tags":["Linhas de produtos"],"summary":"Listar linhas de produtos","description":"Lista as linhas de produtos com filtros e paginacao.\n\n**Tool**: `list_product_lines`\n\n**Permissoes**: `product-lines.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["product-lines.read"],"x-idempotent":true},"post":{"operationId":"createProductLine","tags":["Linhas de produtos"],"summary":"Criar linha de produtos","description":"Cadastra uma nova linha de produtos.\n\n**Tool**: `create_product_line`\n\n**Permissoes**: `product-lines.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"code":{"type":"string","maxLength":40},"description":{"type":["string","null"]},"display_order":{"type":"integer","minimum":0},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false,"required":["name","code"]}}}},"x-required-permissions":["product-lines.create"],"x-idempotent":false}},"\/api\/v1\/product-lines\/{id}":{"get":{"operationId":"getProductLine","tags":["Linhas de produtos"],"summary":"Detalhar linha de produtos","description":"Retorna os dados de uma linha de produtos.\n\n**Tool**: `get_product_line`\n\n**Permissoes**: `product-lines.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["product-lines.read"],"x-idempotent":true},"patch":{"operationId":"updateProductLine","tags":["Linhas de produtos"],"summary":"Editar linha de produtos","description":"Atualiza uma linha de produtos existente.\n\n**Tool**: `update_product_line`\n\n**Permissoes**: `product-lines.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"color":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"x-required-permissions":["product-lines.update"],"x-idempotent":true},"delete":{"operationId":"deleteProductLine","tags":["Linhas de produtos"],"summary":"Excluir linha de produtos","description":"Exclui logicamente uma linha de produtos.\n\n**Tool**: `delete_product_line`\n\n**Permissoes**: `product-lines.delete`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["product-lines.delete"],"x-idempotent":true}},"\/api\/v1\/products":{"get":{"operationId":"listProducts","tags":["Produtos"],"summary":"Listar produtos","description":"Lista produtos cadastrados com filtros e paginacao.\n\n**Tool**: `list_products`\n\n**Permissoes**: `products.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"product_line_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"capacity_ah","in":"query","required":false,"schema":{"type":"integer"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"product_line_id":{"type":"integer","minimum":1},"capacity_ah":{"type":"integer"},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"active":{"type":"boolean"},"display_order":{"type":"integer"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["products.read"],"x-idempotent":true},"post":{"operationId":"createProduct","tags":["Produtos"],"summary":"Criar produto","description":"Cadastra um novo produto.\n\n**Tool**: `create_product`\n\n**Permissoes**: `products.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"product_line_id":{"type":"integer","minimum":1},"capacity_ah":{"type":"integer"},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"active":{"type":"boolean"},"display_order":{"type":"integer"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"product_line_id":{"type":"integer","minimum":1},"code":{"type":"string","maxLength":40},"description":{"type":"string","maxLength":200},"capacity_ah":{"type":"integer","minimum":1},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"display_order":{"type":"integer"},"active":{"type":"boolean"},"notes":{"type":["string","null"]}},"additionalProperties":false,"required":["product_line_id","code","description","capacity_ah","unit_price","unit_weight_kg"]}}}},"x-required-permissions":["products.create"],"x-idempotent":false}},"\/api\/v1\/products\/{id}":{"get":{"operationId":"getProduct","tags":["Produtos"],"summary":"Detalhar produto","description":"Retorna os dados de um produto.\n\n**Tool**: `get_product`\n\n**Permissoes**: `products.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"product_line_id":{"type":"integer","minimum":1},"capacity_ah":{"type":"integer"},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"active":{"type":"boolean"},"display_order":{"type":"integer"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["products.read"],"x-idempotent":true},"patch":{"operationId":"updateProduct","tags":["Produtos"],"summary":"Editar produto","description":"Atualiza um produto existente e grava versao historica.\n\n**Tool**: `update_product`\n\n**Permissoes**: `products.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"product_line_id":{"type":"integer","minimum":1},"capacity_ah":{"type":"integer"},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"active":{"type":"boolean"},"display_order":{"type":"integer"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"product_line_id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"capacity_ah":{"type":"integer","minimum":1},"variant":{"type":["string","null"]},"unit_price":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"unit_weight_kg":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"display_order":{"type":"integer"},"active":{"type":"boolean"},"notes":{"type":["string","null"]},"reason":{"type":"string"}},"additionalProperties":false}}}},"x-required-permissions":["products.update"],"x-idempotent":true},"delete":{"operationId":"deleteProduct","tags":["Produtos"],"summary":"Excluir produto","description":"Exclui logicamente um produto.\n\n**Tool**: `delete_product`\n\n**Permissoes**: `products.delete`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["products.delete"],"x-idempotent":true}},"\/api\/v1\/products\/{id}\/history":{"get":{"operationId":"getProductHistory","tags":["Produtos"],"summary":"Historico do produto","description":"Retorna o historico de alteracoes de um produto.\n\n**Tool**: `get_product_history`\n\n**Permissoes**: `products.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["products.read"],"x-idempotent":true}},"\/api\/v1\/plans":{"get":{"operationId":"listPlans","tags":["Programacoes"],"summary":"Listar programacoes","description":"Lista programacoes com filtros e paginacao.\n\n**Tool**: `list_plans`\n\n**Permissoes**: `plans.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.read"],"x-idempotent":true},"post":{"operationId":"createPlan","tags":["Programacoes"],"summary":"Criar programacao","description":"Cria uma nova programacao em rascunho.\n\n**Tool**: `create_plan`\n\n**Permissoes**: `plans.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":160},"code":{"type":["string","null"]},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"}},"additionalProperties":false,"required":["name"]}}}},"x-required-permissions":["plans.create"],"x-idempotent":false}},"\/api\/v1\/plans\/{id}":{"get":{"operationId":"getPlan","tags":["Programacoes"],"summary":"Detalhar programacao","description":"Retorna os dados de uma programacao.\n\n**Tool**: `get_plan`\n\n**Permissoes**: `plans.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.read"],"x-idempotent":true},"patch":{"operationId":"updatePlan","tags":["Programacoes"],"summary":"Editar programacao","description":"Atualiza dados de uma programacao editavel.\n\n**Tool**: `update_plan`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open"]}},"additionalProperties":false}}}},"x-required-permissions":["plans.update"],"x-idempotent":true},"delete":{"operationId":"deletePlan","tags":["Programacoes"],"summary":"Excluir programacao","description":"Exclui logicamente uma programacao sem movimentacoes.\n\n**Tool**: `delete_plan`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/matrix":{"get":{"operationId":"getPlanMatrix","tags":["Programacoes"],"summary":"Matriz de quantidades","description":"Retorna a matriz completa de quantidades da programacao.\n\n**Tool**: `get_plan_matrix`\n\n**Permissoes**: `plans.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false},"columns":{"type":"array"},"products":{"type":"array"},"cells":{"type":"array"},"totals":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.read"],"x-idempotent":true},"put":{"operationId":"upsertPlanQuantities","tags":["Programacoes"],"summary":"Atualizar quantidades em lote","description":"Atualiza quantidades da matriz em lote. Requer Idempotency-Key e version.\n\n**Tool**: `upsert_plan_quantities`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false},"applied":{"type":"integer"},"totals":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"version":{"type":"integer"},"cells":{"type":"array","items":{"type":"object","properties":{"schedule_column_id":{"type":"integer","minimum":1},"product_id":{"type":"integer","minimum":1},"quantity":{"type":"integer","minimum":0}},"additionalProperties":false,"required":["schedule_column_id","product_id","quantity"]}}},"additionalProperties":false,"required":["version","cells"]}}}},"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/consolidation":{"get":{"operationId":"getPlanConsolidation","tags":["Programacoes"],"summary":"Consolidacao da programacao","description":"Retorna totais consolidados da programacao.\n\n**Tool**: `get_plan_consolidation`\n\n**Permissoes**: `plans.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"totals":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.read"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/close":{"post":{"operationId":"closePlan","tags":["Programacoes"],"summary":"Fechar programacao","description":"Fecha a programacao gerando snapshot de totais.\n\n**Tool**: `close_plan`\n\n**Permissoes**: `plans.close`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":["string","null"]}},"additionalProperties":false}}}},"x-required-permissions":["plans.close"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/reopen":{"post":{"operationId":"reopenPlan","tags":["Programacoes"],"summary":"Reabrir programacao","description":"Reabre uma programacao fechada. Exige justificativa.\n\n**Tool**: `reopen_plan`\n\n**Permissoes**: `plans.reopen`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":5}},"additionalProperties":false,"required":["reason"]}}}},"x-required-permissions":["plans.reopen"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/cancel":{"post":{"operationId":"cancelPlan","tags":["Programacoes"],"summary":"Cancelar programacao","description":"Cancela a programacao. Exige justificativa.\n\n**Tool**: `cancel_plan`\n\n**Permissoes**: `plans.cancel`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"code":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"period_start":{"type":["string","null"],"format":"date"},"period_end":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["draft","open","closed","cancelled"]},"version":{"type":"integer"},"closed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":5}},"additionalProperties":false,"required":["reason"]}}}},"x-required-permissions":["plans.cancel"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/schedule-columns":{"post":{"operationId":"createScheduleColumn","tags":["Programacoes"],"summary":"Criar coluna de programacao","description":"Adiciona uma nova coluna de data a uma programacao.\n\n**Tool**: `create_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"}},"additionalProperties":false,"required":["scheduled_on"]}}}},"x-required-permissions":["plans.update"],"x-idempotent":false}},"\/api\/v1\/plans\/{id}\/schedule-columns\/{columnId}":{"patch":{"operationId":"updateScheduleColumn","tags":["Programacoes"],"summary":"Editar coluna de programacao","description":"Atualiza uma coluna de data.\n\n**Tool**: `update_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"status":{"type":"string"},"locked":{"type":"boolean"},"display_order":{"type":"integer"}},"additionalProperties":false}}}},"x-required-permissions":["plans.update"],"x-idempotent":true},"delete":{"operationId":"deleteScheduleColumn","tags":["Programacoes"],"summary":"Remover coluna de programacao","description":"Remove uma coluna vazia da programacao.\n\n**Tool**: `delete_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/schedule-columns\/{columnId}\/duplicate":{"post":{"operationId":"duplicateScheduleColumn","tags":["Programacoes"],"summary":"Duplicar coluna","description":"Duplica uma coluna copiando as quantidades.\n\n**Tool**: `duplicate_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]}},"additionalProperties":false,"required":["scheduled_on"]}}}},"x-required-permissions":["plans.update"],"x-idempotent":false}},"\/api\/v1\/plans\/{id}\/schedule-columns\/{columnId}\/copy-quantities":{"post":{"operationId":"copyScheduleColumnQuantities","tags":["Programacoes"],"summary":"Copiar quantidades entre colunas","description":"Copia quantidades de uma coluna para outra na mesma programacao.\n\n**Tool**: `copy_schedule_column_quantities`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"copied":{"type":"boolean"},"source_column_id":{"type":"integer","minimum":1},"target_column_id":{"type":"integer","minimum":1},"created":{"type":"integer"},"updated":{"type":"integer"},"deleted":{"type":"integer"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"source_column_id":{"type":"integer","minimum":1},"replace_missing":{"type":["boolean","null"]}},"additionalProperties":false,"required":["source_column_id"]}}}},"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/schedule-columns\/reorder":{"post":{"operationId":"reorderScheduleColumns","tags":["Programacoes"],"summary":"Reordenar colunas de programacao","description":"Reordena as colunas de uma programacao na sequencia desejada.\n\n**Tool**: `reorder_schedule_columns`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"plan_id":{"type":"integer","minimum":1},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"column_ids":{"type":"array","minItems":1,"items":{"type":"integer","minimum":1}}},"additionalProperties":false,"required":["column_ids"]}}}},"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/schedule-columns\/{columnId}\/lock":{"post":{"operationId":"lockScheduleColumn","tags":["Programacoes"],"summary":"Bloquear coluna","description":"Bloqueia uma coluna de programacao para impedir edicoes.\n\n**Tool**: `lock_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/schedule-columns\/{columnId}\/unlock":{"post":{"operationId":"unlockScheduleColumn","tags":["Programacoes"],"summary":"Desbloquear coluna","description":"Desbloqueia uma coluna de programacao.\n\n**Tool**: `unlock_schedule_column`\n\n**Permissoes**: `plans.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"columnId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"scheduled_on":{"type":"string","format":"date"},"label":{"type":["string","null"]},"partner":{"type":["string","null"]},"display_order":{"type":"integer"},"status":{"type":"string"},"locked":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["plans.update"],"x-idempotent":true}},"\/api\/v1\/financial-entry-types":{"get":{"operationId":"listFinancialEntryTypes","tags":["Financeiro"],"summary":"Listar tipos financeiros","description":"Lista os tipos de lancamento financeiro configurados.\n\n**Tool**: `list_financial_entry_types`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"default_direction":{"type":"string","enum":["credit","debit"]},"active":{"type":"boolean"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true},"post":{"operationId":"createFinancialEntryType","tags":["Financeiro"],"summary":"Criar tipo financeiro","description":"Cria um novo tipo de lancamento.\n\n**Tool**: `create_financial_entry_type`\n\n**Permissoes**: `finance.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"default_direction":{"type":"string","enum":["credit","debit"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"default_direction":{"type":"string","enum":["credit","debit"]},"display_order":{"type":"integer"},"active":{"type":"boolean"}},"additionalProperties":false,"required":["name","code","default_direction"]}}}},"x-required-permissions":["finance.create"],"x-idempotent":false}},"\/api\/v1\/financial-entry-types\/{id}":{"patch":{"operationId":"updateFinancialEntryType","tags":["Financeiro"],"summary":"Editar tipo financeiro","description":"Atualiza um tipo de lancamento existente.\n\n**Tool**: `update_financial_entry_type`\n\n**Permissoes**: `finance.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"default_direction":{"type":"string","enum":["credit","debit"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"default_direction":{"type":"string","enum":["credit","debit"]},"display_order":{"type":"integer"},"active":{"type":"boolean"}},"additionalProperties":false}}}},"x-required-permissions":["finance.update"],"x-idempotent":true}},"\/api\/v1\/payment-methods":{"get":{"operationId":"listPaymentMethods","tags":["Financeiro"],"summary":"Listar formas de pagamento","description":"Lista formas de pagamento configuradas.\n\n**Tool**: `list_payment_methods`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true},"post":{"operationId":"createPaymentMethod","tags":["Financeiro"],"summary":"Criar forma de pagamento","description":"Cria uma nova forma de pagamento.\n\n**Tool**: `create_payment_method`\n\n**Permissoes**: `finance.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":["string","null"]},"display_order":{"type":"integer"},"active":{"type":"boolean"}},"additionalProperties":false,"required":["name","code"]}}}},"x-required-permissions":["finance.create"],"x-idempotent":false}},"\/api\/v1\/payment-methods\/{id}":{"patch":{"operationId":"updatePaymentMethod","tags":["Financeiro"],"summary":"Editar forma de pagamento","description":"Atualiza uma forma de pagamento existente.\n\n**Tool**: `update_payment_method`\n\n**Permissoes**: `finance.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"code":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}}}},"x-required-permissions":["finance.update"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/financial-entries":{"get":{"operationId":"listFinancialEntries","tags":["Financeiro"],"summary":"Listar lancamentos financeiros","description":"Lista lancamentos de uma programacao ou todos.\n\n**Tool**: `list_financial_entries`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"paid_at":{"type":["string","null"],"format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true},"post":{"operationId":"createFinancialEntry","tags":["Financeiro"],"summary":"Criar lancamento financeiro","description":"Cria um lancamento financeiro em uma programacao.\n\n**Tool**: `create_financial_entry`\n\n**Permissoes**: `finance.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"paid_at":{"type":["string","null"],"format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]},"notes":{"type":["string","null"]}},"additionalProperties":false,"required":["financial_entry_type_id","due_date","amount","direction","description"]}}}},"x-required-permissions":["finance.create"],"x-idempotent":false}},"\/api\/v1\/financial-entries\/{id}":{"get":{"operationId":"getFinancialEntry","tags":["Financeiro"],"summary":"Detalhar lancamento","description":"Retorna um lancamento financeiro.\n\n**Tool**: `get_financial_entry`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"paid_at":{"type":["string","null"],"format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true},"patch":{"operationId":"updateFinancialEntry","tags":["Financeiro"],"summary":"Editar lancamento","description":"Atualiza um lancamento financeiro.\n\n**Tool**: `update_financial_entry`\n\n**Permissoes**: `finance.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"paid_at":{"type":["string","null"],"format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string"},"description":{"type":"string"},"external_reference":{"type":["string","null"]},"notes":{"type":["string","null"]}},"additionalProperties":false}}}},"x-required-permissions":["finance.update"],"x-idempotent":true},"delete":{"operationId":"deleteFinancialEntry","tags":["Financeiro"],"summary":"Excluir lancamento","description":"Exclui logicamente um lancamento.\n\n**Tool**: `delete_financial_entry`\n\n**Permissoes**: `finance.delete`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.delete"],"x-idempotent":true}},"\/api\/v1\/financial-entries\/{id}\/mark-paid":{"post":{"operationId":"markFinancialEntryPaid","tags":["Financeiro"],"summary":"Marcar lancamento como pago","description":"Marca um lancamento como pago em uma data especifica.\n\n**Tool**: `mark_financial_entry_paid`\n\n**Permissoes**: `finance.mark-paid`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"plan_id":{"type":"integer","minimum":1},"delivery_id":{"type":["integer","null"]},"financial_entry_type_id":{"type":"integer","minimum":1},"payment_method_id":{"type":["integer","null"]},"due_date":{"type":"string","format":"date"},"paid_at":{"type":["string","null"],"format":"date"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Valor decimal representado como string."},"direction":{"type":"string","enum":["credit","debit"]},"status":{"type":"string","enum":["planned","confirmed","paid","cancelled"]},"description":{"type":"string"},"external_reference":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"paid_at":{"type":"string","format":"date"},"payment_method_id":{"type":["integer","null"]}},"additionalProperties":false}}}},"x-required-permissions":["finance.mark-paid"],"x-idempotent":true}},"\/api\/v1\/imports":{"get":{"operationId":"listImports","tags":["Importacoes"],"summary":"Listar importacoes","description":"Lista importacoes com filtros e pagina\u00e7\u00e3o.\n\n**Tool**: `list_imports`\n\n**Permissoes**: `imports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["products","matrix","financial"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"kind":{"type":"string","enum":["products","matrix","financial"]},"status":{"type":"string"},"rows_total":{"type":"integer"},"rows_valid":{"type":"integer"},"rows_invalid":{"type":"integer"},"confirmed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}},"meta":{"type":"object"},"links":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["imports.read"],"x-idempotent":true},"post":{"operationId":"createImport","tags":["Importacoes"],"summary":"Iniciar importacao","description":"Faz upload de um arquivo e cria a importacao no estado inicial.\n\n**Tool**: `create_import`\n\n**Permissoes**: `imports.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"kind":{"type":"string","enum":["products","matrix","financial"]},"status":{"type":"string"},"rows_total":{"type":"integer"},"rows_valid":{"type":"integer"},"rows_invalid":{"type":"integer"},"confirmed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["products","matrix","financial"]},"plan_id":{"type":["integer","null"]},"column_mapping":{"type":"object"},"options":{"type":"object"},"file":{"type":"string","format":"binary"}},"additionalProperties":false,"required":["kind","file"]}}}},"x-required-permissions":["imports.create"],"x-idempotent":false}},"\/api\/v1\/imports\/{id}":{"get":{"operationId":"getImport","tags":["Importacoes"],"summary":"Detalhar importacao","description":"Retorna os dados de uma importacao.\n\n**Tool**: `get_import`\n\n**Permissoes**: `imports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"kind":{"type":"string","enum":["products","matrix","financial"]},"status":{"type":"string"},"rows_total":{"type":"integer"},"rows_valid":{"type":"integer"},"rows_invalid":{"type":"integer"},"confirmed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["imports.read"],"x-idempotent":true}},"\/api\/v1\/imports\/{id}\/preview":{"get":{"operationId":"previewImport","tags":["Importacoes"],"summary":"Preview da importacao","description":"Retorna preview das linhas apos parsing e validacao.\n\n**Tool**: `preview_import`\n\n**Permissoes**: `imports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array"},"meta":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["imports.read"],"x-idempotent":true}},"\/api\/v1\/imports\/{id}\/confirm":{"post":{"operationId":"confirmImport","tags":["Importacoes"],"summary":"Confirmar importacao","description":"Aplica a importacao ao banco em uma transacao.\n\n**Tool**: `confirm_import`\n\n**Permissoes**: `imports.confirm`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"kind":{"type":"string","enum":["products","matrix","financial"]},"status":{"type":"string"},"rows_total":{"type":"integer"},"rows_valid":{"type":"integer"},"rows_invalid":{"type":"integer"},"confirmed_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["imports.confirm"],"x-idempotent":true}},"\/api\/v1\/imports\/{id}\/errors":{"get":{"operationId":"getImportErrors","tags":["Importacoes"],"summary":"Erros da importacao","description":"Retorna as linhas invalidas com detalhes.\n\n**Tool**: `get_import_errors`\n\n**Permissoes**: `imports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["imports.read"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/exports\/xlsx":{"get":{"operationId":"exportPlanXlsx","tags":["Programacoes"],"summary":"Exportar programacao em XLSX","description":"Gera um arquivo XLSX da programacao.\n\n**Tool**: `export_plan_xlsx`\n\n**Permissoes**: `reports.export`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.export"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/exports\/csv":{"get":{"operationId":"exportPlanCsv","tags":["Programacoes"],"summary":"Exportar programacao em CSV","description":"Gera um arquivo CSV da programacao.\n\n**Tool**: `export_plan_csv`\n\n**Permissoes**: `reports.export`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.export"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/exports\/pdf":{"get":{"operationId":"exportPlanPdf","tags":["Programacoes"],"summary":"Exportar programacao em PDF","description":"Gera um PDF da programacao.\n\n**Tool**: `export_plan_pdf`\n\n**Permissoes**: `reports.export`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.export"],"x-idempotent":true}},"\/api\/v1\/plans\/{id}\/exports\/json":{"get":{"operationId":"exportPlanJson","tags":["Programacoes"],"summary":"Exportar programacao em JSON","description":"Retorna a programacao completa em JSON.\n\n**Tool**: `export_plan_json`\n\n**Permissoes**: `reports.export`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"plan":{"type":"object"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.export"],"x-idempotent":true}},"\/api\/v1\/audit-logs":{"get":{"operationId":"listAuditLogs","tags":["Auditoria"],"summary":"Listar logs de auditoria","description":"Lista eventos de auditoria com filtros e pagina\u00e7\u00e3o.\n\n**Tool**: `list_audit_logs`\n\n**Permissoes**: `audit.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"action","in":"query","required":false,"schema":{"type":"string"}},{"name":"entity_type","in":"query","required":false,"schema":{"type":"string"}},{"name":"entity_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"user_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"origin","in":"query","required":false,"schema":{"type":"string"}},{"name":"trace_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"action":{"type":"string"},"entity_type":{"type":["string","null"]},"entity_id":{"type":["integer","null"]},"user":{"type":["object","null"]},"before":{"type":["object","null"]},"after":{"type":["object","null"]},"ip_address":{"type":["string","null"]},"user_agent":{"type":["string","null"]},"origin":{"type":["string","null"]},"trace_id":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["audit.read"],"x-idempotent":true}},"\/api\/v1\/audit-logs\/{id}":{"get":{"operationId":"getAuditLog","tags":["Auditoria"],"summary":"Detalhar log de auditoria","description":"Retorna um registro de auditoria por id.\n\n**Tool**: `get_audit_log`\n\n**Permissoes**: `audit.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"action":{"type":"string"},"entity_type":{"type":["string","null"]},"entity_id":{"type":["integer","null"]},"user":{"type":["object","null"]},"before":{"type":["object","null"]},"after":{"type":["object","null"]},"ip_address":{"type":["string","null"]},"user_agent":{"type":["string","null"]},"origin":{"type":["string","null"]},"trace_id":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["audit.read"],"x-idempotent":true}},"\/api\/v1\/reports\/products":{"get":{"operationId":"reportProductsConsolidation","tags":["Relatorios"],"summary":"Consolidacao por produto","description":"Consolida quantidade, valor e peso por produto.\n\n**Tool**: `report_products_consolidation`\n\n**Permissoes**: `reports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"product_line_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"capacity_ah","in":"query","required":false,"schema":{"type":"integer"}},{"name":"responsible_user_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"integer","minimum":1},"code":{"type":"string"},"description":{"type":"string"},"line_id":{"type":"integer"},"line_name":{"type":["string","null"]},"capacity_ah":{"type":"integer"},"quantity":{"type":"integer"},"value":{"type":"string"},"weight":{"type":"string"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.read"],"x-idempotent":true}},"\/api\/v1\/reports\/lines":{"get":{"operationId":"reportLinesConsolidation","tags":["Relatorios"],"summary":"Consolidacao por linha","description":"Consolida quantidade, valor e peso por linha de produto.\n\n**Tool**: `report_lines_consolidation`\n\n**Permissoes**: `reports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"responsible_user_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"line_id":{"type":"integer","minimum":1},"line_name":{"type":["string","null"]},"quantity":{"type":"integer"},"value":{"type":"string"},"weight":{"type":"string"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.read"],"x-idempotent":true}},"\/api\/v1\/reports\/dates":{"get":{"operationId":"reportDatesConsolidation","tags":["Relatorios"],"summary":"Consolidacao por data","description":"Consolida quantidade, valor e peso por data de programacao.\n\n**Tool**: `report_dates_consolidation`\n\n**Permissoes**: `reports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"responsible_user_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"product_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"product_line_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"quantity":{"type":"integer"},"value":{"type":"string"},"weight":{"type":"string"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.read"],"x-idempotent":true}},"\/api\/v1\/reports\/financial":{"get":{"operationId":"reportFinancialSummary","tags":["Relatorios"],"summary":"Resumo financeiro","description":"Resumo financeiro consolidado (previstos, pagos e vencidos) com filtros.\n\n**Tool**: `report_financial_summary`\n\n**Permissoes**: `reports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"financial_entry_type_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"payment_method_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"responsible_user_id","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"summary":{"type":"object","properties":{"planned":{"type":"string"},"confirmed":{"type":"string"},"paid":{"type":"string"},"cancelled":{"type":"string"},"credit":{"type":"string"},"debit":{"type":"string"},"balance":{"type":"string"},"overdue":{"type":"string"},"forecast":{"type":"string"},"paid_plus_planned":{"type":"string"}},"additionalProperties":false},"rows":{"type":"array","items":{"type":"object","properties":{"due_date":{"type":["string","null"],"format":"date"},"status":{"type":"string"},"direction":{"type":"string"},"amount":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.read"],"x-idempotent":true}},"\/api\/v1\/users":{"get":{"operationId":"listUsers","tags":["Usuarios"],"summary":"Listar usuarios","description":"Lista os usuarios do sistema com filtros.\n\n**Tool**: `list_users`\n\n**Permissoes**: `users.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"role_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"email":{"type":"string","format":"email"},"failed_login_attempts":{"type":"integer"},"locked_until":{"type":["string","null"],"format":"date-time"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.read"],"x-idempotent":true},"post":{"operationId":"createUser","tags":["Usuarios"],"summary":"Criar usuario","description":"Cria usuario com roles opcionais.\n\n**Tool**: `create_user`\n\n**Permissoes**: `users.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"email":{"type":"string","format":"email"},"failed_login_attempts":{"type":"integer"},"locked_until":{"type":["string","null"],"format":"date-time"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string"},"password_confirmation":{"type":"string"},"role_ids":{"type":"array","items":{"type":"integer"}}},"additionalProperties":false,"required":["name","email","password","password_confirmation"]}}}},"x-required-permissions":["users.create"],"x-idempotent":false}},"\/api\/v1\/users\/{id}":{"get":{"operationId":"getUser","tags":["Usuarios"],"summary":"Detalhar usuario","description":"Retorna um usuario por id.\n\n**Tool**: `get_user`\n\n**Permissoes**: `users.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"email":{"type":"string","format":"email"},"failed_login_attempts":{"type":"integer"},"locked_until":{"type":["string","null"],"format":"date-time"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.read"],"x-idempotent":true},"patch":{"operationId":"updateUser","tags":["Usuarios"],"summary":"Editar usuario","description":"Altera dados basicos e atribuicao de papeis.\n\n**Tool**: `update_user`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":1},"name":{"type":"string"},"email":{"type":"string","format":"email"},"failed_login_attempts":{"type":"integer"},"locked_until":{"type":["string","null"],"format":"date-time"},"last_login_at":{"type":["string","null"],"format":"date-time"},"roles":{"type":"array","items":{"type":"object"}}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string"},"password_confirmation":{"type":"string"},"role_ids":{"type":"array","items":{"type":"integer"}}},"additionalProperties":false}}}},"x-required-permissions":["users.update"],"x-idempotent":true},"delete":{"operationId":"deactivateUser","tags":["Usuarios"],"summary":"Inativar usuario","description":"Inativar usuario.\n\n**Tool**: `users_deactivate`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.update"],"x-idempotent":false}},"\/api\/v1\/settings":{"get":{"operationId":"listSettings","tags":["Configuracoes"],"summary":"Listar configuracoes","description":"Lista as configuracoes do sistema.\n\n**Tool**: `list_settings`\n\n**Permissoes**: `settings.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"key","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":25}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"value":{"type":["string","number","integer","boolean","object","array","null"]},"description":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}},"additionalProperties":false},"links":{"type":"object","properties":{"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["settings.read"],"x-idempotent":true}},"\/api\/v1\/settings\/{key}":{"get":{"operationId":"getSetting","tags":["Configuracoes"],"summary":"Detalhar configuracao","description":"Retorna o valor de uma configuracao pelo identificador.\n\n**Tool**: `get_setting`\n\n**Permissoes**: `settings.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"value":{"type":["string","number","integer","boolean","object","array","null"]},"description":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["settings.read"],"x-idempotent":true},"patch":{"operationId":"updateSetting","tags":["Configuracoes"],"summary":"Atualizar configuracao","description":"Altera o valor e\/ou descricao de uma configuracao.\n\n**Tool**: `update_setting`\n\n**Permissoes**: `settings.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"type":{"type":"string"},"value":{"type":["string","number","integer","boolean","object","array","null"]},"description":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"value":{"type":["string","number","integer","boolean","object","array","null"]},"type":{"type":"string"},"description":{"type":["string","null"]}},"additionalProperties":false,"required":["value"]}}}},"x-required-permissions":["settings.update"],"x-idempotent":true}},"\/api\/v1\/dashboard":{"get":{"operationId":"getDashboardSummary","tags":["Dashboard"],"summary":"Resumo do dashboard","description":"Retorna indicadores agregados para o dashboard.\n\n**Tool**: `get_dashboard_summary`\n\n**Permissoes**: `reports.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"plans":{"type":"object"},"quantities":{"type":"object"},"financial":{"type":"object"},"top_products":{"type":"array"},"distribution_by_line":{"type":"array"},"upcoming_dues":{"type":"array"},"report_links":{"type":"object","properties":{"products":{"type":"string"},"lines":{"type":"string"},"dates":{"type":"string"},"financial":{"type":"string"},"plan_matrix":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.read"],"x-idempotent":true}},"\/api\/v1\/customers":{"get":{"operationId":"listCustomers","tags":["Clientes"],"summary":"Listar clientes","description":"Listar clientes.\n\n**Tool**: `customers_list`\n\n**Permissoes**: `customers.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["customers.read"],"x-idempotent":true},"post":{"operationId":"createCustomer","tags":["Clientes"],"summary":"Criar cliente","description":"Criar cliente.\n\n**Tool**: `customers_create`\n\n**Permissoes**: `customers.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"document":{"type":["string","null"]},"contact_name":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"],"format":"email"},"address_street":{"type":["string","null"]},"address_number":{"type":["string","null"]},"address_complement":{"type":["string","null"]},"address_district":{"type":["string","null"]},"address_city":{"type":["string","null"]},"address_state":{"type":["string","null"]},"address_postal_code":{"type":["string","null"]},"notes":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false,"required":["name"]}}}},"x-required-permissions":["customers.create"],"x-idempotent":false}},"\/api\/v1\/customers\/{id}":{"get":{"operationId":"getCustomer","tags":["Clientes"],"summary":"Consultar cliente","description":"Consultar cliente.\n\n**Tool**: `customers_get`\n\n**Permissoes**: `customers.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["customers.read"],"x-idempotent":true},"patch":{"operationId":"updateCustomer","tags":["Clientes"],"summary":"Atualizar cliente","description":"Atualizar cliente.\n\n**Tool**: `customers_update`\n\n**Permissoes**: `customers.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"document":{"type":["string","null"]},"contact_name":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"],"format":"email"},"address_street":{"type":["string","null"]},"address_number":{"type":["string","null"]},"address_complement":{"type":["string","null"]},"address_district":{"type":["string","null"]},"address_city":{"type":["string","null"]},"address_state":{"type":["string","null"]},"address_postal_code":{"type":["string","null"]},"notes":{"type":["string","null"]},"active":{"type":"boolean"}},"additionalProperties":false}}}},"x-required-permissions":["customers.update"],"x-idempotent":false},"delete":{"operationId":"deleteCustomer","tags":["Clientes"],"summary":"Excluir cliente","description":"Excluir cliente.\n\n**Tool**: `customers_delete`\n\n**Permissoes**: `customers.delete`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["customers.delete"],"x-idempotent":false}},"\/api\/v1\/customers\/{id}\/portfolio":{"get":{"operationId":"getCustomerPortfolio","tags":["Clientes"],"summary":"Consultar historico e previsoes do cliente","description":"Consultar historico e previsoes do cliente.\n\n**Tool**: `customers_portfolio`\n\n**Permissoes**: `customers.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["customers.read"],"x-idempotent":true}},"\/api\/v1\/deliveries":{"get":{"operationId":"listDeliveries","tags":["Entregas"],"summary":"Listar entregas","description":"Listar entregas.\n\n**Tool**: `deliveries_list`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"customer_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"recurrence_series_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"product_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.read"],"x-idempotent":true},"post":{"operationId":"createDelivery","tags":["Entregas"],"summary":"Criar entrega","description":"Criar entrega.\n\n**Tool**: `deliveries_create`\n\n**Permissoes**: `deliveries.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"customer_id":{"type":"integer"},"scheduled_on":{"type":"string","format":"date"},"scheduled_time":{"type":["string","null"],"format":"time","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"reference":{"type":["string","null"]},"address":{"type":["object","null"]},"notes":{"type":["string","null"]},"items":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"integer"},"quantity":{"type":"integer","minimum":1}},"additionalProperties":false,"required":["product_id","quantity"]}},"recurrence":{"type":["object","null"],"properties":{"enabled":{"type":"boolean"},"frequency":{"type":"string","enum":["weekly","every_n_days","monthly"]},"interval":{"type":"integer","minimum":1},"end_type":{"type":"string","enum":["count","until"]},"occurrences":{"type":"integer","minimum":2,"maximum":120},"until":{"type":["string","null"],"format":"date"}}},"apply_scope":{"type":"string","enum":["only_this","this_and_future","all_planned"]}},"additionalProperties":false,"required":["customer_id","scheduled_on","items"]}}}},"x-required-permissions":["deliveries.create"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}":{"get":{"operationId":"getDelivery","tags":["Entregas"],"summary":"Consultar entrega","description":"Consultar entrega.\n\n**Tool**: `deliveries_get`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.read"],"x-idempotent":true},"patch":{"operationId":"updateDelivery","tags":["Entregas"],"summary":"Atualizar entrega","description":"Atualizar entrega.\n\n**Tool**: `deliveries_update`\n\n**Permissoes**: `deliveries.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"customer_id":{"type":"integer"},"scheduled_on":{"type":"string","format":"date"},"scheduled_time":{"type":["string","null"],"format":"time","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"reference":{"type":["string","null"]},"address":{"type":["object","null"]},"notes":{"type":["string","null"]},"items":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"integer"},"quantity":{"type":"integer","minimum":1}},"additionalProperties":false,"required":["product_id","quantity"]}},"recurrence":{"type":["object","null"],"properties":{"enabled":{"type":"boolean"},"frequency":{"type":"string","enum":["weekly","every_n_days","monthly"]},"interval":{"type":"integer","minimum":1},"end_type":{"type":"string","enum":["count","until"]},"occurrences":{"type":"integer","minimum":2,"maximum":120},"until":{"type":["string","null"],"format":"date"}}},"apply_scope":{"type":"string","enum":["only_this","this_and_future","all_planned"]}},"additionalProperties":false}}}},"x-required-permissions":["deliveries.update"],"x-idempotent":false},"delete":{"operationId":"deleteDelivery","tags":["Entregas"],"summary":"Excluir entrega","description":"Excluir entrega.\n\n**Tool**: `deliveries_delete`\n\n**Permissoes**: `deliveries.delete`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.delete"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}\/duplicate":{"post":{"operationId":"duplicateDelivery","tags":["Entregas"],"summary":"Duplicar entrega","description":"Duplicar entrega.\n\n**Tool**: `deliveries_duplicate`\n\n**Permissoes**: `deliveries.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"scheduled_on":{"type":"string","format":"date"}},"additionalProperties":false,"required":["scheduled_on"]}}}},"x-required-permissions":["deliveries.create"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}\/confirm":{"post":{"operationId":"confirmDelivery","tags":["Entregas"],"summary":"Confirmar entrega","description":"Confirmar entrega.\n\n**Tool**: `deliveries_confirm`\n\n**Permissoes**: `deliveries.confirm`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["deliveries.confirm"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}\/complete":{"post":{"operationId":"completeDelivery","tags":["Entregas"],"summary":"Concluir entrega","description":"Concluir entrega.\n\n**Tool**: `deliveries_complete`\n\n**Permissoes**: `deliveries.complete`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["deliveries.complete"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}\/cancel":{"post":{"operationId":"cancelDelivery","tags":["Entregas"],"summary":"Cancelar entrega","description":"Cancelar entrega.\n\n**Tool**: `deliveries_cancel`\n\n**Permissoes**: `deliveries.cancel`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}},"additionalProperties":false,"required":["reason"]}}}},"x-required-permissions":["deliveries.cancel"],"x-idempotent":false}},"\/api\/v1\/deliveries\/{id}\/reopen":{"post":{"operationId":"reopenDelivery","tags":["Entregas"],"summary":"Reabrir entrega","description":"Reabrir entrega.\n\n**Tool**: `deliveries_reopen`\n\n**Permissoes**: `deliveries.reopen`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}},"additionalProperties":false,"required":["reason"]}}}},"x-required-permissions":["deliveries.reopen"],"x-idempotent":false}},"\/api\/v1\/delivery-recurrence-series":{"get":{"operationId":"listDeliveryRecurrenceSeries","tags":["Entregas"],"summary":"Listar series recorrentes","description":"Listar series recorrentes.\n\n**Tool**: `delivery_recurrence_series_list`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"customer_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.read"],"x-idempotent":true}},"\/api\/v1\/delivery-recurrence-series\/{id}":{"get":{"operationId":"getDeliveryRecurrenceSeries","tags":["Entregas"],"summary":"Consultar serie recorrente","description":"Consultar serie recorrente.\n\n**Tool**: `delivery_recurrence_series_get`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.read"],"x-idempotent":true}},"\/api\/v1\/delivery-recurrence-series\/{id}\/cancel":{"post":{"operationId":"cancelDeliveryRecurrenceSeries","tags":["Entregas"],"summary":"Cancelar entregas futuras da serie","description":"Cancelar entregas futuras da serie.\n\n**Tool**: `delivery_recurrence_series_cancel`\n\n**Permissoes**: `deliveries.cancel`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}},"additionalProperties":false,"required":["reason"]}}}},"x-required-permissions":["deliveries.cancel"],"x-idempotent":false}},"\/api\/v1\/daily-digest":{"get":{"operationId":"getDailyDigest","tags":["Entregas"],"summary":"Consultar lembrete diario","description":"Consultar lembrete diario.\n\n**Tool**: `daily_digest_get`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["deliveries.read"],"x-idempotent":true}},"\/api\/v1\/daily-digest\/acknowledge":{"post":{"operationId":"acknowledgeDailyDigest","tags":["Entregas"],"summary":"Confirmar leitura do lembrete diario","description":"Confirmar leitura do lembrete diario.\n\n**Tool**: `daily_digest_acknowledge`\n\n**Permissoes**: `deliveries.read`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"x-required-permissions":["deliveries.read"],"x-idempotent":false}},"\/api\/v1\/roles":{"get":{"operationId":"listRoles","tags":["Papeis"],"summary":"Listar papeis","description":"Listar papeis.\n\n**Tool**: `roles_list`\n\n**Permissoes**: `users.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.read"],"x-idempotent":true},"post":{"operationId":"createRole","tags":["Papeis"],"summary":"Criar papel","description":"Criar papel.\n\n**Tool**: `roles_create`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"description":{"type":["string","null"]},"permission_ids":{"type":"array","items":{"type":"integer"}}},"additionalProperties":false,"required":["name","label","permission_ids"]}}}},"x-required-permissions":["users.update"],"x-idempotent":false}},"\/api\/v1\/roles\/{id}":{"get":{"operationId":"getRole","tags":["Papeis"],"summary":"Consultar papel","description":"Consultar papel.\n\n**Tool**: `roles_get`\n\n**Permissoes**: `users.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.read"],"x-idempotent":true},"patch":{"operationId":"updateRole","tags":["Papeis"],"summary":"Atualizar papel","description":"Atualizar papel.\n\n**Tool**: `roles_update`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"description":{"type":["string","null"]}},"additionalProperties":false}}}},"x-required-permissions":["users.update"],"x-idempotent":false},"delete":{"operationId":"deleteRole","tags":["Papeis"],"summary":"Excluir papel","description":"Excluir papel.\n\n**Tool**: `roles_delete`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: sim | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.update"],"x-idempotent":false}},"\/api\/v1\/roles\/{id}\/permissions":{"put":{"operationId":"syncRolePermissions","tags":["Papeis"],"summary":"Atualizar permissoes do papel","description":"Atualizar permissoes do papel.\n\n**Tool**: `roles_sync_permissions`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"permission_ids":{"type":"array","items":{"type":"integer"}}},"additionalProperties":false,"required":["permission_ids"]}}}},"x-required-permissions":["users.update"],"x-idempotent":false}},"\/api\/v1\/permissions":{"get":{"operationId":"listPermissions","tags":["Papeis"],"summary":"Listar permissoes","description":"Listar permissoes.\n\n**Tool**: `permissions_list`\n\n**Permissoes**: `users.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["users.read"],"x-idempotent":true}},"\/api\/v1\/users\/{id}\/restore":{"post":{"operationId":"restoreUser","tags":["Usuarios"],"summary":"Reativar usuario","description":"Reativar usuario.\n\n**Tool**: `users_restore`\n\n**Permissoes**: `users.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":[],"additionalProperties":false}}}},"x-required-permissions":["users.update"],"x-idempotent":false}},"\/api\/v1\/financial-entries":{"get":{"operationId":"listFinancialAgenda","tags":["Financeiro"],"summary":"Consultar agenda financeira","description":"Consultar agenda financeira.\n\n**Tool**: `financial_agenda_list`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"plan_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string"}},{"name":"from","in":"query","required":false,"schema":{"type":"string"}},{"name":"to","in":"query","required":false,"schema":{"type":"string"}},{"name":"overdue","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["due_date","amount","status","created_at"]}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true}},"\/api\/v1\/imports\/{id}\/mapping":{"put":{"operationId":"updateImport","tags":["Importacoes"],"summary":"Atualizar mapeamento da importacao","description":"Atualizar mapeamento da importacao.\n\n**Tool**: `imports_update_mapping`\n\n**Permissoes**: `imports.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"column_mapping":{"type":"object"},"options":{"type":"object"}},"additionalProperties":false,"required":["column_mapping"]}}}},"x-required-permissions":["imports.create"],"x-idempotent":false}},"\/api\/v1\/attachments":{"post":{"operationId":"uploadAttachment","tags":["Anexos"],"summary":"Enviar anexo","description":"Enviar anexo.\n\n**Tool**: `attachments_upload`\n\n**Permissoes**: `finance.create`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"context":{"type":"string"},"context_id":{"type":"integer"}},"additionalProperties":false,"required":["file"]}}}},"x-required-permissions":["finance.create"],"x-idempotent":false}},"\/api\/v1\/attachments\/{id}\/download":{"get":{"operationId":"downloadAttachment","tags":["Anexos"],"summary":"Baixar anexo","description":"Baixar anexo.\n\n**Tool**: `attachments_download`\n\n**Permissoes**: `finance.read`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["finance.read"],"x-idempotent":true}},"\/api\/v1\/branding":{"get":{"operationId":"getBranding","tags":["Configuracoes"],"summary":"Consultar identidade visual","description":"Consultar identidade visual.\n\n**Tool**: `branding_get`\n\n**Permissoes**: _publica_\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":[],"x-idempotent":false}},"\/api\/v1\/settings\/logo":{"post":{"operationId":"uploadBrandingLogo","tags":["Configuracoes"],"summary":"Atualizar logotipo","description":"Atualizar logotipo.\n\n**Tool**: `branding_upload_logo`\n\n**Permissoes**: `settings.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}},"additionalProperties":false,"required":["logo"]}}}},"x-required-permissions":["settings.update"],"x-idempotent":false}},"\/api\/v1\/reports\/{report}\/exports\/{format}":{"get":{"operationId":"exportReport","tags":["Relatorios"],"summary":"Exportar relatorio","description":"Exportar relatorio.\n\n**Tool**: `reports_export`\n\n**Permissoes**: `reports.export`\n\n**Leitura**: sim | **Destrutiva**: nao | **Idempotente**: sim","parameters":[{"name":"report","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"application\/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"x-required-permissions":["reports.export"],"x-idempotent":true}},"\/api\/v1\/product-lines\/reorder":{"post":{"operationId":"reorderProductLines","tags":["Linhas de produto"],"summary":"Reordenar linhas","description":"Reordenar linhas.\n\n**Tool**: `product_lines_reorder`\n\n**Permissoes**: `product-lines.update`\n\n**Leitura**: nao | **Destrutiva**: nao | **Idempotente**: nao","parameters":[],"responses":{"200":{"description":"Sucesso","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":["object","array","null"]}},"additionalProperties":false}}}},"400":{"description":"Requisicao invalida","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"Nao autenticado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"Permissao ausente","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"Nao encontrado","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"409":{"description":"Conflito (versao\/idempotencia)","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"Erro de validacao","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Rate limit","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}},"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"display_order":{"type":"integer"}},"additionalProperties":false,"required":["id","display_order"]}}},"additionalProperties":false,"required":["items"]}}}},"x-required-permissions":["product-lines.update"],"x-idempotent":false}}}}