{"openapi":"3.1.0","info":{"title":"Avizuaí API","description":"API REST do Avizuaí — plataforma de comunicação WhatsApp via Twilio. Dois grupos de endpoints: API v2 (externa, API Key) e API Admin (interna, JWT).","contact":{"name":"Nebula Code","url":"https://nebulacode.dev.br"},"version":"3.0"},"servers":[{"url":"http://api.avizuai.com.br","description":"Generated server url"}],"security":[{"X-Api-Key":[],"X-Api-Secret":[]},{"Bearer JWT":[]}],"tags":[{"name":"Usuários","description":"CRUD de usuários do sistema com gestão de níveis e procedimentos"},{"name":"Sistema - Monitoramento","description":"Métricas de saúde e performance do sistema"},{"name":"Dispositivos Saúde","description":"Registro de dispositivos para push notifications"},{"name":"API Externa - Configuração","description":"Status e estatísticas da aplicação via API Key"},{"name":"API Externa v2 - Pacientes","description":"CRUD básico de pacientes de saúde via OAuth2 client_credentials"},{"name":"Financeiro - Aplicação","description":"Gestão financeira por aplicação: saldo, tarifas, extrato e estornos"},{"name":"Integrações - Banco de Dados","description":"Configuração de integrações com bancos de dados legados"},{"name":"Saúde - Feedback de Exames","description":"Registra feedback do paciente (útil/não útil) sobre resposta da Lia"},{"name":"API Externa v2 - Atendimentos","description":"Leitura da fila e escalação de sessões via OAuth2 client_credentials"},{"name":"Catálogo de Exames - Perfis de Paciente","description":"Listagem de perfis clínicos de paciente usados em orientações por exame"},{"name":"Webhooks","description":"Endpoints públicos para recebimento de webhooks Twilio (validados por X-Twilio-Signature)"},{"name":"Configurações - Transcrição","description":"Configuração de transcrição automática de áudio (Whisper)"},{"name":"Consentimentos Dispositivo","description":"Gestão de consentimentos de permissões do app mobile (LGPD)"},{"name":"Sistema - Dashboard","description":"Dashboard administrativo com métricas gerais do sistema"},{"name":"Consentimentos Dispositivo (Admin)","description":"Gestão administrativa de consentimentos de permissões do app mobile"},{"name":"WhatsApp - DLQ","description":"Dead Letter Queue — mensagens com falha permanente"},{"name":"Atendimento","description":"Painel de atendimento humanizado — fila, chat, operadores e indicadores"},{"name":"WhatsApp - Recebidas","description":"Mensagens WhatsApp recebidas via webhook Twilio"},{"name":"Status","description":"Status e informações do sistema"},{"name":"Atendimento - Métricas IA","description":"Métricas de qualidade do auto-atendimento por IA"},{"name":"Saúde - Agendamentos","description":"Gestão de agendamentos de saúde com workflow de comunicação WhatsApp"},{"name":"Perfil","description":"Gestão do perfil do usuário autenticado"},{"name":"Contato","description":"Solicitação de demonstração da plataforma"},{"name":"Contas IMAP","description":"Cadastro de contas IMAP monitoradas pelo workflow n8n"},{"name":"Configurações - Carimbo de Tempo","description":"Configuração de carimbo de tempo RFC 3161 (ICP-Brasil)"},{"name":"Financeiro - Impostos","description":"Configuração de impostos para cálculo financeiro"},{"name":"Sistema - Integridade","description":"Verificação da cadeia de integridade legal de mensagens (SHA-256 + RFC 3161)"},{"name":"API Externa - Mensagens","description":"Envio e consulta de mensagens WhatsApp via API Key. Autenticação via headers X-Api-Key e X-Api-Secret."},{"name":"Integrações - Registros","description":"Registros importados pelos agentes on-premises"},{"name":"Configurações - IA Status","description":"Status consolidado da auto-resposta IA (badge no header admin)"},{"name":"Autenticação","description":"Login e obtenção de JWT Bearer Token"},{"name":"API Externa - Integrações","description":"Endpoints consumidos pelos agentes on-premises (avizuai-client) via OAuth2/JWT"},{"name":"n8n Teste (sandbox)","description":"Endpoint público de teste para workflows n8n — sem auth, grava em tabela isolada"},{"name":"Notificações Saúde","description":"Notificações do paciente"},{"name":"Financeiro - Caixa","description":"Caixa consolidado: receita, custo e margem por aplicação"},{"name":"Atendimento - Competências","description":"Catálogo de competências por aplicação para roteamento skill-based (M6)"},{"name":"Configurações - IA","description":"Configuração de providers de IA (OpenAI, Claude, Groq, Ollama)"},{"name":"Agendamentos Saúde","description":"Agendamentos do paciente"},{"name":"Pesquisas Saúde","description":"Pesquisas de satisfação e decisão"},{"name":"Financeiro - IA","description":"Tarifas e custos dos providers de IA por modelo"},{"name":"API Externa - Financeiro","description":"Consulta de saldo, tarifas e extrato via API Key"},{"name":"Sistema - Auditoria","description":"Logs de auditoria de todas as operações do sistema"},{"name":"IA - Base de Conhecimento","description":"CRUD de itens da base de conhecimento para RAG"},{"name":"Pesquisas","description":"Pesquisas de decisão com builder visual, configuração e simulação"},{"name":"Configurações - Atendimento","description":"Configuração de limiares de alerta do atendimento"},{"name":"WhatsApp - Histórico","description":"Histórico de mensagens WhatsApp enviadas"},{"name":"Configurações - Twilio","description":"Configuração de credenciais e integração WhatsApp/Twilio"},{"name":"IA - Advisor","description":"Advisor estratégico — análise IA de dados de atendimento"},{"name":"API Externa v2 - Agendamentos","description":"CRUD de agendamentos de saúde via OAuth2 client_credentials"},{"name":"WhatsApp - Agendamentos","description":"Agendamentos de mensagens WhatsApp (data fixa, relativo, recorrente)"},{"name":"IA - Logs","description":"Logs de interações individuais com IA"},{"name":"Perfil Saúde","description":"Perfil do paciente"},{"name":"WhatsApp - Testes","description":"Teste de envio de mensagens WhatsApp"},{"name":"Simulador","description":"Simulador de webhooks Twilio para testes de atendimento"},{"name":"Sistema - Logs Tempo Real","description":"Visualização de logs em tempo real via polling"},{"name":"IA - Dashboard","description":"Dashboard de métricas de interações com IA"},{"name":"n8n Teste (Admin)","description":"Consulta de payloads recebidos do n8n para inspeção"},{"name":"Compliance - Blacklist","description":"Gestão de números bloqueados para envio de WhatsApp"},{"name":"WhatsApp - Dashboard","description":"Dashboard consolidado de métricas WhatsApp"},{"name":"Atendimento - Respostas Rápidas","description":"Respostas rápidas pré-definidas para operadores"},{"name":"WhatsApp - Campanhas","description":"Campanhas de envio em massa com importação de destinatários via Excel"},{"name":"Webhooks - Subscriptions","description":"CRUD de webhooks outbound + log de entregas"},{"name":"Saúde - Alterações Pendentes","description":"Alterações manuais em paciente/prestador ainda não refletidas no Acessor"},{"name":"Webhooks - Inbound","description":"Endpoint genérico para receber webhooks de sistemas externos (n8n, Zapier, etc.)"},{"name":"Catálogo de Exames - Ingestão","description":"Configuração, execução e monitoramento do pipeline de importação de fontes externas"},{"name":"Compliance - LGPD","description":"Dashboard e auditoria de conformidade com LGPD"},{"name":"Mensagens Saúde","description":"Histórico de mensagens WhatsApp do paciente"},{"name":"Saúde - Templates","description":"Templates de mensagem para agendamentos de saúde"},{"name":"Catálogo de Exames - Categorias","description":"CRUD de categorias clínicas dos exames"},{"name":"Integrações - Logs","description":"Logs de execução das integrações"},{"name":"Autenticacao Saude","description":"Login OTP para pacientes via WhatsApp"},{"name":"Sistema - Loggers","description":"Gestão dinâmica de níveis de log em tempo de execução"},{"name":"Catálogo de Exames","description":"CRUD do catálogo global de exames (preparos, contraindicações, orientações por perfil, fontes)"},{"name":"Integrações - API Externa","description":"Configuração de integrações com APIs REST externas"},{"name":"Catálogo de Exames - Métricas","description":"KPIs e relatórios do uso do catálogo de exames pelo auto-atendimento"},{"name":"Saúde - Cadastros","description":"Cadastros normalizados de pacientes, prestadores e procedimentos"},{"name":"IA - Mensagens Auto-Atendimento","description":"Templates de mensagens configuráveis do bot de auto-atendimento"},{"name":"WhatsApp - Controle Operacional","description":"Controle em tempo real de envios, campanhas, agendamentos e retry"},{"name":"API Externa v2 - Mensagens","description":"Envio de mensagens WhatsApp via OAuth2 client_credentials (consumível por n8n, Zapier, scripts)"},{"name":"Saúde - Schedulers","description":"Configuração e disparo manual dos jobs de agendamento de saúde por aplicação"},{"name":"Perfis e Permissões","description":"Editor da matriz RBAC dinâmica"},{"name":"Aplicações","description":"CRUD de aplicações clientes que consomem a API de mensagens"},{"name":"Sistema - Logs Download","description":"Download de arquivos de log do servidor"}],"paths":{"/api/v4/saude/perfil":{"get":{"tags":["Perfil Saúde"],"summary":"Obter perfil do paciente","description":"Retorna dados do perfil do paciente autenticado","operationId":"getPerfil","responses":{"200":{"description":"Perfil retornado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacientePerfilDTO"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacientePerfilDTO"}}}}}},"put":{"tags":["Perfil Saúde"],"summary":"Atualizar perfil do paciente","description":"Atualiza campos editáveis: nome, sexo, data nascimento, bairro, cidade","operationId":"atualizarPerfil","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PacientePerfilDTO"}}},"required":true},"responses":{"200":{"description":"Perfil atualizado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacientePerfilDTO"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacientePerfilDTO"}}}}}}},"/api/v4/saude/consentimentos":{"get":{"tags":["Consentimentos Dispositivo"],"summary":"Listar consentimentos","description":"Lista todos os consentimentos de permissões do paciente autenticado","operationId":"listar","responses":{"200":{"description":"Lista de consentimentos","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}}}},"put":{"tags":["Consentimentos Dispositivo"],"summary":"Atualizar consentimentos em batch","description":"Atualiza múltiplos consentimentos de uma vez (registro inicial ou atualização)","operationId":"atualizar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarConsentimentosRequest"}}},"required":true},"responses":{"200":{"description":"Consentimentos atualizados","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}}}}},"/api/v4/saude/consentimentos/{tipo}/revogar":{"put":{"tags":["Consentimentos Dispositivo"],"summary":"Revogar permissão","description":"Revoga consentimento de uma permissão específica. O usuário é informado das implicações.","operationId":"revogar","parameters":[{"name":"tipo","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Permissão revogada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}}}},"/api/v4/saude/consentimentos/{tipo}/conceder":{"put":{"tags":["Consentimentos Dispositivo"],"summary":"Conceder permissão","description":"Concede consentimento para uma permissão específica","operationId":"conceder","parameters":[{"name":"tipo","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Permissão concedida","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}}}}},"/api/admin/webhooks/{id}":{"get":{"tags":["Webhooks - Subscriptions"],"summary":"Buscar subscription","operationId":"buscar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionDTO"}}}}}},"put":{"tags":["Webhooks - Subscriptions"],"summary":"Atualizar subscription","description":"Campos null são ignorados. Secret só é atualizado se vier preenchido.","operationId":"atualizar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarSubRequest"}}},"required":true},"responses":{"200":{"description":"Atualizada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionDTO"}}}}}},"delete":{"tags":["Webhooks - Subscriptions"],"summary":"Excluir subscription","operationId":"excluir","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Excluída"}}}},"/api/admin/saude/cadastros/prestadores/{id}":{"get":{"tags":["Saúde - Cadastros"],"summary":"Detalhe do prestador","description":"Retorna dados do prestador com seus agendamentos","operationId":"detalhePrestador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Prestador retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Saúde - Cadastros"],"summary":"Editar prestador manualmente","description":"Aplica edição manual nos campos informados e registra cada campo alterado no histórico (origem=MANUAL, pendente_acessor=true). Motivo é obrigatório.","operationId":"editarPrestador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditarPrestadorRequest"}}},"required":true},"responses":{"200":{"description":"Prestador editado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PrestadorSaudeDTO"}}}},"400":{"description":"Motivo ausente ou dados inválidos","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PrestadorSaudeDTO"}}}},"403":{"description":"Sem permissão","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PrestadorSaudeDTO"}}}},"404":{"description":"Prestador não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PrestadorSaudeDTO"}}}}}},"delete":{"tags":["Saúde - Cadastros"],"summary":"Excluir prestador","description":"Exclusão em cascata: desvincula agendamentos e registros importados (prestador_saude_id = NULL). Restrito a ADMINISTRADOR.","operationId":"excluirPrestador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Prestador excluído com sucesso"},"403":{"description":"Sem permissão"},"404":{"description":"Prestador não encontrado"}}}},"/api/admin/saude/cadastros/pacientes/{id}":{"get":{"tags":["Saúde - Cadastros"],"summary":"Detalhe do paciente","description":"Retorna dados do paciente com seus agendamentos","operationId":"detalhePaciente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Paciente retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Saúde - Cadastros"],"summary":"Editar paciente manualmente","description":"Aplica edição manual nos campos informados e registra cada campo alterado no histórico (origem=MANUAL, pendente_acessor=true). Motivo é obrigatório.","operationId":"editarPaciente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditarPacienteRequest"}}},"required":true},"responses":{"200":{"description":"Paciente editado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"400":{"description":"Motivo ausente ou dados inválidos","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"403":{"description":"Sem permissão","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"404":{"description":"Paciente não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}}}},"delete":{"tags":["Saúde - Cadastros"],"summary":"Excluir paciente","description":"Exclusão em cascata: remove paciente + dispositivos + consentimentos + histórico LGPD + agendamentos + notificações + exame_uso. Desvincula registros importados (preserva auditoria). Restrito a ADMINISTRADOR.","operationId":"excluirPaciente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Paciente excluído com sucesso"},"403":{"description":"Sem permissão"},"404":{"description":"Paciente não encontrado"}}}},"/api/admin/pesquisas/pergunta/{perguntaId}":{"put":{"tags":["Pesquisas"],"summary":"Editar pergunta","description":"Atualiza uma pergunta existente","operationId":"editarPergunta","parameters":[{"name":"perguntaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerguntaPesquisaDTO"}}},"required":true},"responses":{"200":{"description":"Pergunta atualizada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerguntaPesquisaDTO"}}}}}},"delete":{"tags":["Pesquisas"],"summary":"Excluir pergunta","description":"Remove uma pergunta e suas opções","operationId":"excluirPergunta","parameters":[{"name":"perguntaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Pergunta excluída com sucesso"}}}},"/api/admin/pesquisas/opcao/{opcaoId}":{"put":{"tags":["Pesquisas"],"summary":"Editar opção","description":"Atualiza uma opção de resposta existente","operationId":"editarOpcao","parameters":[{"name":"opcaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpcaoDTO"}}},"required":true},"responses":{"200":{"description":"Opção atualizada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OpcaoDTO"}}}}}},"delete":{"tags":["Pesquisas"],"summary":"Excluir opção","description":"Remove uma opção de resposta","operationId":"excluirOpcao","parameters":[{"name":"opcaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Opção excluída com sucesso"}}}},"/api/admin/perfis/tipos/{id}":{"put":{"tags":["Perfis e Permissões"],"summary":"Atualizar perfil customizado","operationId":"atualizarPerfil_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarPerfilRequest"}}},"required":true},"responses":{"200":{"description":"Perfil atualizado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TipoUsuarioCustomDTO"}}}},"400":{"description":"Perfil do sistema não pode ser editado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TipoUsuarioCustomDTO"}}}}}},"delete":{"tags":["Perfis e Permissões"],"summary":"Excluir perfil customizado","operationId":"excluirPerfil","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Perfil excluído"},"400":{"description":"Perfil do sistema ou em uso por usuários"}}}},"/api/admin/perfis/permissao":{"put":{"tags":["Perfis e Permissões"],"summary":"Toggle de permissão","description":"Concede ou revoga uma permissão (perfil, funcionalidade, ação opcional). Invalida cache.","operationId":"togglePermissao","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TogglePermissaoRequest"}}},"required":true},"responses":{"200":{"description":"Permissão atualizada","content":{"*/*":{"schema":{"type":"boolean"}}}}}}},"/api/admin/perfil":{"get":{"tags":["Perfil"],"summary":"Obter perfil","description":"Retorna dados do perfil do usuário autenticado","operationId":"perfil","responses":{"200":{"description":"Perfil retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}},"put":{"tags":["Perfil"],"summary":"Atualizar perfil","description":"Atualiza dados pessoais e endereço do usuário","operationId":"atualizarPerfil_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarPerfilRequest"}}},"required":true},"responses":{"200":{"description":"Perfil atualizado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/perfil/senha":{"put":{"tags":["Perfil"],"summary":"Alterar senha","description":"Altera a senha do usuário autenticado","operationId":"alterarSenha","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlterarSenhaRequest"}}},"required":true},"responses":{"200":{"description":"Senha alterada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Senha atual incorreta ou validação falhou","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/loggers/{loggerName}":{"get":{"tags":["Sistema - Loggers"],"summary":"Consultar nível de logger","description":"Retorna o nível atual de um logger específico","operationId":"getLoggerLevel","parameters":[{"name":"loggerName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Nível retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Sistema - Loggers"],"summary":"Alterar nível de logger","description":"Altera o nível de log de um logger em tempo de execução","operationId":"setLoggerLevel","parameters":[{"name":"loggerName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetLevelRequest"}}},"required":true},"responses":{"200":{"description":"Nível alterado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Sistema - Loggers"],"summary":"Remover configuração de logger","description":"Remove a configuração persistida de um logger","operationId":"removeLogger","parameters":[{"name":"loggerName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Configuração removida com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/contas-imap/{id}":{"get":{"tags":["Contas IMAP"],"summary":"Detalhe de uma conta IMAP","operationId":"detalhe","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContaImapAdminDTO"}}}},"404":{"description":"Conta não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContaImapAdminDTO"}}}}}},"put":{"tags":["Contas IMAP"],"summary":"Atualizar conta IMAP","operationId":"atualizar_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarContaImapRequest"}}},"required":true},"responses":{"200":{"description":"Atualizada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContaImapAdminDTO"}}}}}},"delete":{"tags":["Contas IMAP"],"summary":"Excluir (soft-delete) conta IMAP","operationId":"excluir_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Excluída"}}}},"/api/admin/categorias-exame/{id}":{"get":{"tags":["Catálogo de Exames - Categorias"],"summary":"Buscar categoria","description":"Retorna uma categoria pelo ID","operationId":"buscar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Categoria retornada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}},"404":{"description":"Categoria não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}}}},"put":{"tags":["Catálogo de Exames - Categorias"],"summary":"Atualizar categoria","description":"Atualiza nome, descrição, ícone, ordem ou ativação","operationId":"atualizar_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarCategoriaExameRequest"}}},"required":true},"responses":{"200":{"description":"Categoria atualizada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}},"404":{"description":"Categoria não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}":{"get":{"tags":["Catálogo de Exames"],"summary":"Buscar exame","description":"Retorna a visão resumida de um exame pelo ID","operationId":"buscar_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exame retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"404":{"description":"Exame não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}},"put":{"tags":["Catálogo de Exames"],"summary":"Atualizar exame","description":"Atualiza um exame existente. Se estava ATIVO, vai para EM_REVISAO e incrementa versão.","operationId":"atualizar_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarExameRequest"}}},"required":true},"responses":{"200":{"description":"Exame atualizado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"400":{"description":"Slug já existe ou dados inválidos","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"404":{"description":"Exame não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}},"delete":{"tags":["Catálogo de Exames"],"summary":"Excluir exame definitivamente","description":"Remove permanentemente um exame e suas listas filhas (CASCADE). Use com cuidado — prefira ARQUIVAR para histórico.","operationId":"remover","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Exame removido com sucesso"}}}},"/api/admin/catalogo-exames/importacoes/configuracao/{provider}":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Buscar configuração por provider","operationId":"buscarConfiguracao","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConfiguracaoImportacaoExameDTO"}}}},"404":{"description":"Provider não configurado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConfiguracaoImportacaoExameDTO"}}}}}},"put":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Atualizar configuração de provider","description":"Habilitar/desabilitar, alterar URL, API key, cron, rate limit, etc.","operationId":"atualizarConfiguracao","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarConfiguracaoImportacaoRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConfiguracaoImportacaoExameDTO"}}}}}}},"/api/admin/base-conhecimento/{id}":{"get":{"tags":["IA - Base de Conhecimento"],"summary":"Buscar item","description":"Retorna um item da base de conhecimento pelo ID","operationId":"buscar_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Item retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BaseConhecimentoDTO"}}}}}},"put":{"tags":["IA - Base de Conhecimento"],"summary":"Atualizar item","description":"Atualiza um item existente na base de conhecimento","operationId":"atualizar_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarBaseConhecimentoRequest"}}},"required":true},"responses":{"200":{"description":"Item atualizado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BaseConhecimentoDTO"}}}}}},"delete":{"tags":["IA - Base de Conhecimento"],"summary":"Excluir item","description":"Remove um item da base de conhecimento","operationId":"excluir_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Item excluído com sucesso"}}}},"/api/webhooks/whatsapp/webhook":{"post":{"tags":["Webhooks"],"summary":"Webhook de mensagem recebida","description":"Recebe notificação de mensagem WhatsApp recebida do Twilio","operationId":"receberMensagem","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Webhook processado","content":{"*/*":{"schema":{"type":"string"}}}},"403":{"description":"Assinatura Twilio inválida","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/webhooks/whatsapp/webhook/test":{"post":{"tags":["Webhooks"],"summary":"Teste de webhook","description":"Health check para verificar se o endpoint de webhook está funcionando","operationId":"testarWebhook","responses":{"200":{"description":"Webhook funcionando","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/webhooks/whatsapp/status":{"post":{"tags":["Webhooks"],"summary":"Webhook de status de entrega","description":"Recebe atualização de status de entrega de mensagem do Twilio","operationId":"receberStatus","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"Status processado","content":{"*/*":{"schema":{"type":"string"}}}},"403":{"description":"Assinatura Twilio inválida","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/webhooks/n8n/teste-extracao":{"post":{"tags":["n8n Teste (sandbox)"],"summary":"Recebe payload de teste de extração do n8n","description":"Aceita qualquer payload JSON; grava os campos conhecidos em colunas e o JSON cru em payload_json.","operationId":"receber","requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/v4/saude/pesquisas/{pesquisaId}/responder-pergunta":{"post":{"tags":["Pesquisas Saúde"],"summary":"Responder uma pergunta e obter a proxima","description":"Servidor avalia condicao_resposta_pai/condicao_nota_min-max e devolve a proxima pergunta da arvore — ou finalizada=true se acabou.","operationId":"responderPergunta","parameters":[{"name":"pesquisaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponderPerguntaRequest"}}},"required":true},"responses":{"200":{"description":"Proxima pergunta ou fim da pesquisa","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponderPerguntaResponse"}}}},"400":{"description":"Pergunta invalida","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponderPerguntaResponse"}}}}}}},"/api/v4/saude/pesquisas/responder":{"post":{"tags":["Pesquisas Saúde"],"summary":"Responder pesquisa (legacy)","description":"Envia todas as respostas em um lote. Para arvore de decisao, use /iniciar e /responder-pergunta.","operationId":"responder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RespostaPesquisaMobileRequest"}}},"required":true},"responses":{"200":{"description":"Respostas registradas","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/notificacoes/{id}/marcar-lida":{"post":{"tags":["Notificações Saúde"],"summary":"Marcar notificação como lida","description":"Marca uma notificação específica como lida","operationId":"marcarLida","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Notificação marcada como lida","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/notificacoes/marcar-todas-lidas":{"post":{"tags":["Notificações Saúde"],"summary":"Marcar todas como lidas","description":"Marca todas as notificações do paciente como lidas","operationId":"marcarTodasLidas","responses":{"200":{"description":"Todas marcadas como lidas","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/mensagens":{"get":{"tags":["Mensagens Saúde"],"summary":"Listar mensagens do paciente","operationId":"listar_1","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Lista de mensagens","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelMensagemMobileDTO"}}}}}},"post":{"tags":["Mensagens Saúde"],"summary":"Enviar mensagem","description":"Paciente envia mensagem (texto e/ou mídia)","operationId":"enviar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarMensagemMobileRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem enviada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MensagemMobileDTO"}}}}}}},"/api/v4/saude/mensagens/upload":{"post":{"tags":["Mensagens Saúde"],"summary":"Upload de mídia","description":"Upload de áudio, imagem ou PDF","operationId":"upload","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Upload realizado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Tipo ou tamanho inválido","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/exame-uso/{usoId}/feedback":{"post":{"tags":["Saúde - Feedback de Exames"],"summary":"Registrar feedback do paciente","description":"O paciente marca a resposta como útil (true) ou não útil (false). Permite motivo opcional.","operationId":"registrarFeedback","parameters":[{"name":"usoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExameUsoFeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Feedback registrado com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"404":{"description":"Registro de uso não encontrado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/v4/saude/dispositivos/registrar":{"post":{"tags":["Dispositivos Saúde"],"summary":"Registrar dispositivo","description":"Registra token FCM/APNs para receber push notifications","operationId":"registrar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceTokenRequest"}}},"required":true},"responses":{"200":{"description":"Dispositivo registrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/auth/verificar-otp":{"post":{"tags":["Autenticacao Saude"],"summary":"Verificar codigo OTP","description":"Valida OTP e retorna JWT. Marca app_ativo=true no paciente.","operationId":"verificarOtp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpVerificacaoRequest"}}},"required":true},"responses":{"200":{"description":"JWT retornado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Codigo invalido ou expirado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/auth/solicitar-otp":{"post":{"tags":["Autenticacao Saude"],"summary":"Solicitar codigo OTP","description":"Busca paciente globalmente por telefone. Se encontrar, envia OTP. Se nao, retorna cadastroNecessario=true.","operationId":"solicitarOtp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpSolicitacaoRequest"}}},"required":true},"responses":{"200":{"description":"Resultado da solicitacao","content":{"*/*":{"schema":{"type":"object"}}}},"429":{"description":"Limite de tentativas excedido","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/auth/cadastrar-paciente":{"post":{"tags":["Autenticacao Saude"],"summary":"Auto-cadastro de paciente","description":"Cadastra paciente via app, cria OTP e envia codigo via WhatsApp","operationId":"cadastrarPaciente","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CadastrarPacienteMobileRequest"}}},"required":true},"responses":{"200":{"description":"Cadastro realizado, OTP enviado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados invalidos ou telefone ja cadastrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/agendamentos/{id}/confirmar":{"post":{"tags":["Agendamentos Saúde"],"summary":"Confirmar agendamento","description":"Paciente confirma presença no agendamento","operationId":"confirmar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Agendamento confirmado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/agendamentos/{id}/cancelar":{"post":{"tags":["Agendamentos Saúde"],"summary":"Cancelar agendamento","description":"Paciente solicita cancelamento do agendamento","operationId":"cancelar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Agendamento cancelado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks/inbound/{slug}/{fluxo}":{"post":{"tags":["Webhooks - Inbound"],"summary":"Receber webhook externo","description":"Aceita payload JSON livre e publica como WebhookInboundEvent. Valida assinatura HMAC SHA-256 se a aplicação tiver subscription com secret.","operationId":"receber_1","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"fluxo","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Avizuai-Signature","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"Webhook aceito e enfileirado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"Assinatura HMAC inválida ou ausente quando obrigatória","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"404":{"description":"Aplicação não encontrada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/v2/pacientes":{"get":{"tags":["API Externa v2 - Pacientes"],"summary":"Listar pacientes","description":"Lista paginada da aplicação do JWT. Filtro opcional por nome/telefone/CPF.","operationId":"listar_2","parameters":[{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}},"post":{"tags":["API Externa v2 - Pacientes"],"summary":"Cadastrar/atualizar paciente (upsert por CPF)","description":"Se já existe paciente com o mesmo CPF na aplicação, atualiza campos não-nulos. Senão cria.","operationId":"upsert","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertPacienteRequest"}}},"required":true},"responses":{"201":{"description":"Paciente criado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"200":{"description":"Paciente atualizado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"400":{"description":"CPF inválido ou campos obrigatórios faltando","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}}}}},"/api/external/v2/mensagens":{"post":{"tags":["API Externa v2 - Mensagens"],"summary":"Enviar mensagem WhatsApp","description":"Envia mensagem de texto livre para um telefone. A aplicação é inferida do JWT (claim aplicacao_id). Histórico, tarifação e webhooks de status são acionados normalmente.","operationId":"enviar_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarMensagemRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem enviada (ou tentativa registrada)","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Request inválido (telefone/mensagem ausente)","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"JWT inválido ou scope ausente","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"402":{"description":"Sem saldo","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/v2/atendimentos/{sessaoId}/escalar":{"post":{"tags":["API Externa v2 - Atendimentos"],"summary":"Escalar sessão para humano","description":"Marca a sessão como NA_FILA. Idempotente — sessões já na fila ou em atendimento retornam sem alteração. Útil para fluxos n8n que detectam condições externas (ex: paciente VIP, integração de sistema legado falhou).","operationId":"escalar","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EscalarRequest"}}}},"responses":{"200":{"description":"Escalada (ou já estava na fila)","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"404":{"description":"Sessão não encontrada ou de outra aplicação","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/v2/agendamentos":{"get":{"tags":["API Externa v2 - Agendamentos"],"summary":"Listar agendamentos","description":"Lista paginada de agendamentos da aplicação do JWT. Filtros opcionais por status.","operationId":"listar_3","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}},"post":{"tags":["API Externa v2 - Agendamentos"],"summary":"Criar agendamento","description":"Cria agendamento via API externa. Aplicação é inferida do JWT.","operationId":"criar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarAgendamentoRequest"}}},"required":true},"responses":{"201":{"description":"Agendamento criado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/external/messages/send":{"post":{"tags":["API Externa - Mensagens"],"summary":"Enviar mensagem WhatsApp","description":"Envia mensagem de texto para um número WhatsApp. Verifica saldo antes do envio.","operationId":"sendMessage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem enviada","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"type":"object"}}}},"402":{"description":"Saldo insuficiente","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/external/integracoes/registros":{"post":{"tags":["API Externa - Integrações"],"summary":"Enviar registros importados","description":"Recebe registros do sistema legado para importação","operationId":"importarRegistros","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportRequest"}}},"required":true},"responses":{"200":{"description":"Registros importados","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportResult"}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportResult"}}}}}}},"/api/external/integracoes/logs":{"post":{"tags":["API Externa - Integrações"],"summary":"Registrar log de execução","description":"Registra log de execução de uma integração","operationId":"registrarLog","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogExecucaoRequest"}}},"required":true},"responses":{"200":{"description":"Log registrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegracaoLogExecucaoDTO"}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegracaoLogExecucaoDTO"}}}}}}},"/api/contato":{"post":{"tags":["Contato"],"summary":"Solicitar demonstração","description":"Recebe dados de contato e envia email ao administrador","operationId":"solicitar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SolicitacaoDemoDTO"}}},"required":true},"responses":{"200":{"description":"Solicitação enviada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/testes/enviar":{"post":{"tags":["WhatsApp - Testes"],"summary":"Enviar mensagem de teste","description":"Envia uma mensagem WhatsApp de teste para o número informado","operationId":"enviar_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarTesteRequest"}}},"required":true},"responses":{"200":{"description":"Resultado do envio","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/recebidas/{id}/transcrever":{"post":{"tags":["WhatsApp - Recebidas"],"summary":"Transcrever áudio","description":"Solicita transcrição manual de uma mensagem de áudio recebida","operationId":"transcrever","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Transcrição solicitada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Erro na transcrição","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/recebidas/limpar":{"post":{"tags":["WhatsApp - Recebidas"],"summary":"Limpar mensagens recebidas","description":"Remove todas as mensagens recebidas do histórico","operationId":"limpar","responses":{"200":{"description":"Mensagens removidas","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/enviadas/limpar":{"post":{"tags":["WhatsApp - Histórico"],"summary":"Limpar histórico","description":"Remove todas as mensagens enviadas do histórico","operationId":"limpar_1","responses":{"200":{"description":"Histórico limpo","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/dlq/{id}/reprocessar":{"post":{"tags":["WhatsApp - DLQ"],"summary":"Reprocessar mensagem","description":"Reenvia uma mensagem específica da DLQ para reprocessamento","operationId":"reprocessar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Mensagem reenviada para reprocessamento","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/dlq/{id}/descartar":{"post":{"tags":["WhatsApp - DLQ"],"summary":"Descartar mensagem","description":"Descarta uma mensagem da DLQ sem reprocessar","operationId":"descartar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Mensagem descartada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/dlq/reprocessar-todas":{"post":{"tags":["WhatsApp - DLQ"],"summary":"Reprocessar todas","description":"Reenvia todas as mensagens da DLQ da aplicação para reprocessamento","operationId":"reprocessarTodas","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Mensagens reenviadas","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/dlq/limpar":{"post":{"tags":["WhatsApp - DLQ"],"summary":"Limpar DLQ","description":"Remove todas as mensagens da DLQ da aplicação","operationId":"limpar_2","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"DLQ limpa","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/controle/twilio/testar":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Testar conexão Twilio","description":"Testa a conectividade com a API do Twilio","operationId":"testarTwilio","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Resultado do teste","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/controle/toggle/retry":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Toggle retry","description":"Ativa ou desativa o reprocessamento automático de mensagens com falha","operationId":"toggleRetry","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/toggle/envios":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Toggle envios globais","description":"Ativa ou desativa os envios globais de mensagens WhatsApp","operationId":"toggleEnvios","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/toggle/campanhas":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Toggle campanhas","description":"Ativa ou desativa o processamento de campanhas","operationId":"toggleCampanhas","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/toggle/agendamentos":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Toggle agendamentos","description":"Ativa ou desativa o processamento de agendamentos","operationId":"toggleAgendamentos","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/retomada":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Retomada de envios","description":"Reativa todos os envios após parada de emergência","operationId":"retomadaEnvios","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Envios retomados","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/emergencia":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Parada de emergência","description":"Desativa todos os envios, campanhas, agendamentos e retry simultaneamente","operationId":"paradaEmergencia","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Parada executada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/controle/cotacao/testar":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Testar cotação USD/BRL","description":"Testa a conectividade com a API de cotação AwesomeAPI","operationId":"testarCotacao","responses":{"200":{"description":"Resultado do teste","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/controle/configuracao":{"post":{"tags":["WhatsApp - Controle Operacional"],"summary":"Atualizar configuração runtime","description":"Atualiza parâmetros de execução: threads, tamanho de lote, intervalo e rate limit","operationId":"atualizarConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigControleRequest"}}},"required":true},"responses":{"200":{"description":"Configuração atualizada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ControleWhatsAppDTO"}}}}}}},"/api/admin/whatsapp/campanhas":{"get":{"tags":["WhatsApp - Campanhas"],"summary":"Listar campanhas","description":"Lista paginada de campanhas com filtro por status","operationId":"listar_4","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["RASCUNHO","AGENDADA","PROCESSANDO","PAUSADA","CONCLUIDA","CANCELADA"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWhatsAppCampanhaDTO"}}}}}},"post":{"tags":["WhatsApp - Campanhas"],"summary":"Criar campanha","description":"Cria nova campanha, opcionalmente com destinatários importados de Excel","operationId":"criar_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarCampanhaRequest"}}},"required":true},"responses":{"201":{"description":"Campanha criada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppCampanhaDTO"}}}}}}},"/api/admin/whatsapp/campanhas/{id}/retomar":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Retomar campanha","description":"Retoma o processamento de uma campanha pausada","operationId":"retomar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Campanha retomada"}}}},"/api/admin/whatsapp/campanhas/{id}/pausar":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Pausar campanha","description":"Pausa o processamento da campanha em andamento","operationId":"pausar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Campanha pausada"}}}},"/api/admin/whatsapp/campanhas/{id}/iniciar":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Iniciar campanha","description":"Inicia o processamento assíncrono da campanha","operationId":"iniciar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Campanha iniciada"}}}},"/api/admin/whatsapp/campanhas/{id}/destinatarios":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Adicionar destinatário","description":"Adiciona um destinatário individual à campanha","operationId":"adicionarDestinatario","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppCampanhaDestinatarioDTO"}}},"required":true},"responses":{"201":{"description":"Destinatário adicionado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/campanhas/{id}/destinatarios/{destId}/telefone":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Atualizar telefone do destinatário","description":"Atualiza o número de telefone de um destinatário da campanha","operationId":"atualizarTelefone","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"destId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"Telefone atualizado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/campanhas/{id}/cancelar":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Cancelar campanha","description":"Cancela uma campanha em qualquer status","operationId":"cancelar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Campanha cancelada"}}}},"/api/admin/whatsapp/campanhas/upload-excel":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Upload de Excel","description":"Faz upload e parsing de planilha Excel com destinatários","operationId":"uploadExcel","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"arquivo":{"type":"string","format":"binary"}},"required":["arquivo"]}}}},"responses":{"200":{"description":"Excel processado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Arquivo inválido","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/campanhas/gerar-mensagem-ia":{"post":{"tags":["WhatsApp - Campanhas"],"summary":"Gerar mensagem com IA","description":"Gera texto de mensagem para campanha usando inteligência artificial","operationId":"gerarMensagemIA","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GerarMensagemIACampanhaRequest"}}},"required":true},"responses":{"200":{"description":"Texto gerado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/blacklist/{id}/reativar":{"post":{"tags":["Compliance - Blacklist"],"summary":"Reativar contato","description":"Remove o bloqueio de um contato, permitindo envio novamente","operationId":"reativar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Contato reativado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoContatoDTO"}}}}}}},"/api/admin/whatsapp/blacklist/{id}/bloquear-permanente":{"post":{"tags":["Compliance - Blacklist"],"summary":"Bloquear permanentemente","description":"Marca o contato como bloqueado permanentemente","operationId":"bloquearPermanente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Contato bloqueado permanentemente com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoContatoDTO"}}}}}}},"/api/admin/whatsapp/blacklist/adicionar":{"post":{"tags":["Compliance - Blacklist"],"summary":"Adicionar à blacklist","description":"Bloqueia um número de telefone para envio de mensagens","operationId":"adicionar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdicionarBlacklistRequest"}}},"required":true},"responses":{"200":{"description":"Número adicionado à blacklist com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/agendamentos":{"get":{"tags":["WhatsApp - Agendamentos"],"summary":"Listar agendamentos","description":"Lista paginada de agendamentos com filtro por status","operationId":"listar_5","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["AGENDADA","PROCESSANDO","ENVIADA","CANCELADA","FALHOU","EXPIRADA"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWhatsAppMensagemAgendadaDTO"}}}}}},"post":{"tags":["WhatsApp - Agendamentos"],"summary":"Criar agendamento","description":"Cria novo agendamento de mensagem WhatsApp","operationId":"criar_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemAgendadaDTO"}}},"required":true},"responses":{"201":{"description":"Agendamento criado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemAgendadaDTO"}}}}}}},"/api/admin/whatsapp/agendamentos/{id}/cancelar":{"post":{"tags":["WhatsApp - Agendamentos"],"summary":"Cancelar agendamento","description":"Cancela um agendamento pendente","operationId":"cancelar_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Agendamento cancelado"}}}},"/api/admin/whatsapp/agendamentos/gerar-mensagem-ia":{"post":{"tags":["WhatsApp - Agendamentos"],"summary":"Gerar mensagem com IA","description":"Gera texto de mensagem para agendamento usando inteligência artificial","operationId":"gerarMensagemIA_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GerarMensagemIAAgendamentoRequest"}}},"required":true},"responses":{"200":{"description":"Texto gerado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/webhooks":{"get":{"tags":["Webhooks - Subscriptions"],"summary":"Listar subscriptions","description":"Lista paginada de webhook subscriptions, filtra por aplicação se informada","operationId":"listar_6","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWebhookSubscriptionDTO"}}}}}},"post":{"tags":["Webhooks - Subscriptions"],"summary":"Criar subscription","description":"Cria uma nova subscription. Eventos: CSV de EventoWebhook ou '*' para todos.","operationId":"criar_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarSubRequest"}}},"required":true},"responses":{"201":{"description":"Criada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionDTO"}}}}}}},"/api/admin/webhooks/deliveries/{deliveryId}/reprocessar":{"post":{"tags":["Webhooks - Subscriptions"],"summary":"Reprocessar delivery","description":"Reenfileira um delivery (útil para itens em DLQ)","operationId":"reprocessar_1","parameters":[{"name":"deliveryId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Reenfileirado"}}}},"/api/admin/usuarios":{"get":{"tags":["Usuários"],"summary":"Listar usuários","description":"Lista paginada de usuários com filtro por busca e aplicação","operationId":"listar_7","parameters":[{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelUsuarioDTO"}}}}}},"post":{"tags":["Usuários"],"summary":"Criar usuário","description":"Cria usuário e envia credenciais por email","operationId":"criar_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarUsuarioRequest"}}},"required":true},"responses":{"201":{"description":"Usuário criado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}}},"/api/admin/usuarios/{id}/toggle-ativo":{"post":{"tags":["Usuários"],"summary":"Ativar/desativar usuário","description":"Alterna o status ativo/inativo do usuário","operationId":"toggleAtivo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado"}}}},"/api/admin/usuarios/{id}/resetar-senha":{"post":{"tags":["Usuários"],"summary":"Resetar senha","description":"Reseta a senha do usuário. Se 'senha' informada no body, usa essa senha; senão gera uma temporária","operationId":"resetarSenha","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetarSenhaUsuarioRequest"}}}},"responses":{"200":{"description":"Senha resetada"}}}},"/api/admin/usuarios/{id}/reenviar-verificacao":{"post":{"tags":["Usuários"],"summary":"Reenviar email de verificação","description":"Reenvia o código de verificação de email para o usuário","operationId":"reenviarVerificacao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Email reenviado"}}}},"/api/admin/usuarios/{id}/procedimentos":{"get":{"tags":["Usuários"],"summary":"Procedimentos do operador","description":"Lista procedimentos associados a um operador","operationId":"procedimentosDoOperador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Usuários"],"summary":"Sincronizar procedimentos","description":"Atualiza procedimentos de um operador","operationId":"sincronizarProcedimentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SincronizarProcedimentosRequest"}}},"required":true},"responses":{"200":{"description":"Procedimentos sincronizados","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/usuarios/{id}/competencias":{"post":{"tags":["Usuários"],"summary":"Atualizar competências do operador","description":"Define as competências (skills) do usuário para roteamento inteligente da fila (V00043). Set vazio remove todas. Strings são normalizadas para lowercase trim.","operationId":"atualizarCompetencias","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}},"required":true},"responses":{"200":{"description":"Competências atualizadas","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}}},"/api/admin/simulador/webhook/status":{"post":{"tags":["Simulador"],"summary":"Simular status","description":"Simula callback de status de entrega de mensagem","operationId":"simularStatus","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusWebhookRequest"}}},"required":true},"responses":{"200":{"description":"Status simulado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/simulador/webhook/limpar":{"post":{"tags":["Simulador"],"summary":"Limpar mensagens","description":"Remove todas as mensagens do simulador","operationId":"limpar_3","responses":{"200":{"description":"Mensagens removidas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/simulador/webhook/enviar":{"post":{"tags":["Simulador"],"summary":"Enviar mensagem simulada","description":"Simula recebimento de mensagem WhatsApp via webhook","operationId":"enviar_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarWebhookRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem simulada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SimuladorResultDTO"}}}}}}},"/api/admin/saude/templates":{"get":{"tags":["Saúde - Templates"],"summary":"Listar templates","description":"Lista todos os templates de mensagem de saúde da aplicação","operationId":"listar_8","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Templates listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Saúde - Templates"],"summary":"Salvar template","description":"Cria ou atualiza um template de mensagem de saúde. Falha com 409 quando um ou mais procedimentos selecionados já têm template ativo do mesmo tipo.","operationId":"salvar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarTemplateRequest"}}},"required":true},"responses":{"200":{"description":"Template salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Procedimento(s) já vinculado(s) a outro template ativo do mesmo tipo","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/schedulers/{aplicacaoId}/executar/{job}":{"post":{"tags":["Saúde - Schedulers"],"summary":"Executar job manualmente","description":"Dispara o job para a aplicação, ignorando o cron. Marca origem=MANUAL no histórico","operationId":"executar","parameters":[{"name":"aplicacaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"job","in":"path","required":true,"schema":{"type":"string","enum":["PROCESSAR_IMPORTS","ENVIAR_AVISOS","MARCAR_EXPIRADOS"]}}],"responses":{"200":{"description":"Execução concluída — total e erro vêm no body","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoSaudeSchedulerExecucaoDTO"}}}},"404":{"description":"Aplicação não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoSaudeSchedulerExecucaoDTO"}}}}}}},"/api/admin/saude/cadastros/procedimentos":{"get":{"tags":["Saúde - Cadastros"],"summary":"Listar procedimentos","description":"Lista procedimentos de saúde com busca e paginação","operationId":"listarProcedimentos","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Procedimentos listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelProcedimentoSaudeDTO"}}}}}},"post":{"tags":["Saúde - Cadastros"],"summary":"Salvar procedimento","description":"Cria ou atualiza um procedimento de saúde","operationId":"salvarProcedimento","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcedimentoSaudeDTO"}}},"required":true},"responses":{"200":{"description":"Procedimento salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/alteracoes-pendentes/sincronizar":{"post":{"tags":["Saúde - Alterações Pendentes"],"summary":"Marcar pendências como sincronizadas","description":"Sinaliza que as alterações já foram refletidas no Acessor (pendenteAcessor=false)","operationId":"sincronizar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarcarSincronizadoRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/saude/agendamentos/{id}/reagendar":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Reagendar agendamento","description":"Reagenda um agendamento, voltando-o para a fila de envio","operationId":"reagendar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReagendarRequest"}}},"required":true},"responses":{"200":{"description":"Agendamento reagendado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/enviar":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Enviar mensagem","description":"Envia mensagem WhatsApp para o paciente do agendamento","operationId":"enviar_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem enviada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/editar":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Editar agendamento","description":"Altera telefone do paciente com registro de motivo","operationId":"editar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditarAgendamentoRequest"}}},"required":true},"responses":{"200":{"description":"Agendamento editado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/cancelar":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Cancelar agendamento","description":"Cancela um agendamento de saúde com motivo","operationId":"cancelar_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelarRequest"}}}},"responses":{"200":{"description":"Agendamento cancelado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/envio-lote/preview":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Preview de envio em lote","description":"Prepara preview do envio em lote com custos estimados","operationId":"envioLotePreview","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvioLoteRequest"}}},"required":true},"responses":{"200":{"description":"Preview do lote gerado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/envio-lote/confirmar":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Confirmar envio em lote","description":"Confirma e executa envio em lote de mensagens WhatsApp","operationId":"envioLoteConfirmar","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvioLoteConfirmarRequest"}}},"required":true},"responses":{"200":{"description":"Envio em lote iniciado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/cancelar-lote":{"post":{"tags":["Saúde - Agendamentos"],"summary":"Cancelar em lote","description":"Cancela múltiplos agendamentos de uma vez","operationId":"cancelarLote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelarLoteRequest"}}},"required":true},"responses":{"200":{"description":"Agendamentos cancelados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/respostas-rapidas":{"get":{"tags":["Atendimento - Respostas Rápidas"],"summary":"Listar respostas rápidas","description":"Lista paginada de respostas rápidas por aplicação","operationId":"listar_9","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Atendimento - Respostas Rápidas"],"summary":"Salvar resposta rápida","description":"Cria ou atualiza uma resposta rápida","operationId":"salvar_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarRespostaRapidaRequest"}}},"required":true},"responses":{"200":{"description":"Resposta rápida salva","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/pesquisas":{"get":{"tags":["Pesquisas"],"summary":"Listar pesquisas","description":"Lista pesquisas de decisão com busca e paginação","operationId":"listar_10","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"Pesquisas listadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelPesquisaDTO"}}}}}},"post":{"tags":["Pesquisas"],"summary":"Criar pesquisa","description":"Cria uma nova pesquisa de decisão","operationId":"criar_5","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarPesquisaRequest"}}},"required":true},"responses":{"201":{"description":"Pesquisa criada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}}},"/api/admin/pesquisas/{id}/publicar":{"post":{"tags":["Pesquisas"],"summary":"Publicar pesquisa","description":"Publica a pesquisa tornando-a ativa para envio","operationId":"publicar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Pesquisa publicada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}}},"/api/admin/pesquisas/{id}/pergunta":{"post":{"tags":["Pesquisas"],"summary":"Adicionar pergunta","description":"Adiciona uma nova pergunta à pesquisa","operationId":"adicionarPergunta","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerguntaPesquisaDTO"}}},"required":true},"responses":{"201":{"description":"Pergunta adicionada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerguntaPesquisaDTO"}}}}}}},"/api/admin/pesquisas/{id}/duplicar":{"post":{"tags":["Pesquisas"],"summary":"Duplicar pesquisa","description":"Cria uma cópia da pesquisa com todas as perguntas e opções","operationId":"duplicar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"201":{"description":"Pesquisa duplicada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}}},"/api/admin/pesquisas/{id}/configuracao/regras":{"post":{"tags":["Pesquisas"],"summary":"Salvar regras","description":"Configura regras de envio, horários, cooldown e limites","operationId":"salvarConfigRegras","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigRegrasRequest"}}},"required":true},"responses":{"200":{"description":"Regras salvas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/pesquisas/{id}/configuracao/mensagens":{"post":{"tags":["Pesquisas"],"summary":"Salvar mensagens","description":"Configura mensagens de abertura, encerramento, fallback, timeout e duplicata","operationId":"salvarMensagens","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigMensagensRequest"}}},"required":true},"responses":{"200":{"description":"Mensagens salvas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/pesquisas/{id}/configuracao/geral":{"post":{"tags":["Pesquisas"],"summary":"Salvar configuração geral","description":"Atualiza nome, descrição, canal, tipo e escala da pesquisa","operationId":"salvarConfigGeral","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigGeralRequest"}}},"required":true},"responses":{"200":{"description":"Configuração geral salva com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}}},"/api/admin/pesquisas/{id}/arquivar":{"post":{"tags":["Pesquisas"],"summary":"Arquivar pesquisa","description":"Arquiva a pesquisa desativando-a","operationId":"arquivar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Pesquisa arquivada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}}},"/api/admin/pesquisas/pergunta/{perguntaId}/opcao":{"post":{"tags":["Pesquisas"],"summary":"Adicionar opção","description":"Adiciona uma nova opção de resposta a uma pergunta","operationId":"adicionarOpcao","parameters":[{"name":"perguntaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpcaoDTO"}}},"required":true},"responses":{"201":{"description":"Opção adicionada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OpcaoDTO"}}}}}}},"/api/admin/perfis/tipos":{"post":{"tags":["Perfis e Permissões"],"summary":"Criar perfil customizado","operationId":"criarPerfil","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarPerfilRequest"}}},"required":true},"responses":{"201":{"description":"Perfil criado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TipoUsuarioCustomDTO"}}}},"400":{"description":"Dados inválidos ou código já existe","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TipoUsuarioCustomDTO"}}}}}}},"/api/admin/perfil/foto":{"post":{"tags":["Perfil"],"summary":"Upload de foto de perfil","description":"Faz upload e atualiza a foto de perfil do usuário","operationId":"uploadFoto","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"foto":{"type":"string","format":"binary"}},"required":["foto"]}}}},"responses":{"200":{"description":"Foto atualizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/loggers/reset":{"post":{"tags":["Sistema - Loggers"],"summary":"Resetar todos os loggers","description":"Reseta todos os loggers para o nível padrão","operationId":"resetAll","responses":{"200":{"description":"Loggers resetados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/loggers/custom":{"post":{"tags":["Sistema - Loggers"],"summary":"Adicionar logger personalizado","description":"Adiciona um novo logger com nível e descrição","operationId":"addCustomLogger","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomLoggerRequest"}}},"required":true},"responses":{"200":{"description":"Logger adicionado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integridade/limpar":{"post":{"tags":["Sistema - Integridade"],"summary":"Limpar integridade","description":"Remove registros de integridade da aplicação para recriação","operationId":"limpar_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimparIntegridadeRequest"}}},"required":true},"responses":{"200":{"description":"Registros de integridade removidos com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/banco":{"get":{"tags":["Integrações - Banco de Dados"],"summary":"Listar integrações","description":"Lista integrações com bancos de dados com paginação","operationId":"listar_11","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Integrações listadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelIntegracaoBancoDadosDTO"}}}}}},"post":{"tags":["Integrações - Banco de Dados"],"summary":"Salvar integração","description":"Cria ou atualiza uma integração com banco de dados","operationId":"salvar_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarIntegracaoBancoRequest"}}},"required":true},"responses":{"201":{"description":"Integração criada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"200":{"description":"Integração atualizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/banco/{id}/toggle-ativa":{"post":{"tags":["Integrações - Banco de Dados"],"summary":"Ativar/desativar integração","description":"Alterna status ativo da integração, desativando conflitantes","operationId":"toggleAtiva","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/banco/{id}/reimportar-tudo":{"post":{"tags":["Integrações - Banco de Dados"],"summary":"Reimportar tudo","description":"Remove todos os registros importados e reinicia a importação do zero","operationId":"reimportarTudo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Reimportação iniciada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/banco/{id}/reimportar-a-partir-de":{"post":{"tags":["Integrações - Banco de Dados"],"summary":"Reimportar a partir de chave","description":"Remove registros a partir de uma chave e reimporta","operationId":"reimportarAPartirDe","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReimportarAPartirDeRequest"}}},"required":true},"responses":{"200":{"description":"Reimportação parcial iniciada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/api":{"get":{"tags":["Integrações - API Externa"],"summary":"Listar integrações","description":"Lista integrações com APIs externas com paginação","operationId":"listar_12","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Integrações listadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelIntegracaoApiExternaDTO"}}}}}},"post":{"tags":["Integrações - API Externa"],"summary":"Salvar integração","description":"Cria ou atualiza uma integração com API externa","operationId":"salvar_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarIntegracaoApiRequest"}}},"required":true},"responses":{"201":{"description":"Integração criada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"200":{"description":"Integração atualizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Dados inválidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/api/{id}/toggle-ativa":{"post":{"tags":["Integrações - API Externa"],"summary":"Ativar/desativar integração","description":"Alterna status ativo da integração, desativando conflitantes","operationId":"toggleAtiva_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/impostos":{"get":{"tags":["Financeiro - Impostos"],"summary":"Listar impostos","description":"Lista todos os impostos com alíquotas totais calculadas","operationId":"listar_13","responses":{"200":{"description":"Impostos listados com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}},"post":{"tags":["Financeiro - Impostos"],"summary":"Criar imposto","description":"Cadastra um novo imposto com sigla, alíquota e configuração de repasse","operationId":"criar_6","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarImpostoRequest"}}},"required":true},"responses":{"201":{"description":"Imposto criado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImpostoDTO"}}}}}}},"/api/admin/impostos/{id}/toggle":{"post":{"tags":["Financeiro - Impostos"],"summary":"Ativar/desativar imposto","description":"Alterna o status ativo/inativo do imposto","operationId":"toggle","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status do imposto alterado com sucesso"}}}},"/api/admin/ia/metricas-atendimento/sugestoes/{id}/rejeitar":{"post":{"tags":["Atendimento - Métricas IA"],"summary":"Rejeitar sugestão de FAQ","description":"Rejeita uma sugestão de FAQ extraída pela IA","operationId":"rejeitarSugestao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sugestão rejeitada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/metricas-atendimento/sugestoes/{id}/aprovar":{"post":{"tags":["Atendimento - Métricas IA"],"summary":"Aprovar sugestão de FAQ","description":"Aprova uma sugestão de FAQ e a adiciona à base de conhecimento","operationId":"aprovarSugestao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sugestão aprovada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/metricas-atendimento/recalcular":{"post":{"tags":["Atendimento - Métricas IA"],"summary":"Recalcular métricas","description":"Recalcula métricas de qualidade de IA para os últimos N dias","operationId":"recalcular","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"dias","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":7}}],"responses":{"200":{"description":"Métricas recalculadas","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/mensagens-auto-atendimento":{"get":{"tags":["IA - Mensagens Auto-Atendimento"],"summary":"Listar mensagens","description":"Lista mensagens de auto-atendimento com filtro por aplicação e busca","operationId":"listar_14","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Mensagens listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["IA - Mensagens Auto-Atendimento"],"summary":"Criar mensagem","description":"Cria uma nova mensagem de auto-atendimento","operationId":"criar_7","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MensagemAutoAtendimentoCriarRequest"}}},"required":true},"responses":{"201":{"description":"Mensagem criada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/mensagens-auto-atendimento/{id}":{"get":{"tags":["IA - Mensagens Auto-Atendimento"],"summary":"Buscar mensagem","description":"Retorna uma mensagem de auto-atendimento pelo ID","operationId":"buscar_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Mensagem retornada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["IA - Mensagens Auto-Atendimento"],"summary":"Atualizar mensagem","description":"Atualiza texto e descrição de uma mensagem existente","operationId":"atualizar_6","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MensagemAutoAtendimentoAtualizarRequest"}}},"required":true},"responses":{"200":{"description":"Mensagem atualizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["IA - Mensagens Auto-Atendimento"],"summary":"Excluir mensagem","description":"Remove uma mensagem de auto-atendimento","operationId":"excluir_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Mensagem excluída com sucesso"}}}},"/api/admin/ia/financeiro/tarifas/salvar":{"post":{"tags":["Financeiro - IA"],"summary":"Salvar tarifa de IA","description":"Cria ou atualiza tarifa de IA para uma aplicação e provider","operationId":"salvarTarifa","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarTarifaIARequest"}}},"required":true},"responses":{"200":{"description":"Tarifa salva com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/financeiro/custos-provider/salvar":{"post":{"tags":["Financeiro - IA"],"summary":"Salvar custo de provider","description":"Cria ou atualiza custo de um provider e modelo de IA","operationId":"salvarCustoProvider","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCustoProviderRequest"}}},"required":true},"responses":{"200":{"description":"Custo salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/financeiro/custos-provider/recalcular":{"post":{"tags":["Financeiro - IA"],"summary":"Recalcular tarifas de IA","description":"Recalcula tarifas de IA para todas as aplicações baseado nos custos atuais","operationId":"recalcularTarifas","responses":{"200":{"description":"Tarifas recalculadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/advisor/gerar":{"post":{"tags":["IA - Advisor"],"summary":"Gerar análise","description":"Solicita geração de nova análise estratégica via IA para o período informado","operationId":"gerarAnalise","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GerarAnaliseAdvisorRequest"}}},"required":true},"responses":{"201":{"description":"Análise gerada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Período inválido","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-whatsapp/recalcular":{"post":{"tags":["Financeiro - Caixa"],"summary":"Recalcular tarifas WhatsApp","description":"Recalcula todas as tarifas automáticas baseadas nos custos atuais","operationId":"recalcularTarifas_1","responses":{"200":{"description":"Tarifas recalculadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-twilio/salvar":{"post":{"tags":["Financeiro - Caixa"],"summary":"Salvar custo Twilio","description":"Salva custo padrão do Twilio e gera tarifas automáticas","operationId":"salvarCustoTwilio","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCustoTwilioRequest"}}},"required":true},"responses":{"200":{"description":"Custo Twilio salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-meta/salvar":{"post":{"tags":["Financeiro - Caixa"],"summary":"Salvar custo Meta","description":"Salva custo de conversação Meta por tipo","operationId":"salvarCustoMeta","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCustoMetaRequest"}}},"required":true},"responses":{"200":{"description":"Custo Meta salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-app/salvar":{"post":{"tags":["Financeiro - Caixa"],"summary":"Salvar custo do app","description":"Salva ou atualiza custo de mensagem do app por tipo","operationId":"salvarCustoApp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCustoAppRequest"}}},"required":true},"responses":{"200":{"description":"Custo salvo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/contas-imap":{"get":{"tags":["Contas IMAP"],"summary":"Listar contas IMAP","description":"Lista paginada com filtro opcional por aplicação","operationId":"listar_15","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelContaImapAdminDTO"}}}}}},"post":{"tags":["Contas IMAP"],"summary":"Criar conta IMAP","operationId":"criar_8","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarContaImapRequest"}}},"required":true},"responses":{"200":{"description":"Criada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContaImapAdminDTO"}}}}}}},"/api/admin/contas-imap/{id}/testar":{"post":{"tags":["Contas IMAP"],"summary":"Testar conexão IMAP","description":"Tenta conectar com as credenciais cadastradas e atualiza o resultado do último teste","operationId":"testar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Resultado do teste retornado (sucesso ou falha)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ContaImapAdminDTO"}}}}}}},"/api/admin/configuracoes/twilio":{"get":{"tags":["Configurações - Twilio"],"summary":"Buscar configuração Twilio","description":"Retorna a configuração Twilio de uma aplicação com credenciais","operationId":"getConfiguracao","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Configurações - Twilio"],"summary":"Salvar configuração Twilio","description":"Salva ou atualiza a configuração Twilio de uma aplicação","operationId":"salvar_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarTwilioRequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro na configuração","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/verificar-credenciais":{"post":{"tags":["Configurações - Twilio"],"summary":"Verificar credenciais","description":"Valida credenciais Twilio, detecta números e configura webhooks automaticamente","operationId":"verificarCredenciais","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificarCredenciaisRequest"}}},"required":true},"responses":{"200":{"description":"Credenciais válidas","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Credenciais inválidas","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/toggle-ativo":{"post":{"tags":["Configurações - Twilio"],"summary":"Ativar/desativar Twilio","description":"Alterna o status ativo/inativo da integração Twilio","operationId":"toggleAtivo_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleAtivoRequest"}}},"required":true},"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro ao alterar status","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/testar":{"post":{"tags":["Configurações - Twilio"],"summary":"Testar envio","description":"Envia mensagem de teste para validar a configuração Twilio","operationId":"testarEnvio","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestarEnvioTwilioRequest"}}},"required":true},"responses":{"200":{"description":"Resultado do teste","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Erro interno no teste","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/remover":{"post":{"tags":["Configurações - Twilio"],"summary":"Remover configuração","description":"Remove a configuração Twilio de uma aplicação","operationId":"remover_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoverConfigRequest"}}},"required":true},"responses":{"200":{"description":"Configuração removida","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Configuração não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/alterar-provider":{"post":{"tags":["Configurações - Twilio"],"summary":"Alterar provider de envio","description":"Alterna entre envio via API Twilio (automático) e link wa.me (manual)","operationId":"alterarProvider","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlterarProviderRequest"}}},"required":true},"responses":{"200":{"description":"Provider alterado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Provider inválido","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/transcricao":{"get":{"tags":["Configurações - Transcrição"],"summary":"Buscar configuração de transcrição","description":"Retorna a configuração atual de transcrição de áudio","operationId":"getConfiguracao_1","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Configurações - Transcrição"],"summary":"Salvar configuração de transcrição","description":"Salva configuração de transcrição de áudio (habilitação, API key, modelo, idioma)","operationId":"salvar_5","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarTranscricaoRequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro na configuração","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/ia":{"get":{"tags":["Configurações - IA"],"summary":"Buscar configuração de IA","description":"Retorna a configuração atual de IA com providers e modelos disponíveis","operationId":"getConfiguracao_2","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Configurações - IA"],"summary":"Salvar configuração de IA","description":"Salva ou atualiza a configuração do provider de IA e seus parâmetros","operationId":"salvar_6","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarIARequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro na configuração","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/ia/testar":{"post":{"tags":["Configurações - IA"],"summary":"Testar conexão com IA","description":"Testa a conexão com o provider de IA configurado","operationId":"testarConexao","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Resultado do teste","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/configuracoes/ia/embeddings":{"post":{"tags":["Configurações - IA"],"summary":"Atualizar configuração de embeddings","description":"Habilita/desabilita embeddings (RAG semântico) e define o provider e modelo. Quando desabilitado, busca de FAQs usa fallback Jaccard.","operationId":"salvarEmbeddings","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarEmbeddingsRequest"}}},"required":true},"responses":{"200":{"description":"Configuração de embeddings salva","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/carimbo":{"get":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Listar configurações e custos","description":"Retorna configurações de carimbo de tempo (filtradas por aplicação se X-Aplicacao-Id informado) e custos TSA","operationId":"listar_16","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Salvar configuração de carimbo","description":"Salva configuração de carimbo de tempo para uma aplicação","operationId":"salvarConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCarimboRequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro na configuração","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/carimbo/toggle-integridade":{"post":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Ativar/desativar integridade","description":"Habilita ou desabilita a verificação de integridade para a aplicação","operationId":"toggleIntegridade","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleIntegridadeRequest"}}},"required":true},"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro ao alterar","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/carimbo/testar":{"post":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Testar conexão TSA","description":"Testa a conexão com a autoridade carimbadora de tempo configurada","operationId":"testarConexao_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestarCarimboRequest"}}},"required":true},"responses":{"200":{"description":"Resultado do teste","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro no teste","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/carimbo/custos/salvar":{"post":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Salvar custo TSA","description":"Salva ou atualiza o custo por carimbo de tempo de um provider TSA","operationId":"salvarCusto","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarCustoCarimboRequest"}}},"required":true},"responses":{"200":{"description":"Custo salvo","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro ao salvar","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/atendimento":{"get":{"tags":["Configurações - Atendimento"],"summary":"Buscar configuração de atendimento","description":"Retorna os limiares de alerta configurados para a aplicação","operationId":"getConfiguracao_3","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"post":{"tags":["Configurações - Atendimento"],"summary":"Salvar configuração de atendimento","description":"Salva os limiares de alerta de warning e danger em minutos","operationId":"salvar_7","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalvarAtendimentoRequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/competencias":{"get":{"tags":["Atendimento - Competências"],"summary":"Listar competências da aplicação","operationId":"listar_17","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"type":"object","additionalProperties":{}}}}}}}},"post":{"tags":["Atendimento - Competências"],"summary":"Criar competência","operationId":"criar_9","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarCompetenciaRequest"}}},"required":true},"responses":{"201":{"description":"Criada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/competencias/{id}/toggle-ativo":{"post":{"tags":["Atendimento - Competências"],"summary":"Ativar/desativar competência","operationId":"toggleAtivo_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado"}}}},"/api/admin/categorias-exame":{"get":{"tags":["Catálogo de Exames - Categorias"],"summary":"Listar categorias","description":"Lista todas as categorias ATIVAS ordenadas por ordem e nome","operationId":"listar_18","responses":{"200":{"description":"Categorias listadas com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}}}}},"post":{"tags":["Catálogo de Exames - Categorias"],"summary":"Criar categoria","description":"Cria uma nova categoria clínica de exames","operationId":"criar_10","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarCategoriaExameRequest"}}},"required":true},"responses":{"201":{"description":"Categoria criada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}},"400":{"description":"Nome duplicado ou inválido","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CategoriaExameDTO"}}}}}}},"/api/admin/catalogo-exames":{"get":{"tags":["Catálogo de Exames"],"summary":"Listar exames","description":"Lista paginada de exames com filtros opcionais por categoria, status e busca textual","operationId":"listar_19","parameters":[{"name":"categoriaId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["RASCUNHO","EM_REVISAO","ATIVO","ARQUIVADO"]}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Exames listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelExameDTO"}}}}}},"post":{"tags":["Catálogo de Exames"],"summary":"Criar exame","description":"Cria um novo exame em status RASCUNHO com todas as listas aninhadas","operationId":"criar_11","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarExameRequest"}}},"required":true},"responses":{"201":{"description":"Exame criado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"400":{"description":"Slug já existe ou dados inválidos","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}/voltar-rascunho":{"post":{"tags":["Catálogo de Exames"],"summary":"Voltar para rascunho","description":"Move um exame em EM_REVISAO de volta para RASCUNHO","operationId":"voltarParaRascunho","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}/solicitar-revisao":{"post":{"tags":["Catálogo de Exames"],"summary":"Solicitar revisão","description":"Move um exame em RASCUNHO para EM_REVISAO","operationId":"solicitarRevisao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"400":{"description":"Status atual não permite a transição","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}/reativar":{"post":{"tags":["Catálogo de Exames"],"summary":"Reativar exame arquivado","description":"Reativa um exame arquivado, voltando-o para RASCUNHO","operationId":"reativar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exame reativado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"400":{"description":"Exame não está arquivado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}/publicar":{"post":{"tags":["Catálogo de Exames"],"summary":"Publicar exame","description":"Publica um exame em EM_REVISAO ou RASCUNHO. Define revisor, data de revisão e dispara geração de embeddings.","operationId":"publicar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exame publicado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}},"400":{"description":"Status atual não permite publicação","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/{id}/arquivar":{"post":{"tags":["Catálogo de Exames"],"summary":"Arquivar exame","description":"Arquiva o exame (status=ARQUIVADO, ativo=false). Não aparecerá em buscas do auto-atendimento.","operationId":"arquivar_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exame arquivado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/{provider}/testar":{"post":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Testar conexão com provider","description":"Faz 1 GET em URL representativa do provider e retorna status para diagnóstico (latência, status HTTP, tamanho, título extraído). NÃO persiste nada — útil para validar API key, robots.txt, conectividade e User-Agent antes de executar pipeline completo.","operationId":"testarConexao_2","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]}}],"responses":{"200":{"description":"Resultado do teste (sucesso ou falha) — sempre HTTP 200","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultadoTesteConexaoDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/{provider}/executar":{"post":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Executar pipeline manualmente para um provider","description":"Dispara fetch+parse+load em background. Retorna 202.","operationId":"executarManual","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]}}],"responses":{"202":{"description":"Execução iniciada em background","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Provider desabilitado ou sem crawler registrado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/catalogo-exames/importacoes/upload":{"post":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Upload manual de PDF/Markdown/HTML","description":"Aceita arquivos pré-processados (PDF deve estar com texto já extraído). Vai direto para o buffer e segue o pipeline (parse+translate+load).","operationId":"upload_1","parameters":[{"name":"titulo","in":"query","required":false,"schema":{"type":"string"}},{"name":"idiomaOriginal","in":"query","required":false,"schema":{"type":"string","default":"pt-BR"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"arquivo":{"type":"string","format":"binary"}},"required":["arquivo"]}}}},"responses":{"200":{"description":"Item carregado no buffer","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportacaoExameBufferDTO"}}}},"400":{"description":"Arquivo inválido ou ausente","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportacaoExameBufferDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/buffer/{id}/reprocessar":{"post":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Reprocessar item do buffer","description":"Re-aplica parse+normalize+translate+load no conteúdo bruto já presente no buffer.","operationId":"reprocessar_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/catalogo-exames/embeddings/backfill":{"post":{"tags":["Catálogo de Exames"],"summary":"Disparar backfill de embeddings","description":"Executa em background a geração de embeddings para exames ATIVOS ainda não indexados. Idempotente.","operationId":"dispararBackfill","responses":{"202":{"description":"Backfill iniciado em background","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Embeddings desabilitados ou configuração inválida","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/base-conhecimento":{"get":{"tags":["IA - Base de Conhecimento"],"summary":"Listar itens","description":"Lista itens da base de conhecimento com paginação e busca por texto","operationId":"listar_20","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Itens listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelBaseConhecimentoDTO"}}}}}},"post":{"tags":["IA - Base de Conhecimento"],"summary":"Criar item","description":"Cria um novo item na base de conhecimento","operationId":"criar_12","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarBaseConhecimentoRequest"}}},"required":true},"responses":{"201":{"description":"Item criado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BaseConhecimentoDTO"}}}}}}},"/api/admin/base-conhecimento/{id}/toggle-ativo":{"post":{"tags":["IA - Base de Conhecimento"],"summary":"Ativar/desativar item","description":"Alterna o status ativo/inativo do item","operationId":"toggleAtivo_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/admin/base-conhecimento/embeddings/backfill":{"post":{"tags":["IA - Base de Conhecimento"],"summary":"Disparar backfill de embeddings","description":"Executa em background a geração de embeddings para FAQs ainda não indexadas. Idempotente — chamadas repetidas processam apenas pendentes.","operationId":"dispararBackfill_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"202":{"description":"Backfill iniciado em background","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/auth/verificar-email":{"post":{"tags":["Autenticação"],"summary":"Verificar email","description":"Confirma o cadastro usando o código recebido por email","operationId":"verificarEmail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificarEmailRequest"}}},"required":true},"responses":{"200":{"description":"Email verificado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Código inválido ou expirado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/auth/resetar-senha":{"post":{"tags":["Autenticação"],"summary":"Redefinir senha","description":"Redefine a senha usando o token recebido por email","operationId":"resetarSenha_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetarSenhaRequest"}}},"required":true},"responses":{"200":{"description":"Senha redefinida","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Token inválido ou expirado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/auth/registro":{"post":{"tags":["Autenticação"],"summary":"Registrar novo usuário","description":"Cria uma nova conta e envia email de verificação","operationId":"registro","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsuarioRegistroDTO"}}},"required":true},"responses":{"201":{"description":"Usuário criado, verificação de email enviada","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Email já cadastrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/auth/recuperar-senha":{"post":{"tags":["Autenticação"],"summary":"Solicitar recuperação de senha","description":"Envia email com link de redefinição de senha","operationId":"recuperarSenha","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecuperarSenhaRequest"}}},"required":true},"responses":{"200":{"description":"Email enviado (ou endereço não encontrado — resposta sempre igual por segurança)","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/auth/login":{"post":{"tags":["Autenticação"],"summary":"Autenticar usuário","description":"Valida credenciais e retorna JWT para uso nas demais APIs","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Token JWT gerado","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Credenciais inválidas","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Usuário inativo","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/transferir":{"post":{"tags":["Atendimento"],"summary":"Transferir sessão","description":"Transfere uma sessão de atendimento para outro operador","operationId":"transferir","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferirRequest"}}},"required":true},"responses":{"200":{"description":"Sessão transferida","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Sessão ou operador não disponível","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/sugestao-feedback":{"post":{"tags":["Atendimento"],"summary":"Registrar feedback de sugestão IA usada (M5)","description":"Operador registra qual sugestão usou e se editou antes de enviar. Alimenta tunning futuro do prompt de sugestão.","operationId":"registrarSugestaoFeedback","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SugestaoFeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Feedback registrado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/atendimento/{sessaoId}/sugerir-resposta":{"post":{"tags":["Atendimento"],"summary":"Sugerir resposta para o operador","description":"Gera 3 sugestões (formal, breve, empática) usando IA + contexto da conversa + base de conhecimento + respostas rápidas. Não envia mensagem — apenas retorna textos para o operador escolher e editar.","operationId":"sugerirResposta","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sugestões geradas","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"400":{"description":"Sessão inválida ou sem provider IA","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/atendimento/{sessaoId}/salvar-resposta":{"post":{"tags":["Atendimento"],"summary":"Salvar extração FAQ","description":"Extrai e salva sugestão de FAQ a partir da conversa da sessão","operationId":"salvarResposta","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sugestão salva","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Sessão não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/finalizar":{"post":{"tags":["Atendimento"],"summary":"Finalizar atendimento","description":"Finaliza uma sessão de atendimento em andamento","operationId":"finalizar","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Atendimento finalizado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/enviar":{"post":{"tags":["Atendimento"],"summary":"Enviar mensagem","description":"Envia mensagem de texto WhatsApp ao paciente na sessão de atendimento","operationId":"enviarMensagem","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviarMensagemAtendimentoRequest"}}},"required":true},"responses":{"200":{"description":"Resultado do envio","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Sessão não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/enviar-midia":{"post":{"tags":["Atendimento"],"summary":"Enviar mídia","description":"Envia arquivo de mídia (imagem, documento, áudio) ao paciente via WhatsApp","operationId":"enviarMidia","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"legenda","in":"query","required":false,"schema":{"type":"string"}},{"name":"basePublica","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"arquivo":{"type":"string","format":"binary"}},"required":["arquivo"]}}}},"responses":{"200":{"description":"Resultado do envio","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Sessão não encontrada ou arquivo vazio","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/{sessaoId}/assumir":{"post":{"tags":["Atendimento"],"summary":"Assumir sessão","description":"Operador assume o próximo atendimento da fila (FIFO)","operationId":"assumir","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sessão assumida","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Sessão não disponível ou fora de ordem","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/status":{"post":{"tags":["Atendimento"],"summary":"Alterar status do operador","description":"Altera o status do operador (ONLINE, AUSENTE, OFFLINE)","operationId":"alterarStatus","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlterarStatusRequest"}}},"required":true},"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/heartbeat":{"post":{"tags":["Atendimento"],"summary":"Heartbeat do operador","description":"Atualiza o timestamp de heartbeat para manter o operador online","operationId":"heartbeat","responses":{"200":{"description":"Heartbeat registrado","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes":{"get":{"tags":["Aplicações"],"summary":"Listar aplicações","description":"Lista paginada com filtro por busca","operationId":"listar_21","parameters":[{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAplicacaoDTO"}}}}}},"post":{"tags":["Aplicações"],"summary":"Criar aplicação","description":"Cria nova aplicação e retorna API Key + Secret","operationId":"criar_13","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CriarAplicacaoRequest"}}},"required":true},"responses":{"201":{"description":"Aplicação criada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{id}/toggle":{"post":{"tags":["Aplicações"],"summary":"Ativar/desativar aplicação","description":"Alterna o status ativo/inativo da aplicação","operationId":"toggleAtivo_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status alterado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AplicacaoDTO"}}}}}}},"/api/admin/aplicacoes/{id}/regenerar-secret":{"post":{"tags":["Aplicações"],"summary":"Regenerar API Secret","description":"Gera novo secret para a aplicação, invalidando o anterior","operationId":"regenerarSecret","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Novo secret gerado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{id}/oauth2-credentials":{"post":{"tags":["Aplicações"],"summary":"Gerar credenciais OAuth2","description":"Gera client_id e client_secret para integração via OAuth2","operationId":"gerarCredenciaisOAuth2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Credenciais geradas","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{id}/config-agendamentos":{"post":{"tags":["Aplicações"],"summary":"Salvar configuração de agendamentos de saúde","description":"Configura parâmetros de aviso, cancelamento e tentativas de agendamentos","operationId":"salvarConfigAgendamentos","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigAgendamentosRequest"}}},"required":true},"responses":{"200":{"description":"Configuração salva","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifa":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Salvar tarifa","description":"Cria uma nova tarifa de mensagem para a aplicação","operationId":"salvarTarifa_1","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TarifaRequest"}}},"required":true},"responses":{"201":{"description":"Tarifa criada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TarifaDTO"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifa-ia":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Salvar tarifa de IA","description":"Cria ou atualiza tarifa de IA para a aplicação","operationId":"salvarTarifaIA","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TarifaIARequest"}}},"required":true},"responses":{"200":{"description":"Tarifa de IA salva com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifa-conversa":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Salvar tarifa de conversação","description":"Cria ou atualiza tarifa de conversação WhatsApp","operationId":"salvarTarifaConversa","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TarifaConversaRequest"}}},"required":true},"responses":{"200":{"description":"Tarifa de conversação salva com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/limpar":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Limpar financeiro","description":"Remove todos os lançamentos financeiros da aplicação","operationId":"limparFinanceiro","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Financeiro limpo com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/estorno/{lancamentoId}":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Estornar lançamento","description":"Cria lançamento inverso para estorno de débito","operationId":"estornarLancamento","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"lancamentoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstornoRequest"}}}},"responses":{"200":{"description":"Estorno realizado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CreditoAplicacaoDTO"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/credito":{"post":{"tags":["Financeiro - Aplicação"],"summary":"Adicionar crédito","description":"Adiciona crédito ao saldo da aplicação","operationId":"adicionarCredito","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditoRequest"}}},"required":true},"responses":{"201":{"description":"Crédito adicionado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/external/v2/agendamentos/{id}":{"get":{"tags":["API Externa v2 - Agendamentos"],"summary":"Buscar agendamento por ID","operationId":"buscar_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}}}},"404":{"description":"Agendamento não encontrado ou de outra aplicação","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}}}}}},"patch":{"tags":["API Externa v2 - Agendamentos"],"summary":"Atualizar status do agendamento","description":"Aceita transições válidas de status. Status: IMPORTADO, VALIDADO, ENVIADO, AVISO_ENVIADO, CONFIRMADO, NAO_RESPONDEU, CANCELADO, ERRO. Use PATCH com {status, observacao}.","operationId":"atualizarStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarStatusRequest"}}},"required":true},"responses":{"200":{"description":"Status atualizado","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Transição inválida","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Agendamento não encontrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/usuarios/{id}":{"get":{"tags":["Usuários"],"summary":"Buscar usuário","description":"Retorna detalhes de um usuário pelo ID","operationId":"buscar_6","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}},"404":{"description":"Usuário não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}},"delete":{"tags":["Usuários"],"summary":"Excluir usuário","description":"Remove um usuário do sistema","operationId":"excluir_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Usuário excluído"}}},"patch":{"tags":["Usuários"],"summary":"Atualizar usuário","description":"Atualiza dados de um usuário existente","operationId":"atualizar_7","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarUsuarioRequest"}}},"required":true},"responses":{"200":{"description":"Usuário atualizado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}}},"/api/admin/aplicacoes/{id}":{"get":{"tags":["Aplicações"],"summary":"Buscar aplicação","description":"Retorna detalhes de uma aplicação pelo ID","operationId":"buscar_7","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AplicacaoDTO"}}}},"404":{"description":"Aplicação não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AplicacaoDTO"}}}}}},"delete":{"tags":["Aplicações"],"summary":"Excluir aplicação","description":"Remove uma aplicação e todos os dados associados","operationId":"excluir_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Aplicação excluída"}}},"patch":{"tags":["Aplicações"],"summary":"Atualizar aplicação","description":"Atualiza dados de uma aplicação existente","operationId":"atualizar_8","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AtualizarAplicacaoRequest"}}},"required":true},"responses":{"200":{"description":"Aplicação atualizada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AplicacaoDTO"}}}}}}},"/api/webhooks/n8n/contas-imap":{"get":{"tags":["n8n Teste (sandbox)"],"summary":"Lista contas IMAP ativas para o workflow n8n","description":"Retorna todas as contas IMAP ativas com credenciais decifradas. ATENÇÃO: a senha viaja em claro no JSON — restringir IP em produção (firewall/nginx).","operationId":"contasParaN8n","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContaImapN8nDTO"}}}}}}}},"/api/v4/saude/pesquisas/{pesquisaId}/iniciar":{"get":{"tags":["Pesquisas Saúde"],"summary":"Iniciar pesquisa (modo arvore de decisao)","description":"Retorna a primeira pergunta raiz da pesquisa. App segue chamando /responder-pergunta a cada turno ate finalizada=true.","operationId":"iniciar_1","parameters":[{"name":"pesquisaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Primeira pergunta","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerguntaMobileDTO"}}}},"404":{"description":"Pesquisa sem perguntas","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerguntaMobileDTO"}}}}}}},"/api/v4/saude/pesquisas/pendentes":{"get":{"tags":["Pesquisas Saúde"],"summary":"Listar pesquisas pendentes","description":"Retorna pesquisas que o paciente ainda não respondeu","operationId":"listarPendentes","responses":{"200":{"description":"Lista de pesquisas pendentes","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PesquisaMobileDTO"}}}}}}}},"/api/v4/saude/notificacoes":{"get":{"tags":["Notificações Saúde"],"summary":"Listar notificações","description":"Retorna notificações paginadas do paciente","operationId":"listar_22","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Lista de notificações","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelNotificacaoMobileDTO"}}}}}}},"/api/v4/saude/notificacoes/nao-lidas/count":{"get":{"tags":["Notificações Saúde"],"summary":"Contar notificações não lidas","description":"Retorna quantidade de notificações não lidas","operationId":"contarNaoLidas","responses":{"200":{"description":"Contagem retornada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/v4/saude/mensagens/resumo":{"get":{"tags":["Mensagens Saúde"],"summary":"Resumo da conversa","description":"Retorna preview da conversa para a lista de conversas","operationId":"resumo","responses":{"200":{"description":"Resumo retornado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConversaResumoPacienteDTO"}}}}}}},"/api/v4/saude/mensagens/nao-lidas/count":{"get":{"tags":["Mensagens Saúde"],"summary":"Contar mensagens não lidas","operationId":"contarNaoLidas_1","responses":{"200":{"description":"Contagem retornada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/v4/saude/mensagens/media/{fileName}":{"get":{"tags":["Mensagens Saúde"],"summary":"Download de mídia","description":"Download protegido de arquivo do paciente","operationId":"download","parameters":[{"name":"fileName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/v4/saude/auth/estados":{"get":{"tags":["Autenticacao Saude"],"summary":"Listar UFs com aplicacao cadastrada","description":"Lista UFs unicas que possuem ao menos uma aplicacao ativa","operationId":"listarEstadosComAplicacao","responses":{"200":{"description":"Lista de UFs","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/v4/saude/auth/cpf-disponivel":{"get":{"tags":["Autenticacao Saude"],"summary":"Verificar se CPF esta disponivel para cadastro","description":"Checa se o CPF ja esta cadastrado na aplicacao informada. Retorna {disponivel: true|false}. Use no formulario de auto-cadastro para feedback em tempo real (com debounce ~500ms).","operationId":"cpfDisponivel","parameters":[{"name":"cpf","in":"query","required":true,"schema":{"type":"string"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Resultado da verificacao","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"boolean"}}}}}}}},"/api/v4/saude/auth/cidades":{"get":{"tags":["Autenticacao Saude"],"summary":"Listar cidades com aplicacao por UF","description":"Lista cidades unicas com aplicacao ativa em uma UF","operationId":"listarCidadesPorEstado","parameters":[{"name":"estado","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de cidades","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/v4/saude/auth/aplicacoes-por-localidade":{"get":{"tags":["Autenticacao Saude"],"summary":"Buscar aplicacao por localidade","description":"Retorna a aplicacao vinculada a cidade/estado (uma por cidade)","operationId":"buscarAplicacaoPorLocalidade","parameters":[{"name":"cidade","in":"query","required":true,"schema":{"type":"string"}},{"name":"estado","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Aplicacao encontrada ou null","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/agendamentos":{"get":{"tags":["Agendamentos Saúde"],"summary":"Listar agendamentos do paciente","description":"Retorna agendamentos paginados do paciente autenticado","operationId":"listar_23","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Lista de agendamentos","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAgendamentoMobileDTO"}}}}}}},"/api/v4/saude/agendamentos/{id}":{"get":{"tags":["Agendamentos Saúde"],"summary":"Detalhe do agendamento","description":"Retorna detalhes de um agendamento específico","operationId":"detalhe_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Agendamento encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoMobileDTO"}}}},"404":{"description":"Agendamento não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoMobileDTO"}}}}}}},"/api/v4/saude/agendamentos/procedimentos":{"get":{"tags":["Agendamentos Saúde"],"summary":"Listar procedimentos do paciente","description":"Retorna nomes distintos de procedimentos para filtro","operationId":"listarProcedimentos_1","responses":{"200":{"description":"Lista de procedimentos","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/v4/saude/agendamentos/pendentes":{"get":{"tags":["Agendamentos Saúde"],"summary":"Listar agendamentos pendentes","description":"Retorna agendamentos que aguardam ação do paciente (ENVIADO, AVISO_ENVIADO)","operationId":"listarPendentes_1","responses":{"200":{"description":"Lista de agendamentos pendentes","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoMobileDTO"}}}}}}}},"/api/v4/saude/agendamentos/historico":{"get":{"tags":["Agendamentos Saúde"],"summary":"Histórico de agendamentos","description":"Retorna agendamentos com filtros opcionais de status, procedimento e período","operationId":"listarHistorico","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"procedimento","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Histórico paginado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAgendamentoMobileDTO"}}}}}}},"/api/v2/stats":{"get":{"tags":["API Externa - Configuração"],"summary":"Estatísticas de envio","description":"Retorna métricas de envio de mensagens","operationId":"getStats","responses":{"200":{"description":"Estatísticas retornadas","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/v2/config/status":{"get":{"tags":["API Externa - Configuração"],"summary":"Status da aplicação","description":"Retorna informações da aplicação e configuração WhatsApp","operationId":"getConfigStatus","responses":{"200":{"description":"Status retornado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/status":{"get":{"tags":["Status"],"summary":"Status do sistema","description":"Retorna informações de saúde, uptime, memória e versão do sistema","operationId":"status","responses":{"200":{"description":"Sistema operacional","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/v2/pacientes/{cpf}":{"get":{"tags":["API Externa v2 - Pacientes"],"summary":"Buscar paciente por CPF","operationId":"buscarPorCpf","parameters":[{"name":"cpf","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}},"404":{"description":"Paciente não encontrado nesta aplicação","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PacienteSaudeDTO"}}}}}}},"/api/external/v2/atendimentos/historico":{"get":{"tags":["API Externa v2 - Atendimentos"],"summary":"Histórico de atendimentos","description":"Sessões finalizadas paginadas, com filtros opcionais por operador, telefone e período. Útil para n8n/Zapier exportar histórico para BI/CRM.","operationId":"historico","parameters":[{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"telefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"dtInicio","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"dtFim","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/v2/atendimentos/fila":{"get":{"tags":["API Externa v2 - Atendimentos"],"summary":"Listar fila","description":"Retorna sessões na fila aguardando operador humano para a aplicação do JWT.","operationId":"fila","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessaoConversaIADTO"}}}}}}}},"/api/external/v2/atendimentos/em-andamento":{"get":{"tags":["API Externa v2 - Atendimentos"],"summary":"Listar atendimentos em andamento","description":"Sessões em status EM_ATENDIMENTO da aplicação do JWT.","operationId":"emAndamento","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessaoConversaIADTO"}}}}}}}},"/api/external/messages":{"get":{"tags":["API Externa - Mensagens"],"summary":"Listar mensagens","description":"Listagem paginada de mensagens enviadas pela aplicação autenticada, ordenadas por data de envio (mais recentes primeiro)","operationId":"listMessages","parameters":[{"name":"page","in":"query","description":"Número da página (0-indexed)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","description":"Itens por página (máximo 100)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"status","in":"query","description":"Filtrar por status (ex: ENVIADO, ENTREGUE, LIDO, ERRO)","required":false,"schema":{"type":"string"}},{"name":"contexto","in":"query","description":"Filtrar por contexto (ex: RESERVA, PAGAMENTO)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWhatsAppMensagemEnviadaDTO"}}}}}}},"/api/external/messages/{id}":{"get":{"tags":["API Externa - Mensagens"],"summary":"Buscar mensagem por ID","description":"Retorna os detalhes de uma mensagem enviada pela aplicação autenticada","operationId":"getMessage","parameters":[{"name":"id","in":"path","description":"ID da mensagem","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Mensagem encontrada","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/external/integracoes/registros/ultima-chave":{"get":{"tags":["API Externa - Integrações"],"summary":"Última chave importada","description":"Retorna a última chave externa importada para uma integração","operationId":"ultimaChaveImportada","parameters":[{"name":"integracaoId","in":"query","description":"ID da integração","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tipoIntegracao","in":"query","description":"Tipo da integração (BANCO_DADOS ou API_EXTERNA)","required":true,"schema":{"type":"string","enum":["BANCO_DADOS","API_EXTERNA"]}}],"responses":{"200":{"description":"Chave retornada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/external/integracoes/registros/pendentes":{"get":{"tags":["API Externa - Integrações"],"summary":"Registros pendentes","description":"Lista registros pendentes de processamento para a aplicação","operationId":"listarPendentes_2","parameters":[{"name":"page","in":"query","description":"Número da página (0-indexed)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","description":"Itens por página (máximo 100)","required":false,"schema":{"type":"integer","format":"int32","default":50}}],"responses":{"200":{"description":"Registros retornados","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelRegistroImportadoDTO"}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelRegistroImportadoDTO"}}}}}}},"/api/external/integracoes/banco":{"get":{"tags":["API Externa - Integrações"],"summary":"Listar integrações de banco","description":"Retorna integrações de banco de dados ativas para o client","operationId":"listarBanco","responses":{"200":{"description":"Integrações retornadas","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoBancoDadosDTO"}}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoBancoDadosDTO"}}}}}}}},"/api/external/integracoes/api":{"get":{"tags":["API Externa - Integrações"],"summary":"Listar integrações de API","description":"Retorna integrações de API externa ativas","operationId":"listarApi","responses":{"200":{"description":"Integrações retornadas","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoApiExternaDTO"}}}}},"401":{"description":"Token JWT inválido","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoApiExternaDTO"}}}}}}}},"/api/external/financeiro/tarifas":{"get":{"tags":["API Externa - Financeiro"],"summary":"Listar tarifas","description":"Retorna tarifas vigentes para a aplicação","operationId":"tarifas","responses":{"200":{"description":"Tarifas retornadas","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TarifaDTO"}}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TarifaDTO"}}}}}}}},"/api/external/financeiro/saldo":{"get":{"tags":["API Externa - Financeiro"],"summary":"Consultar saldo","description":"Retorna saldo atual da aplicação","operationId":"saldo","responses":{"200":{"description":"Saldo retornado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/external/financeiro/extrato":{"get":{"tags":["API Externa - Financeiro"],"summary":"Consultar extrato","description":"Lista paginada de lançamentos financeiros","operationId":"extrato","parameters":[{"name":"page","in":"query","description":"Número da página (0-indexed)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","description":"Itens por página (máximo 100)","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Extrato retornado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelCreditoAplicacaoDTO"}}}},"401":{"description":"API Key inválida","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelCreditoAplicacaoDTO"}}}}}}},"/api/admin/whatsapp/testes/verificar-config":{"get":{"tags":["WhatsApp - Testes"],"summary":"Verificar configuração Twilio","description":"Verifica se a aplicação possui configuração Twilio ativa","operationId":"verificarConfig","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status da configuração","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/testes/historico":{"get":{"tags":["WhatsApp - Testes"],"summary":"Histórico de testes","description":"Lista as últimas 20 mensagens de teste enviadas","operationId":"historico_1","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/recebidas":{"get":{"tags":["WhatsApp - Recebidas"],"summary":"Listar mensagens recebidas","description":"Lista paginada de mensagens recebidas com filtros por telefone, status de processamento e período","operationId":"listar_24","parameters":[{"name":"telefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"processada","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWhatsAppMensagemRecebidaDTO"}}}}}}},"/api/admin/whatsapp/recebidas/{id}":{"get":{"tags":["WhatsApp - Recebidas"],"summary":"Buscar mensagem recebida","description":"Retorna detalhes de uma mensagem recebida pelo ID","operationId":"buscar_8","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemRecebidaDTO"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemRecebidaDTO"}}}}}}},"/api/admin/whatsapp/enviadas":{"get":{"tags":["WhatsApp - Histórico"],"summary":"Listar mensagens enviadas","description":"Lista paginada de mensagens enviadas com filtros por status, contexto, telefone e período","operationId":"listar_25","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["QUEUED","SENT","DELIVERED","READ","FAILED","UNDELIVERED"]}},{"name":"contexto","in":"query","required":false,"schema":{"type":"string","enum":["AUTORIZACAO","RESERVA","PAGAMENTO","CONTRATO","SUPORTE","VERIFICACAO","LEMBRETE","CAMPANHA","TESTE","AVALIACAO","AGENDAMENTO_SAUDE","AVISO_AGENDAMENTO","OUTRO"]}},{"name":"telefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWhatsAppMensagemEnviadaDTO"}}}}}}},"/api/admin/whatsapp/enviadas/{id}":{"get":{"tags":["WhatsApp - Histórico"],"summary":"Buscar mensagem enviada","description":"Retorna detalhes de uma mensagem enviada pelo ID","operationId":"buscar_9","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemEnviadaDTO"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemEnviadaDTO"}}}}}}},"/api/admin/whatsapp/enviadas/estatisticas":{"get":{"tags":["WhatsApp - Histórico"],"summary":"Estatísticas de envio","description":"Retorna estatísticas consolidadas de mensagens enviadas no período","operationId":"estatisticas","parameters":[{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppEstatisticasDTO"}}}}}}},"/api/admin/whatsapp/dlq":{"get":{"tags":["WhatsApp - DLQ"],"summary":"Listar mensagens na DLQ","description":"Lista paginada de mensagens com falha permanente por aplicação","operationId":"listar_26","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/dlq/{id}":{"get":{"tags":["WhatsApp - DLQ"],"summary":"Detalhes da mensagem DLQ","description":"Retorna detalhes de uma mensagem na DLQ pelo ID","operationId":"detalhes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/dashboard-consolidado":{"get":{"tags":["WhatsApp - Dashboard"],"summary":"Dashboard consolidado","description":"Retorna métricas consolidadas de mensagens, agendamentos e campanhas WhatsApp por mês","operationId":"dashboard","parameters":[{"name":"mes","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ano","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/controle":{"get":{"tags":["WhatsApp - Controle Operacional"],"summary":"Painel de controle","description":"Retorna dados completos do painel de controle operacional: configuração, atividade, infraestrutura e alertas","operationId":"painel","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/compliance":{"get":{"tags":["Compliance - LGPD"],"summary":"Dashboard de compliance","description":"Retorna resumo de compliance LGPD com consentimentos recentes","operationId":"dashboard_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Dashboard retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ComplianceDashboardDTO"}}}}}}},"/api/admin/whatsapp/compliance/consentimentos":{"get":{"tags":["Compliance - LGPD"],"summary":"Listar consentimentos","description":"Lista consentimentos com filtro por status","operationId":"consentimentos","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Consentimentos listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/compliance/auditoria":{"get":{"tags":["Compliance - LGPD"],"summary":"Auditoria LGPD","description":"Lista histórico de alterações de consentimento","operationId":"auditoria","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Auditoria listada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/campanhas/{id}":{"get":{"tags":["WhatsApp - Campanhas"],"summary":"Buscar campanha","description":"Retorna detalhes da campanha com progresso e destinatários paginados","operationId":"buscar_10","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"404":{"description":"Campanha não encontrada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}},"delete":{"tags":["WhatsApp - Campanhas"],"summary":"Excluir campanha","description":"Remove uma campanha e seus destinatários","operationId":"excluir_6","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Campanha excluída"}}}},"/api/admin/whatsapp/campanhas/{id}/progresso":{"get":{"tags":["WhatsApp - Campanhas"],"summary":"Progresso da campanha","description":"Retorna métricas de progresso em tempo real da campanha","operationId":"progresso","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/whatsapp/campanhas/contadores":{"get":{"tags":["WhatsApp - Campanhas"],"summary":"Contadores por status","description":"Retorna contagem de campanhas agrupadas por status","operationId":"contarPorStatus","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/whatsapp/blacklist":{"get":{"tags":["Compliance - Blacklist"],"summary":"Listar blacklist","description":"Lista números bloqueados com filtro por telefone e paginação","operationId":"listar_27","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"telefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Blacklist listada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/whatsapp/agendamentos/{id}":{"get":{"tags":["WhatsApp - Agendamentos"],"summary":"Buscar agendamento","description":"Retorna detalhes de um agendamento pelo ID","operationId":"buscar_11","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemAgendadaDTO"}}}},"404":{"description":"Agendamento não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WhatsAppMensagemAgendadaDTO"}}}}}},"delete":{"tags":["WhatsApp - Agendamentos"],"summary":"Excluir agendamento","description":"Remove um agendamento","operationId":"excluir_7","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Agendamento excluído"}}}},"/api/admin/whatsapp/agendamentos/contadores":{"get":{"tags":["WhatsApp - Agendamentos"],"summary":"Contadores por status","description":"Retorna contagem de agendamentos agrupados por status","operationId":"contarPorStatus_1","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/webhooks/eventos":{"get":{"tags":["Webhooks - Subscriptions"],"summary":"Listar eventos disponíveis","description":"Catálogo de eventos que podem ser inscritos","operationId":"eventos","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"type":"string","enum":["MENSAGEM_RECEBIDA","MENSAGEM_ENVIADA","STATUS_ATUALIZADO","AGENDAMENTO_CONFIRMADO","AGENDAMENTO_CANCELADO","ESCALACAO_INICIADA","ATENDIMENTO_FINALIZADO","PESQUISA_RESPONDIDA","SENTIMENTO_NEGATIVO_DETECTADO"]}}}}}}}},"/api/admin/webhooks/deliveries":{"get":{"tags":["Webhooks - Subscriptions"],"summary":"Listar deliveries","description":"Histórico de tentativas de envio. Filtra por subscription ou aplicação.","operationId":"deliveries","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"subscriptionId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":30}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelWebhookDeliveryLogDTO"}}}}}}},"/api/admin/usuarios/procedimentos-disponiveis":{"get":{"tags":["Usuários"],"summary":"Procedimentos disponíveis","description":"Lista procedimentos ativos da aplicação","operationId":"procedimentosDisponiveis","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/simulador/webhook":{"get":{"tags":["Simulador"],"summary":"Dados do simulador","description":"Retorna personas e configuração do simulador","operationId":"dados","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Dados retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/simulador/webhook/verificar-config":{"get":{"tags":["Simulador"],"summary":"Verificar configuração","description":"Verifica se a aplicação está configurada para simulação","operationId":"verificarConfig_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Verificação realizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/simulador/webhook/mensagens":{"get":{"tags":["Simulador"],"summary":"Timeline de mensagens","description":"Retorna timeline de mensagens de um contato","operationId":"mensagens","parameters":[{"name":"telefone","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Mensagens retornadas com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MensagemChatDTO"}}}}}}}},"/api/admin/simulador/webhook/contatos":{"get":{"tags":["Simulador"],"summary":"Listar contatos","description":"Lista contatos/personas disponíveis para simulação","operationId":"contatos","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Contatos listados com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonaSimuladorDTO"}}}}}}}},"/api/admin/saude/templates/{id}":{"get":{"tags":["Saúde - Templates"],"summary":"Buscar template","description":"Retorna um template de mensagem pelo ID","operationId":"buscar_12","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Template retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Template não encontrado","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Saúde - Templates"],"summary":"Excluir template","description":"Remove um template de mensagem de saúde","operationId":"excluir_8","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Template excluído com sucesso"}}}},"/api/admin/saude/templates/procedimentos-em-conflito":{"get":{"tags":["Saúde - Templates"],"summary":"Procedimentos em conflito","description":"Lista IDs de procedimentos que já têm template ativo do tipo informado. UI usa para destacar checkboxes que gerariam conflito de unicidade.","operationId":"procedimentosEmConflito","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tipo","in":"query","required":true,"schema":{"type":"string"}},{"name":"templateIdExcluir","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"IDs em conflito retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/templates/procedimentos-disponiveis":{"get":{"tags":["Saúde - Templates"],"summary":"Procedimentos disponíveis","description":"Lista procedimentos disponíveis para associação ao template","operationId":"procedimentosDisponiveis_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Procedimentos listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/schedulers/{aplicacaoId}/status":{"get":{"tags":["Saúde - Schedulers"],"summary":"Status dos schedulers de uma aplicação","description":"Retorna 3 itens (1 por job) com cron, última e próxima execução, total processado e erro da última corrida","operationId":"status_1","parameters":[{"name":"aplicacaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status retornado","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SchedulerJobStatusDTO"}}}}}}}},"/api/admin/saude/consentimentos-dispositivo":{"get":{"tags":["Consentimentos Dispositivo (Admin)"],"summary":"Dashboard de consentimentos","description":"Retorna resumo com KPIs e consentimentos recentes","operationId":"dashboard_2","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Dashboard retornado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ConsentimentoDispositivoDashboardDTO"}}}}}}},"/api/admin/saude/consentimentos-dispositivo/lista":{"get":{"tags":["Consentimentos Dispositivo (Admin)"],"summary":"Listar consentimentos","description":"Lista paginada com filtros por status e tipo de permissão","operationId":"listar_28","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"tipo","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Consentimentos listados","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/consentimentos-dispositivo/auditoria":{"get":{"tags":["Consentimentos Dispositivo (Admin)"],"summary":"Auditoria de consentimentos","description":"Histórico paginado de alterações de consentimento","operationId":"auditoria_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Auditoria listada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/cadastros/procedimentos/{id}":{"get":{"tags":["Saúde - Cadastros"],"summary":"Detalhe do procedimento","description":"Retorna dados do procedimento com seus agendamentos","operationId":"detalheProcedimento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Procedimento retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Saúde - Cadastros"],"summary":"Excluir procedimento","description":"Remove um procedimento de saúde","operationId":"excluirProcedimento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Procedimento excluído com sucesso"}}}},"/api/admin/saude/cadastros/prestadores":{"get":{"tags":["Saúde - Cadastros"],"summary":"Listar prestadores","description":"Lista prestadores de saúde com busca e paginação","operationId":"listarPrestadores","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Prestadores listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelPrestadorSaudeDTO"}}}}}},"delete":{"tags":["Saúde - Cadastros"],"summary":"Excluir todos os prestadores da aplicação","description":"Exclui TODOS os prestadores da aplicação informada. Agendamentos e registros importados são desvinculados (prestador_saude_id = NULL). Operação destrutiva e irreversível, restrita a ADMINISTRADOR.","operationId":"excluirTodosPrestadores","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Prestadores excluídos com sucesso (retorna contador)","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"403":{"description":"Sem permissão","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/saude/cadastros/prestadores/{id}/historico":{"get":{"tags":["Saúde - Cadastros"],"summary":"Histórico de alterações do prestador","description":"Retorna timeline append-only de todas as alterações de campos.","operationId":"historicoPrestador","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Histórico retornado com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PrestadorSaudeHistoricoDTO"}}}}}}}},"/api/admin/saude/cadastros/pacientes":{"get":{"tags":["Saúde - Cadastros"],"summary":"Listar pacientes","description":"Lista pacientes com busca e paginação","operationId":"listarPacientes","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"busca","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Pacientes listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelPacienteSaudeDTO"}}}}}},"delete":{"tags":["Saúde - Cadastros"],"summary":"Excluir todos os pacientes da aplicação","description":"Exclui em cascata TODOS os pacientes da aplicação informada, incluindo dispositivos, consentimentos LGPD, histórico, agendamentos, notificações e usos de exame. Registros importados são desvinculados. Operação destrutiva e irreversível, restrita a ADMINISTRADOR.","operationId":"excluirTodosPacientes","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Pacientes excluídos com sucesso (retorna contador)","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"403":{"description":"Sem permissão","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/saude/cadastros/pacientes/{id}/historico":{"get":{"tags":["Saúde - Cadastros"],"summary":"Histórico de alterações do paciente","description":"Retorna timeline append-only de todas as alterações de campos (manuais + importação + ignoradas por manual).","operationId":"historicoPaciente","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Histórico retornado com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PacienteSaudeHistoricoDTO"}}}}}}}},"/api/admin/saude/alteracoes-pendentes":{"get":{"tags":["Saúde - Alterações Pendentes"],"summary":"Listar pendências","description":"Lista paginada de alterações pendentes de paciente+prestador","operationId":"listar_29","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"entidade","in":"query","required":false,"schema":{"type":"string"}},{"name":"campo","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Listagem retornada","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAlteracaoPendenteDTO"}}}}}}},"/api/admin/saude/alteracoes-pendentes/exportar/{formato}":{"get":{"tags":["Saúde - Alterações Pendentes"],"summary":"Exportar pendências em PDF ou Excel","description":"Aplica os mesmos filtros da listagem. Limite de 10.000 linhas.","operationId":"exportar","parameters":[{"name":"formato","in":"path","required":true,"schema":{"type":"string"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aplicacaoNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"entidade","in":"query","required":false,"schema":{"type":"string"}},{"name":"campo","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/api/admin/saude/alteracoes-pendentes/count":{"get":{"tags":["Saúde - Alterações Pendentes"],"summary":"Contar pendências","description":"Total de pendências para badge do menu","operationId":"contar","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/saude/agendamentos":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Listar agendamentos","description":"Lista agendamentos de saúde com filtros por status. Quando o usuário autenticado é OPERADOR, a listagem fica restrita aos procedimentos atribuídos a ele em operador_procedimento. Outros perfis (ADMIN/CONTROLADOR/GESTOR) veem tudo.","operationId":"listar_30","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Agendamentos listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Detalhe do agendamento","description":"Retorna detalhes completos de um agendamento de saúde","operationId":"detalhe_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Detalhe retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/revisar":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Revisar agendamento","description":"Prepara revisão do agendamento com templates disponíveis","operationId":"revisar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Revisão preparada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgendamentoSaudeRevisaoDTO"}}}}}}},"/api/admin/saude/agendamentos/{id}/preview":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Preview de mensagem","description":"Gera preview da mensagem com template aplicado ao agendamento","operationId":"preview","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"templateId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Preview gerado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/editavel":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Verificar se editável","description":"Verifica se o agendamento pode ser editado","operationId":"isEditavel","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Verificação realizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/{id}/dto":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Buscar agendamento DTO","description":"Retorna o DTO do agendamento pelo ID","operationId":"buscarDTO","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"DTO retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Agendamento não encontrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/operadores":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Listar operadores da aplicação","description":"Lista operadores e gestores ativos vinculados à aplicação para uso em filtros (ex: tela de Confirmados)","operationId":"listarOperadoresDaAplicacao","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Operadores listados com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsuarioDTO"}}}}}}}},"/api/admin/saude/agendamentos/monitoramento":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Monitoramento","description":"Retorna dados de monitoramento de agendamentos com configuração","operationId":"monitoramento","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Monitoramento retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/saude/agendamentos/monitoramento/status":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Status do monitoramento","description":"Retorna status atualizado do monitoramento para polling","operationId":"monitoramentoStatus","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MonitoramentoAgendamentoSaudeDTO"}}}}}}},"/api/admin/saude/agendamentos/confirmados":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Listar agendamentos confirmados","description":"Lista paginada de agendamentos com status CONFIRMADO. Suporta filtros opcionais por nome/CPF/telefone do paciente, procedimento, prestador, operador e intervalo de data de confirmação.","operationId":"listarConfirmados","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pacienteNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteCpf","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteTelefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"procedimento","in":"query","required":false,"schema":{"type":"string"}},{"name":"prestador","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Agendamentos confirmados listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAgendamentoSaudeDTO"}}}}}}},"/api/admin/saude/agendamentos/confirmados/exportar/{formato}":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Exportar agendamentos confirmados","description":"Exporta a lista de agendamentos confirmados (com os mesmos filtros da listagem) em PDF ou Excel. Limite de 10.000 registros.","operationId":"exportarConfirmados","parameters":[{"name":"formato","in":"path","required":true,"schema":{"type":"string"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aplicacaoNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteCpf","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteTelefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"procedimento","in":"query","required":false,"schema":{"type":"string"}},{"name":"prestador","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Arquivo gerado com sucesso","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/api/admin/saude/agendamentos/cancelados":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Listar agendamentos cancelados","description":"Lista paginada de agendamentos com status CANCELADO. Mesmos filtros da tela de confirmados + busca textual em motivo (campo observacoes) e intervalo por data de cancelamento.","operationId":"listarCancelados","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pacienteNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteCpf","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteTelefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"procedimento","in":"query","required":false,"schema":{"type":"string"}},{"name":"prestador","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"motivo","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Agendamentos cancelados listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAgendamentoSaudeDTO"}}}}}}},"/api/admin/saude/agendamentos/cancelados/exportar/{formato}":{"get":{"tags":["Saúde - Agendamentos"],"summary":"Exportar agendamentos cancelados","description":"Exporta a lista de agendamentos cancelados (com os mesmos filtros da listagem) em PDF ou Excel. Limite de 10.000 registros.","operationId":"exportarCancelados","parameters":[{"name":"formato","in":"path","required":true,"schema":{"type":"string"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aplicacaoNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteNome","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteCpf","in":"query","required":false,"schema":{"type":"string"}},{"name":"pacienteTelefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"procedimento","in":"query","required":false,"schema":{"type":"string"}},{"name":"prestador","in":"query","required":false,"schema":{"type":"string"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"motivo","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Arquivo gerado com sucesso","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/api/admin/respostas-rapidas/{id}":{"get":{"tags":["Atendimento - Respostas Rápidas"],"summary":"Buscar resposta rápida","description":"Retorna detalhes de uma resposta rápida pelo ID","operationId":"buscar_13","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Resposta rápida não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Atendimento - Respostas Rápidas"],"summary":"Excluir resposta rápida","description":"Remove uma resposta rápida","operationId":"excluir_9","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Resposta rápida excluída"}}}},"/api/admin/respostas-rapidas/operadores":{"get":{"tags":["Atendimento - Respostas Rápidas"],"summary":"Listar operadores","description":"Lista operadores disponíveis para associação com respostas rápidas","operationId":"listarOperadores","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/pesquisas/{id}":{"get":{"tags":["Pesquisas"],"summary":"Buscar pesquisa","description":"Retorna uma pesquisa de decisão pelo ID","operationId":"buscar_14","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Pesquisa retornada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaDTO"}}}}}},"delete":{"tags":["Pesquisas"],"summary":"Excluir pesquisa","description":"Remove uma pesquisa de decisão","operationId":"excluir_10","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Pesquisa excluída com sucesso"}}}},"/api/admin/pesquisas/{id}/simulacao-data":{"get":{"tags":["Pesquisas"],"summary":"Dados de simulação","description":"Carrega dados para simulação interativa da pesquisa","operationId":"simulacaoData","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Dados de simulação retornados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaSimulacaoDTO"}}}}}}},"/api/admin/pesquisas/{id}/configuracao":{"get":{"tags":["Pesquisas"],"summary":"Buscar configuração","description":"Retorna configuração completa da pesquisa com mensagens e versões","operationId":"configuracao","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Configuração retornada com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/pesquisas/{id}/builder-data":{"get":{"tags":["Pesquisas"],"summary":"Dados do builder","description":"Carrega árvore completa de perguntas e opções para o builder visual","operationId":"builderData","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Dados do builder retornados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PesquisaBuilderDTO"}}}}}}},"/api/admin/perfis/matriz":{"get":{"tags":["Perfis e Permissões"],"summary":"Matriz de permissões","description":"Retorna perfis + funcionalidades agrupadas + permissões pré-resolvidas para a tela.","operationId":"matriz","responses":{"200":{"description":"Matriz retornada com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MatrizPermissoesDTO"}}}}}}},"/api/admin/perfis/check":{"get":{"tags":["Perfis e Permissões"],"summary":"Resolver permissão","description":"Consulta runtime usada pelo BFF (DynamicAuthorizationManager / Thymeleaf dialect) para checar acesso de um par perfil/funcionalidade.","operationId":"check","parameters":[{"name":"tipoCodigo","in":"query","required":true,"schema":{"type":"string"}},{"name":"funcionalidadeCodigo","in":"query","required":true,"schema":{"type":"string"}},{"name":"acaoCodigo","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado da consulta","content":{"*/*":{"schema":{"type":"boolean"}}}}}}},"/api/admin/perfis-paciente":{"get":{"tags":["Catálogo de Exames - Perfis de Paciente"],"summary":"Listar perfis","description":"Lista todos os perfis clínicos ATIVOS ordenados por ordem e nome","operationId":"listar_31","responses":{"200":{"description":"Perfis listados com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PerfilPacienteDTO"}}}}}}}},"/api/admin/perfis-paciente/{id}":{"get":{"tags":["Catálogo de Exames - Perfis de Paciente"],"summary":"Buscar perfil","description":"Retorna um perfil clínico pelo ID","operationId":"buscar_15","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Perfil retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerfilPacienteDTO"}}}},"404":{"description":"Perfil não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PerfilPacienteDTO"}}}}}}},"/api/admin/n8n-teste":{"get":{"tags":["n8n Teste (Admin)"],"summary":"Listar registros recebidos do n8n","description":"Listagem paginada com filtros opcionais por ehAgendamento e período de recebimento","operationId":"listar_32","parameters":[{"name":"ehAgendamento","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Registros listados","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelN8nTesteExtracaoDTO"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelN8nTesteExtracaoDTO"}}}},"403":{"description":"Sem permissão (apenas ADMINISTRADOR)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelN8nTesteExtracaoDTO"}}}}}}},"/api/admin/n8n-teste/{id}":{"get":{"tags":["n8n Teste (Admin)"],"summary":"Buscar registro do n8n por ID","operationId":"buscar_16","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Registro retornado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/N8nTesteExtracaoDTO"}}}},"404":{"description":"Registro não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/N8nTesteExtracaoDTO"}}}}}}},"/api/admin/monitoramento":{"get":{"tags":["Sistema - Monitoramento"],"summary":"Métricas de monitoramento","description":"Retorna métricas de saúde e performance do sistema","operationId":"monitoramento_1","responses":{"200":{"description":"Métricas retornadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MonitoramentoDTO"}}}}}}},"/api/admin/logs/viewer/tail":{"get":{"tags":["Sistema - Logs Tempo Real"],"summary":"Últimas linhas do log","description":"Retorna as últimas N linhas do arquivo de log","operationId":"tail","parameters":[{"name":"lines","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"Linhas retornadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/logs/viewer/search":{"get":{"tags":["Sistema - Logs Tempo Real"],"summary":"Buscar nos logs","description":"Busca por texto nos arquivos de log","operationId":"search","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"maxResults","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":200}}],"responses":{"200":{"description":"Resultados da busca retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/logs/viewer/poll":{"get":{"tags":["Sistema - Logs Tempo Real"],"summary":"Poll de novas linhas","description":"Retorna novas linhas de log desde a última posição conhecida","operationId":"poll","parameters":[{"name":"lastPosition","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Novas linhas retornadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/logs/viewer/info":{"get":{"tags":["Sistema - Logs Tempo Real"],"summary":"Informações do arquivo de log","description":"Retorna metadados do arquivo de log (tamanho, última modificação)","operationId":"info","responses":{"200":{"description":"Informações retornadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/logs/download":{"get":{"tags":["Sistema - Logs Download"],"summary":"Download do arquivo de log","description":"Faz download do arquivo de log do servidor","operationId":"download_1","responses":{"200":{"description":"Arquivo de log retornado com sucesso","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"Arquivo de log não encontrado","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/admin/loggers":{"get":{"tags":["Sistema - Loggers"],"summary":"Listar loggers configurados","description":"Lista todos os loggers com configuração persistida","operationId":"getConfiguredLoggers","responses":{"200":{"description":"Loggers listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/loggers/available-packages":{"get":{"tags":["Sistema - Loggers"],"summary":"Listar pacotes disponíveis","description":"Lista pacotes Java disponíveis para configuração de loggers","operationId":"getAvailablePackages","responses":{"200":{"description":"Pacotes listados com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/admin/integridade/verificar":{"get":{"tags":["Sistema - Integridade"],"summary":"Verificar cadeia de integridade","description":"Verifica a cadeia de hashes SHA-256 de mensagens enviadas ou recebidas","operationId":"verificar","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tipo","in":"query","required":false,"schema":{"type":"string","default":"ENVIADAS"}}],"responses":{"200":{"description":"Verificação realizada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integridade/detalhe/{mensagemId}":{"get":{"tags":["Sistema - Integridade"],"summary":"Detalhe de integridade","description":"Retorna detalhes dos hashes e validação de uma mensagem específica","operationId":"detalhe_3","parameters":[{"name":"mensagemId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tipo","in":"query","required":false,"schema":{"type":"string","default":"ENVIADAS"}}],"responses":{"200":{"description":"Detalhes retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Mensagem não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/registros":{"get":{"tags":["Integrações - Registros"],"summary":"Listar registros importados","description":"Lista registros importados com filtros por aplicação e status","operationId":"listar_33","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Registros listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelRegistroImportadoDTO"}}}}}},"delete":{"tags":["Integrações - Registros"],"summary":"Remover registros","description":"Remove todos os registros importados de uma aplicação","operationId":"removerTodos","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoverRegistrosRequest"}}},"required":true},"responses":{"200":{"description":"Registros removidos com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/registros/{id}":{"get":{"tags":["Integrações - Registros"],"summary":"Detalhe do registro","description":"Retorna detalhes de um registro importado pelo ID","operationId":"detalhe_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Registro retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Registro não encontrado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/integracoes/logs":{"get":{"tags":["Integrações - Logs"],"summary":"Listar logs de execução","description":"Lista logs de execução das integrações com paginação","operationId":"listar_34","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Logs listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelIntegracaoLogExecucaoDTO"}}}}}}},"/api/admin/integracoes/banco/{id}":{"get":{"tags":["Integrações - Banco de Dados"],"summary":"Detalhes da integração","description":"Retorna detalhes da integração com logs e dados de importação","operationId":"detalhes_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Detalhes retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Integração não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Integrações - Banco de Dados"],"summary":"Excluir integração","description":"Remove uma integração com banco de dados","operationId":"excluir_11","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Integração excluída com sucesso"}}}},"/api/admin/integracoes/api/{id}":{"get":{"tags":["Integrações - API Externa"],"summary":"Detalhes da integração","description":"Retorna detalhes da integração API com logs de execução","operationId":"detalhes_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Detalhes retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Integração não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Integrações - API Externa"],"summary":"Excluir integração","description":"Remove uma integração com API externa","operationId":"excluir_12","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Integração excluída com sucesso"}}}},"/api/admin/ia/metricas-atendimento/sugestoes":{"get":{"tags":["Atendimento - Métricas IA"],"summary":"Sugestões de FAQ","description":"Lista sugestões de FAQ pendentes extraídas de conversas pela IA","operationId":"sugestoes","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/logs":{"get":{"tags":["IA - Logs"],"summary":"Listar interações de IA","description":"Lista interações de IA com filtros por aplicação, provider, tipo, confiança e período","operationId":"listar_35","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"tipoInteracao","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string"}},{"name":"confiancaMin","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"confiancaMax","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Interações listadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelInteracaoIADTO"}}}}}}},"/api/admin/ia/logs/{id}":{"get":{"tags":["IA - Logs"],"summary":"Detalhes da interação","description":"Retorna detalhes completos de uma interação de IA","operationId":"detalhes_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Detalhes retornados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/InteracaoIADTO"}}}}}}},"/api/admin/ia/logs/exportar":{"get":{"tags":["IA - Logs"],"summary":"Exportar logs em CSV","description":"Exporta interações de IA filtradas em formato CSV","operationId":"exportarCsv","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"tipoInteracao","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string"}},{"name":"confiancaMin","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"confiancaMax","in":"query","required":false,"schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"CSV gerado com sucesso","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/api/admin/ia/financeiro/tarifas":{"get":{"tags":["Financeiro - IA"],"summary":"Listar tarifas de IA","description":"Lista todas as tarifas de IA de todas as aplicações","operationId":"tarifas_1","responses":{"200":{"description":"Tarifas listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Financeiro - IA"],"summary":"Excluir tarifa de IA","description":"Remove uma tarifa de IA pelo ID","operationId":"excluirTarifa","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Tarifa excluída com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/financeiro/custos-provider":{"get":{"tags":["Financeiro - IA"],"summary":"Listar custos por provider","description":"Lista custos por provider de IA com conversão BRL e impostos","operationId":"custosProvider","responses":{"200":{"description":"Custos por provider listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Financeiro - IA"],"summary":"Excluir custo de provider","description":"Remove custo de um provider e modelo de IA","operationId":"excluirCustoProvider","parameters":[{"name":"provider","in":"query","required":true,"schema":{"type":"string"}},{"name":"modelo","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Custo excluído com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/ia/dashboard":{"get":{"tags":["IA - Dashboard"],"summary":"Métricas do dashboard de IA","description":"Retorna métricas de interações com IA no período selecionado","operationId":"dashboard_3","parameters":[{"name":"mes","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ano","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Métricas retornadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IADashboardDTO"}}}}}}},"/api/admin/ia/advisor":{"get":{"tags":["IA - Advisor"],"summary":"Listar análises","description":"Lista análises do advisor estratégico com paginação","operationId":"listar_36","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"Análises listadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAnaliseAdvisorDTO"}}}}}}},"/api/admin/ia/advisor/{id}":{"get":{"tags":["IA - Advisor"],"summary":"Detalhes da análise","description":"Retorna detalhes completos de uma análise do advisor","operationId":"detalhes_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Detalhes retornados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AnaliseAdvisorDTO"}}}}}}},"/api/admin/financeiro/custos-twilio":{"get":{"tags":["Financeiro - Caixa"],"summary":"Listar custos Twilio","description":"Lista custos padrão do Twilio com conversão para BRL e impostos","operationId":"custosTwilio","responses":{"200":{"description":"Custos Twilio listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-twilio/extras":{"get":{"tags":["Financeiro - Caixa"],"summary":"Custos extras WhatsApp/Meta","description":"Lista custos de conversação Meta com conversão BRL e impostos","operationId":"custosTwilioExtras","responses":{"200":{"description":"Custos extras listados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/custos-app":{"get":{"tags":["Financeiro - Caixa"],"summary":"Listar custos do app","description":"Lista custos de mensagens do aplicativo mobile","operationId":"listarCustosApp","responses":{"200":{"description":"Lista retornada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/financeiro/caixa":{"get":{"tags":["Financeiro - Caixa"],"summary":"Caixa consolidado","description":"Retorna receita, custo e margem por aplicação no período","operationId":"caixa","parameters":[{"name":"mes","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ano","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Caixa retornado com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/dashboard/metricas":{"get":{"tags":["Sistema - Dashboard"],"summary":"Métricas do dashboard","description":"Retorna métricas gerais: aplicações, mensagens, auditoria e gráficos","operationId":"metricas","parameters":[{"name":"mes","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"ano","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Métricas retornadas com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/configuracoes/twilio/status":{"get":{"tags":["Configurações - Twilio"],"summary":"Status da configuração","description":"Retorna o status atual da configuração Twilio (existência, ativação, provider)","operationId":"getStatus","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/twilio/lista":{"get":{"tags":["Configurações - Twilio"],"summary":"Listar configurações Twilio","description":"Lista todas as configurações Twilio com suas aplicações associadas","operationId":"listar_37","responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/configuracoes/ia/status":{"get":{"tags":["Configurações - IA Status"],"summary":"Status da IA","description":"Retorna estado consolidado: ATIVA / DESABILITADA / SEM_CONFIG. Considera aplicacao.autoRespostaIaHabilitada e a presenca de ConfiguracaoIA ativa (com fallback para configuracao global quando o app nao tem a sua).","operationId":"getStatus_1","parameters":[{"name":"X-Aplicacao-Id","in":"header","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status da IA","content":{"*/*":{"schema":{"$ref":"#/components/schemas/StatusIADTO"}}}}}}},"/api/admin/competencias/nomes":{"get":{"tags":["Atendimento - Competências"],"summary":"Listar nomes de competências ativas (autocomplete)","operationId":"listarNomesAtivos","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/admin/catalogo-exames/{id}/detalhado":{"get":{"tags":["Catálogo de Exames"],"summary":"Buscar exame detalhado","description":"Retorna a visão completa de um exame com todas as listas aninhadas (preparos, contraindicações, orientações por perfil, fontes)","operationId":"buscarDetalhado","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exame retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDetalhadoDTO"}}}},"404":{"description":"Exame não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDetalhadoDTO"}}}}}}},"/api/admin/catalogo-exames/por-slug/{slug}":{"get":{"tags":["Catálogo de Exames"],"summary":"Buscar exame por slug","description":"Retorna a visão completa de um exame pelo slug (ex: \"colonoscopia\")","operationId":"buscarPorSlug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Exame retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDetalhadoDTO"}}}},"404":{"description":"Exame não encontrado","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameDetalhadoDTO"}}}}}}},"/api/admin/catalogo-exames/metricas":{"get":{"tags":["Catálogo de Exames - Métricas"],"summary":"Métricas consolidadas","description":"Retorna KPIs (totais, top exames, gaps, distribuições, feedback) no período informado. Quando datas não são informadas, usa últimos 30 dias.","operationId":"obter","parameters":[{"name":"inicio","in":"query","description":"Data inicial (YYYY-MM-DD). Default: hoje - 30 dias.","required":false,"schema":{"type":"string","format":"date"}},{"name":"fim","in":"query","description":"Data final (YYYY-MM-DD). Default: hoje.","required":false,"schema":{"type":"string","format":"date"}},{"name":"aplicacaoId","in":"query","description":"Filtra métricas por aplicação cliente. Vazio = todas.","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Métricas retornadas com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ExameMetricasDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/resumo":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Resumo de contadores do pipeline","description":"Conta items por status (NOVO, MODIFICADO, PROCESSADO, ERRO_PARSE, IGNORADO).","operationId":"resumo_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/catalogo-exames/importacoes/execucoes":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Histórico de execuções (paginado)","operationId":"listarExecucoes","parameters":[{"name":"provider","in":"query","required":false,"schema":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelImportacaoExameExecucaoDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/configuracao":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Listar configurações de providers","operationId":"listarConfiguracoes","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConfiguracaoImportacaoExameDTO"}}}}}}}},"/api/admin/catalogo-exames/importacoes/buffer":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Buffer de items pendentes/erro","operationId":"listarBuffer","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["NOVO","MODIFICADO","PROCESSADO","ERRO_PARSE","IGNORADO"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelImportacaoExameBufferDTO"}}}}}}},"/api/admin/catalogo-exames/importacoes/buffer/{id}":{"get":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Buscar item específico do buffer","operationId":"buscarBuffer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportacaoExameBufferDTO"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ImportacaoExameBufferDTO"}}}}}},"delete":{"tags":["Catálogo de Exames - Ingestão"],"summary":"Marcar item do buffer como ignorado","operationId":"ignorar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}}},"/api/admin/catalogo-exames/embeddings/status":{"get":{"tags":["Catálogo de Exames"],"summary":"Status de embeddings do catálogo","description":"Mostra se embeddings estão habilitados na configuração global de IA e quantos exames ATIVOS ainda precisam ser indexados","operationId":"statusEmbeddings","responses":{"200":{"description":"Status retornado com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/catalogo-exames/contadores":{"get":{"tags":["Catálogo de Exames"],"summary":"Contadores por status","description":"Retorna contagens de exames por status (rascunho, em revisão, ativo, arquivado)","operationId":"contadores","responses":{"200":{"description":"Contadores retornados","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/base-conhecimento/embeddings/status":{"get":{"tags":["IA - Base de Conhecimento"],"summary":"Status de embeddings","description":"Mostra se embeddings estão habilitados na aplicação e quantas FAQs ainda não foram indexadas (ou estão com modelo desatualizado)","operationId":"statusEmbeddings_1","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Status retornado com sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/base-conhecimento/embeddings/benchmark":{"get":{"tags":["IA - Base de Conhecimento"],"summary":"Benchmark de busca: Jaccard vs Embeddings (M2.B)","description":"Roda a mesma pergunta nos dois algoritmos e retorna ranking de cada um, latência e tokens. Use para comparar Top-1/Top-3 accuracy em planilha de avaliação antes de habilitar embeddings em prod.","operationId":"benchmark","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pergunta","in":"query","required":true,"schema":{"type":"string"}},{"name":"limite","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":5}}],"responses":{"200":{"description":"Comparação retornada","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/base-conhecimento/categorias":{"get":{"tags":["IA - Base de Conhecimento"],"summary":"Listar categorias","description":"Lista categorias da base de conhecimento","operationId":"listarCategorias","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Categorias listadas com sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CategoriaConhecimentoDTO"}}}}}}}},"/api/admin/auth/me":{"get":{"tags":["Autenticação"],"summary":"Dados do usuário autenticado","description":"Valida o JWT e retorna os dados do usuário. Usado pelo BFF para validar o cookie de remember-me.","operationId":"me","responses":{"200":{"description":"JWT válido, dados retornados","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"JWT inválido ou expirado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/auditoria":{"get":{"tags":["Sistema - Auditoria"],"summary":"Listar registros de auditoria","description":"Lista registros de auditoria com filtros por ação, categoria e período","operationId":"listar_38","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"acao","in":"query","required":false,"schema":{"type":"string"}},{"name":"categoria","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"Registros listados com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagedModelAuditLogDTO"}}}}}}},"/api/admin/auditoria/{id}":{"get":{"tags":["Sistema - Auditoria"],"summary":"Buscar registro de auditoria","description":"Retorna detalhes de um registro de auditoria pelo ID","operationId":"buscar_17","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Registro retornado com sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuditLogDTO"}}}}}}},"/api/admin/atendimento/{sessaoId}/mensagens":{"get":{"tags":["Atendimento"],"summary":"Mensagens da sessão","description":"Retorna timeline de mensagens de uma sessão de atendimento","operationId":"mensagens_1","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MensagemChatDTO"}}}}},"404":{"description":"Sessão não encontrada","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MensagemChatDTO"}}}}}}}},"/api/admin/atendimento/respostas-rapidas":{"get":{"tags":["Atendimento"],"summary":"Respostas rápidas do operador","description":"Lista respostas rápidas disponíveis para o operador autenticado","operationId":"respostasRapidas","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/relatorio-estatistico":{"get":{"tags":["Atendimento"],"summary":"Relatório estatístico","description":"Gera relatório estatístico completo com dados demográficos, alertas e análise IA opcional","operationId":"relatorioEstatistico","parameters":[{"name":"aplicacaoId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"periodo","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":30}},{"name":"gerarIA","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/painel":{"get":{"tags":["Atendimento"],"summary":"Painel de atendimento","description":"Retorna dados completos do painel: fila, atendimentos em andamento, KPIs, gráficos e operadores","operationId":"painel_1","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/atendimento/operadores-disponiveis":{"get":{"tags":["Atendimento"],"summary":"Operadores disponíveis","description":"Lista operadores online disponíveis para transferência de sessão","operationId":"operadoresDisponiveis","parameters":[{"name":"excluirId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/meus":{"get":{"tags":["Atendimento"],"summary":"Meus atendimentos","description":"Lista sessões em atendimento pelo operador autenticado","operationId":"meusAtendimentos","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessaoConversaIADTO"}}}}},"401":{"description":"Não autenticado","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessaoConversaIADTO"}}}}}}}},"/api/admin/atendimento/media/{nomeArquivo}":{"get":{"tags":["Atendimento"],"summary":"Servir mídia","description":"Retorna arquivo de mídia armazenado localmente","operationId":"servirMidia","parameters":[{"name":"nomeArquivo","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Arquivo retornado","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"Arquivo não encontrado","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/admin/atendimento/indicadores":{"get":{"tags":["Atendimento"],"summary":"Indicadores de atendimento","description":"Retorna indicadores unificados: visão geral, satisfação, performance IA e uso/custos","operationId":"indicadores","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"periodo","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":7}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/atendimento/historico":{"get":{"tags":["Atendimento"],"summary":"Histórico de atendimentos","description":"Lista paginada de atendimentos finalizados com filtros por aplicação, operador, telefone e período","operationId":"historico_2","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"telefone","in":"query","required":false,"schema":{"type":"string"}},{"name":"dataInicio","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dataFim","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/historico/{sessaoId}":{"get":{"tags":["Atendimento"],"summary":"Detalhes do atendimento","description":"Retorna detalhes de uma sessão com interações IA e respostas de pesquisa","operationId":"historicoDetalhes","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Sessão não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Atendimento"],"summary":"Excluir atendimento","description":"Remove uma sessão de atendimento e todas as dependências","operationId":"excluirAtendimento","parameters":[{"name":"sessaoId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sessão excluída","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Erro ao excluir","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/fila/resumo":{"get":{"tags":["Atendimento"],"summary":"Resumo da fila","description":"Retorna contadores resumidos da fila de atendimento","operationId":"resumoFila","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"$ref":"#/components/schemas/FilaResumoDTO"}}}}}}},"/api/admin/atendimento/fila/lista":{"get":{"tags":["Atendimento"],"summary":"Lista da fila","description":"Retorna sessões aguardando na fila de atendimento ordenadas por prioridade","operationId":"listaFila","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessaoConversaIADTO"}}}}}}}},"/api/admin/atendimento/contagem-mensagens":{"get":{"tags":["Atendimento"],"summary":"Contagem de mensagens","description":"Retorna contagem de mensagens recebidas por sessão para múltiplas sessões","operationId":"contagemMensagens","parameters":[{"name":"sessaoIds","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/admin/atendimento/atividade-operadores":{"get":{"tags":["Atendimento"],"summary":"Atividade de operadores","description":"Retorna timeline de atividade dos operadores com totais de tempo online e ausente","operationId":"atividadeOperadores","parameters":[{"name":"aplicacaoId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"data","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"operadorId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/api/admin/aplicacoes/{id}/detalhes-abas":{"get":{"tags":["Aplicações"],"summary":"Detalhes completos","description":"Retorna dados de todas as abas (Twilio, integrações, financeiro, saúde)","operationId":"detalhesAbas","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Dados financeiros da aplicação","description":"Retorna saldo, tarifas e extrato paginado da aplicação","operationId":"financeiro","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Dados financeiros retornados com sucesso","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Aplicação não encontrada","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifas-unificadas":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Listar tarifas unificadas","description":"Lista tarifas unificadas da aplicação","operationId":"listarTarifasUnificadas","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Tarifas unificadas listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifas-servico":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Listar tarifas de serviço","description":"Lista tarifas de serviço da aplicação","operationId":"listarTarifasServico","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Tarifas de serviço listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifas-ia":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Listar tarifas de IA","description":"Lista tarifas de IA com custo base e margem calculados","operationId":"listarTarifasIA","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Tarifas de IA listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifas-conversa":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Listar tarifas de conversação","description":"Lista tarifas de conversação WhatsApp com custo base e margem","operationId":"listarTarifasConversa","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Tarifas de conversação listadas com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/cotacao":{"get":{"tags":["Financeiro - Aplicação"],"summary":"Cotação USD/BRL","description":"Retorna a cotação atual do dólar em reais","operationId":"cotacao","responses":{"200":{"description":"Cotação retornada com sucesso","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v4/saude/dispositivos":{"delete":{"tags":["Dispositivos Saúde"],"summary":"Remover dispositivos","description":"Desativa todos os dispositivos do paciente (logout)","operationId":"remover_2","responses":{"200":{"description":"Dispositivos removidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/impostos/{id}":{"delete":{"tags":["Financeiro - Impostos"],"summary":"Excluir imposto","description":"Remove um imposto pelo ID","operationId":"excluir_13","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Imposto excluído com sucesso"}}}},"/api/admin/configuracoes/carimbo/custos/{id}":{"delete":{"tags":["Configurações - Carimbo de Tempo"],"summary":"Excluir custo TSA","description":"Remove um registro de custo TSA","operationId":"excluirCusto","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Custo excluído"}}}},"/api/admin/competencias/{id}":{"delete":{"tags":["Atendimento - Competências"],"summary":"Excluir competência","operationId":"remover_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Removida"}}}},"/api/admin/atendimento/limpar-todos":{"delete":{"tags":["Atendimento"],"summary":"Limpar todos os atendimentos","description":"Remove todos os atendimentos (finalizados e ativos)","operationId":"limparTodos","responses":{"200":{"description":"Todos os atendimentos removidos","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/atendimento/historico/limpar-tudo":{"delete":{"tags":["Atendimento"],"summary":"Limpar finalizados","description":"Remove todos os atendimentos finalizados do histórico","operationId":"limparTudo","responses":{"200":{"description":"Histórico limpo","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifa/{tarifaId}":{"delete":{"tags":["Financeiro - Aplicação"],"summary":"Excluir tarifa","description":"Remove uma tarifa de mensagem da aplicação","operationId":"excluirTarifa_1","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tarifaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Tarifa removida com sucesso"}}}},"/api/admin/aplicacoes/{appId}/financeiro/tarifa-unificada/{tarifaId}":{"delete":{"tags":["Financeiro - Aplicação"],"summary":"Remover tarifa unificada","description":"Remove uma tarifa unificada da aplicação","operationId":"removerTarifaUnificada","parameters":[{"name":"appId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"tarifaId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Tarifa unificada removida com sucesso"}}}}},"components":{"schemas":{"PacientePerfilDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"telefone":{"type":"string"},"cpfMascarado":{"type":"string"},"sexo":{"type":"string"},"dataNascimento":{"type":"string","format":"date"},"bairro":{"type":"string"},"cidade":{"type":"string"},"tipoPlano":{"type":"string"}}},"AtualizarConsentimentosRequest":{"type":"object","properties":{"consentimentos":{"type":"array","items":{"$ref":"#/components/schemas/Item"},"minItems":1}},"required":["consentimentos"]},"Item":{"type":"object","properties":{"tipo":{"type":"string"},"concedido":{"type":"boolean"}}},"ConsentimentoDispositivoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"pacienteId":{"type":"integer","format":"int64"},"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"tipo":{"type":"string"},"tipoNome":{"type":"string"},"tipoDescricao":{"type":"string"},"status":{"type":"string"},"statusDescricao":{"type":"string"},"dataOptIn":{"type":"string","format":"date-time"},"dataOptOut":{"type":"string","format":"date-time"},"motivoOptOut":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"AtualizarSubRequest":{"type":"object","properties":{"nome":{"type":"string"},"url":{"type":"string"},"secret":{"type":"string"},"eventos":{"type":"string"},"descricao":{"type":"string"},"ativo":{"type":"boolean"}}},"WebhookSubscriptionDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"url":{"type":"string"},"secretMascarado":{"type":"string"},"temSecret":{"type":"boolean"},"eventos":{"type":"string"},"ativo":{"type":"boolean"},"descricao":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"EditarPrestadorRequest":{"type":"object","properties":{"nome":{"type":"string"},"cnpj":{"type":"string"},"codigo":{"type":"string"},"endereco":{"type":"string"},"telefone":{"type":"string"},"motivo":{"type":"string"}}},"PrestadorSaudeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"cnpj":{"type":"string"},"codigo":{"type":"string"},"nome":{"type":"string"},"endereco":{"type":"string"},"telefone":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"EditarPacienteRequest":{"type":"object","properties":{"nome":{"type":"string"},"cpf":{"type":"string"},"telefone":{"type":"string"},"endereco":{"type":"string"},"sexo":{"type":"string"},"dataNascimento":{"type":"string"},"bairro":{"type":"string"},"cidade":{"type":"string"},"estado":{"type":"string"},"rendaFamiliar":{"type":"string"},"tipoPlano":{"type":"string"},"cartaoSus":{"type":"string"},"motivo":{"type":"string"}}},"PacienteSaudeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"cpf":{"type":"string"},"nome":{"type":"string"},"telefone":{"type":"string"},"endereco":{"type":"string"},"sexo":{"type":"string"},"dataNascimento":{"type":"string","format":"date"},"bairro":{"type":"string"},"cidade":{"type":"string"},"estado":{"type":"string"},"rendaFamiliar":{"type":"string"},"tipoPlano":{"type":"string"},"cartaoSus":{"type":"string"},"appAtivo":{"type":"boolean"},"origemCadastro":{"type":"string"},"appAtivoDesde":{"type":"string","format":"date-time"},"preferenciaAudio":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"OpcaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"texto":{"type":"string"},"valor":{"type":"string"},"ordem":{"type":"integer","format":"int32"}}},"PerguntaPesquisaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"pesquisaId":{"type":"integer","format":"int64"},"texto":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"tipo":{"type":"string"},"condicaoNotaMin":{"type":"integer","format":"int32"},"condicaoNotaMax":{"type":"integer","format":"int32"},"perguntaPaiId":{"type":"integer","format":"int64"},"condicaoRespostaPai":{"type":"string"},"ativo":{"type":"boolean"},"obrigatoria":{"type":"boolean"},"mensagemFallback":{"type":"string"},"tempoMaximoMinutos":{"type":"integer","format":"int32"},"perguntaPaiTexto":{"type":"string"},"raiz":{"type":"boolean"},"opcoes":{"type":"array","items":{"$ref":"#/components/schemas/OpcaoDTO"}}}},"AtualizarPerfilRequest":{"type":"object","properties":{"nome":{"type":"string"},"descricao":{"type":"string"},"ativo":{"type":"boolean"}}},"TipoUsuarioCustomDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"codigo":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"sistema":{"type":"boolean"},"perfilBaseId":{"type":"integer","format":"int64"},"perfilBaseCodigo":{"type":"string"},"ativo":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"TogglePermissaoRequest":{"type":"object","properties":{"tipoUsuarioId":{"type":"integer","format":"int64"},"funcionalidadeId":{"type":"integer","format":"int64"},"acaoId":{"type":"integer","format":"int64"},"permitido":{"type":"boolean"}}},"AlterarSenhaRequest":{"type":"object","properties":{"senhaAtual":{"type":"string"},"novaSenha":{"type":"string"},"confirmacaoSenha":{"type":"string"}}},"SetLevelRequest":{"type":"object","properties":{"level":{"type":"string"}}},"SalvarContaImapRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"usuario":{"type":"string"},"senha":{"type":"string"},"host":{"type":"string"},"porta":{"type":"integer","format":"int32"},"sslTls":{"type":"boolean"},"permitirSelfSigned":{"type":"boolean"},"ativa":{"type":"boolean"}}},"ContaImapAdminDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"usuario":{"type":"string"},"host":{"type":"string"},"porta":{"type":"integer","format":"int32"},"sslTls":{"type":"boolean"},"permitirSelfSigned":{"type":"boolean"},"ativa":{"type":"boolean"},"ultimoTesteEm":{"type":"string","format":"date-time"},"ultimoTesteSucesso":{"type":"boolean"},"ultimoTesteMensagem":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"AtualizarCategoriaExameRequest":{"type":"object","properties":{"nome":{"type":"string","maxLength":120,"minLength":0},"descricao":{"type":"string"},"icone":{"type":"string","maxLength":60,"minLength":0},"ordem":{"type":"integer","format":"int32"},"ativo":{"type":"boolean"}}},"CategoriaExameDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"icone":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"ativo":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"quantidadeExames":{"type":"integer","format":"int64"}}},"AtualizarExameRequest":{"type":"object","properties":{"categoriaId":{"type":"integer","format":"int64"},"nome":{"type":"string","maxLength":180,"minLength":0},"slug":{"type":"string","maxLength":200,"minLength":0,"pattern":"^[a-z0-9-]+$"},"descricao":{"type":"string","maxLength":5000,"minLength":0},"duracaoMediaMinutos":{"type":"integer","format":"int32"},"tempoResultadoDescricao":{"type":"string","maxLength":255,"minLength":0},"riscoDescricao":{"type":"string"},"observacaoGeral":{"type":"string"},"dataProximaRevisao":{"type":"string","format":"date"},"preparos":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"durante":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"apos":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"contraindicacoes":{"type":"array","items":{"$ref":"#/components/schemas/ContraindicacaoRequest"}},"orientacoesPerfil":{"type":"array","items":{"$ref":"#/components/schemas/OrientacaoPerfilRequest"}},"fontes":{"type":"array","items":{"$ref":"#/components/schemas/FonteRequest"}},"palavrasChave":{"type":"array","items":{"type":"string","maxLength":120,"minLength":0}}},"required":["categoriaId","nome","slug"]},"ContraindicacaoRequest":{"type":"object","properties":{"descricao":{"type":"string","minLength":1},"severidade":{"type":"string","enum":["ABSOLUTA","RELATIVA"]}},"required":["descricao"]},"FonteRequest":{"type":"object","properties":{"nomeFonte":{"type":"string","maxLength":180,"minLength":0},"urlFonte":{"type":"string"},"tipoFonte":{"type":"string","enum":["GOVERNAMENTAL","ACADEMICA","HOSPITAL_REFERENCIA","INTERNO"]},"idiomaOriginal":{"type":"string","maxLength":5,"minLength":0},"notas":{"type":"string"}},"required":["nomeFonte"]},"InstrucaoRequest":{"type":"object","properties":{"instrucao":{"type":"string","minLength":1},"ordem":{"type":"integer","format":"int32"}},"required":["instrucao"]},"OrientacaoPerfilRequest":{"type":"object","properties":{"perfilPacienteId":{"type":"integer","format":"int64"},"orientacao":{"type":"string","minLength":1}},"required":["orientacao","perfilPacienteId"]},"ExameDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"categoriaId":{"type":"integer","format":"int64"},"categoriaNome":{"type":"string"},"categoriaIcone":{"type":"string"},"nome":{"type":"string"},"slug":{"type":"string"},"descricao":{"type":"string"},"duracaoMediaMinutos":{"type":"integer","format":"int32"},"tempoResultadoDescricao":{"type":"string"},"riscoDescricao":{"type":"string"},"observacaoGeral":{"type":"string"},"status":{"type":"string","enum":["RASCUNHO","EM_REVISAO","ATIVO","ARQUIVADO"]},"versao":{"type":"integer","format":"int32"},"revisorNome":{"type":"string"},"revisadoEm":{"type":"string","format":"date-time"},"dataProximaRevisao":{"type":"string","format":"date"},"criadoPorNome":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"ativo":{"type":"boolean"}}},"AtualizarConfiguracaoImportacaoRequest":{"type":"object","properties":{"habilitado":{"type":"boolean"},"baseUrl":{"type":"string","maxLength":2000,"minLength":0},"apiKey":{"type":"string"},"frequenciaCron":{"type":"string","maxLength":80,"minLength":0,"pattern":"^[\\d\\*\\?,\\-/\\s]+$"},"rateLimitReqPorMinuto":{"type":"integer","format":"int32","minimum":1},"timeoutMs":{"type":"integer","format":"int32","minimum":1000},"maxItemsPorExecucao":{"type":"integer","format":"int32","minimum":1},"userAgent":{"type":"string","maxLength":200,"minLength":0},"notas":{"type":"string","maxLength":1000,"minLength":0}},"required":["baseUrl","frequenciaCron"]},"ConfiguracaoImportacaoExameDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"provider":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]},"habilitado":{"type":"boolean"},"baseUrl":{"type":"string"},"apiKeyMascarada":{"type":"string"},"apiKeyConfigurada":{"type":"boolean"},"frequenciaCron":{"type":"string"},"rateLimitReqPorMinuto":{"type":"integer","format":"int32"},"timeoutMs":{"type":"integer","format":"int32"},"maxItemsPorExecucao":{"type":"integer","format":"int32"},"userAgent":{"type":"string"},"ultimaExecucaoEm":{"type":"string","format":"date-time"},"proximaExecucaoEm":{"type":"string","format":"date-time"},"notas":{"type":"string"},"atualizadoEm":{"type":"string","format":"date-time"}}},"AtualizarBaseConhecimentoRequest":{"type":"object","properties":{"pergunta":{"type":"string"},"resposta":{"type":"string"},"palavrasChave":{"type":"string"},"categoriaId":{"type":"integer","format":"int64"}}},"BaseConhecimentoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"categoriaId":{"type":"integer","format":"int64"},"categoriaNome":{"type":"string"},"pergunta":{"type":"string"},"palavrasChave":{"type":"string"},"resposta":{"type":"string"},"ativo":{"type":"boolean"},"origemAprendizado":{"type":"boolean"},"criadoPorNome":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"vezesUsada":{"type":"integer","format":"int32"}}},"ResponderPerguntaRequest":{"type":"object","properties":{"perguntaId":{"type":"integer","format":"int64"},"resposta":{"type":"string"}},"required":["perguntaId","resposta"]},"PerguntaMobileDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"texto":{"type":"string"},"tipo":{"type":"string"},"opcoes":{"type":"array","items":{"type":"string"}},"obrigatoria":{"type":"boolean"}}},"ResponderPerguntaResponse":{"type":"object","properties":{"proxima":{"$ref":"#/components/schemas/PerguntaMobileDTO"},"finalizada":{"type":"boolean"},"mensagem":{"type":"string"}}},"RespostaItem":{"type":"object","properties":{"perguntaId":{"type":"integer","format":"int64"},"resposta":{"type":"string"}}},"RespostaPesquisaMobileRequest":{"type":"object","properties":{"pesquisaId":{"type":"integer","format":"int64"},"respostas":{"type":"array","items":{"$ref":"#/components/schemas/RespostaItem"}}},"required":["pesquisaId","respostas"]},"EnviarMensagemMobileRequest":{"type":"object","properties":{"conteudo":{"type":"string","maxLength":4096,"minLength":0},"mediaUrl":{"type":"string"},"mediaType":{"type":"string"},"mediaFileName":{"type":"string"}}},"MensagemMobileDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tipo":{"type":"string"},"conteudo":{"type":"string"},"dataHora":{"type":"string","format":"date-time"},"temMidia":{"type":"boolean"},"mediaUrl":{"type":"string"},"mediaType":{"type":"string"},"mediaFileName":{"type":"string"}}},"ExameUsoFeedbackRequest":{"type":"object","properties":{"util":{"type":"boolean"},"motivo":{"type":"string","maxLength":500,"minLength":0}},"required":["util"]},"DeviceTokenRequest":{"type":"object","properties":{"token":{"type":"string","minLength":1},"plataforma":{"type":"string","enum":["IOS","ANDROID"]},"appVersion":{"type":"string"}},"required":["plataforma","token"]},"OtpVerificacaoRequest":{"type":"object","properties":{"telefone":{"type":"string","minLength":1},"codigo":{"type":"string","maxLength":6,"minLength":6}},"required":["codigo","telefone"]},"OtpSolicitacaoRequest":{"type":"object","properties":{"telefone":{"type":"string","minLength":1},"aplicacaoId":{"type":"integer","format":"int64"}},"required":["telefone"]},"CadastrarPacienteMobileRequest":{"type":"object","properties":{"telefone":{"type":"string","minLength":1},"nome":{"type":"string","maxLength":300,"minLength":0},"cpf":{"type":"string","maxLength":20,"minLength":0},"cidade":{"type":"string","maxLength":100,"minLength":0},"estado":{"type":"string","maxLength":2,"minLength":2},"sexo":{"type":"string"},"dataNascimento":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"preferenciaAudio":{"type":"boolean"}},"required":["aplicacaoId","cidade","cpf","estado","nome","telefone"]},"UpsertPacienteRequest":{"type":"object","properties":{"cpf":{"type":"string"},"nome":{"type":"string"},"telefone":{"type":"string"},"sexo":{"type":"string"},"bairro":{"type":"string"},"cidade":{"type":"string"},"estado":{"type":"string"},"cartaoSus":{"type":"string"}}},"EnviarMensagemRequest":{"type":"object","properties":{"telefone":{"type":"string"},"mensagem":{"type":"string"},"contexto":{"type":"string"}}},"EscalarRequest":{"type":"object","properties":{"motivo":{"type":"string"},"urgencia":{"type":"string"}}},"CriarAgendamentoRequest":{"type":"object","properties":{"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"pacienteCpf":{"type":"string"},"procedimento":{"type":"string"},"prestador":{"type":"string"},"numeroPedido":{"type":"string"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"observacoes":{"type":"string"},"medicoSolicitante":{"type":"string"}}},"SendMessageRequest":{"type":"object","description":"Request para envio de mensagem WhatsApp","properties":{"telefone":{"type":"string","description":"Telefone do destinatário com DDI","example":"+5511999998888","minLength":1},"mensagem":{"type":"string","description":"Texto da mensagem a ser enviada","example":"Olá! Sua reserva foi confirmada.","minLength":1},"contexto":{"type":"string","description":"Contexto de negócio da mensagem","example":"RESERVA"},"contextoId":{"type":"integer","format":"int64","description":"ID do objeto relacionado ao contexto","example":123},"usuarioId":{"type":"integer","format":"int64","description":"ID do usuário destinatário","example":456}},"required":["mensagem","telefone"]},"ImportRequest":{"type":"object","properties":{"integracaoId":{"type":"integer","format":"int64"},"tipoIntegracao":{"type":"string","enum":["BANCO_DADOS","API_EXTERNA"]},"registros":{"type":"array","items":{"$ref":"#/components/schemas/RegistroRequest"}},"log":{"$ref":"#/components/schemas/LogExecucaoRequest"}}},"LogExecucaoRequest":{"type":"object","properties":{"tipoIntegracao":{"type":"string","enum":["BANCO_DADOS","API_EXTERNA"]},"integracaoId":{"type":"integer","format":"int64"},"iniciadoEm":{"type":"string","format":"date-time"},"concluidoEm":{"type":"string","format":"date-time"},"totalRegistros":{"type":"integer","format":"int32"},"registrosNovos":{"type":"integer","format":"int32"},"registrosAtualizados":{"type":"integer","format":"int32"},"registrosErro":{"type":"integer","format":"int32"},"status":{"type":"string","enum":["SUCESSO","PARCIAL","ERRO"]},"mensagemErro":{"type":"string"}}},"RegistroRequest":{"type":"object","properties":{"chaveExterna":{"type":"string"},"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"pacienteCpf":{"type":"string"},"pacienteEndereco":{"type":"string"},"procedimento":{"type":"string"},"procedimentoCodigo":{"type":"string"},"prestador":{"type":"string"},"prestadorCnpj":{"type":"string"},"prestadorCodigo":{"type":"string"},"prestadorEndereco":{"type":"string"},"prestadorTelefone":{"type":"string"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"numeroPedido":{"type":"string"},"medicoSolicitante":{"type":"string"},"observacoes":{"type":"string"},"dadosExtras":{"type":"string"}}},"ImportResult":{"type":"object","properties":{"novos":{"type":"integer","format":"int32"},"atualizados":{"type":"integer","format":"int32"},"erros":{"type":"integer","format":"int32"}}},"IntegracaoLogExecucaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"tipoIntegracao":{"type":"string","enum":["BANCO_DADOS","API_EXTERNA"]},"integracaoId":{"type":"integer","format":"int64"},"iniciadoEm":{"type":"string","format":"date-time"},"concluidoEm":{"type":"string","format":"date-time"},"totalRegistros":{"type":"integer","format":"int32"},"registrosNovos":{"type":"integer","format":"int32"},"registrosAtualizados":{"type":"integer","format":"int32"},"registrosErro":{"type":"integer","format":"int32"},"status":{"type":"string","enum":["SUCESSO","PARCIAL","ERRO"]},"mensagemErro":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"}}},"SolicitacaoDemoDTO":{"type":"object","properties":{"nome":{"type":"string","maxLength":200,"minLength":0},"email":{"type":"string","minLength":1},"empresa":{"type":"string","maxLength":200,"minLength":0},"telefone":{"type":"string","maxLength":20,"minLength":0}},"required":["email","empresa","nome"]},"EnviarTesteRequest":{"type":"object","properties":{"telefone":{"type":"string"},"mensagem":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"}}},"ControleWhatsAppDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"enviosGlobaisAtivos":{"type":"boolean"},"campanhasAtivas":{"type":"boolean"},"agendamentosAtivos":{"type":"boolean"},"retryAtivo":{"type":"boolean"},"threadsAtivas":{"type":"integer","format":"int32"},"tamanhoLote":{"type":"integer","format":"int32"},"intervaloLoteMs":{"type":"integer","format":"int32"},"rateLimitPorMinuto":{"type":"integer","format":"int32"},"atualizadoEm":{"type":"string","format":"date-time"},"atualizadoPorNome":{"type":"string"}}},"ConfigControleRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"threadsAtivas":{"type":"integer","format":"int32"},"tamanhoLote":{"type":"integer","format":"int32"},"intervaloLoteMs":{"type":"integer","format":"int32"},"rateLimitPorMinuto":{"type":"integer","format":"int32"}}},"CriarCampanhaRequest":{"type":"object","properties":{"nome":{"type":"string"},"descricao":{"type":"string"},"mensagemTemplate":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"criadoPor":{"type":"integer","format":"int64"},"excelData":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"colunaTelefone":{"type":"string"},"colunaNome":{"type":"string"}}},"WhatsAppCampanhaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"templateId":{"type":"string"},"mensagemTemplate":{"type":"string"},"tipoDestinatarios":{"type":"string"},"agendadaPara":{"type":"string","format":"date-time"},"tamanhoLote":{"type":"integer","format":"int32"},"intervaloLoteMs":{"type":"integer","format":"int64"},"status":{"type":"string"},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"totalDestinatarios":{"type":"integer","format":"int64"},"totalEnviadas":{"type":"integer","format":"int64"},"totalEntregues":{"type":"integer","format":"int64"},"totalLidas":{"type":"integer","format":"int64"},"totalFalhas":{"type":"integer","format":"int64"},"criadoPor":{"type":"integer","format":"int64"},"createdAt":{"type":"string","format":"date-time"},"progresso":{"type":"number","format":"double"}}},"WhatsAppCampanhaDestinatarioDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"campanhaId":{"type":"integer","format":"int64"},"telefone":{"type":"string"},"nome":{"type":"string"},"variaveis":{"type":"object","additionalProperties":{}},"status":{"type":"string"},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"errorMessage":{"type":"string"},"enviadoEm":{"type":"string","format":"date-time"}}},"GerarMensagemIACampanhaRequest":{"type":"object","properties":{"objetivo":{"type":"string"},"tom":{"type":"string"},"publicoAlvo":{"type":"string"}}},"ConsentimentoContatoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"telefone":{"type":"string"},"telefoneMascarado":{"type":"string"},"nome":{"type":"string"},"status":{"type":"string"},"statusDescricao":{"type":"string"},"dataOptIn":{"type":"string","format":"date-time"},"dataOptOut":{"type":"string","format":"date-time"},"canalOptIn":{"type":"string"},"canalOptOut":{"type":"string"},"motivoOptOut":{"type":"string"},"mensagemIdOptIn":{"type":"string"},"bloqueadoPermanente":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"AdicionarBlacklistRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"telefone":{"type":"string"},"nome":{"type":"string"},"motivo":{"type":"string"}}},"WhatsAppMensagemAgendadaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"telefone":{"type":"string"},"nomeDestinatario":{"type":"string"},"templateId":{"type":"string"},"variaveis":{"type":"object","additionalProperties":{}},"bodyPreview":{"type":"string"},"contexto":{"type":"string"},"contextoId":{"type":"integer","format":"int64"},"tipoAgendamento":{"type":"string"},"agendadoPara":{"type":"string","format":"date-time"},"recorrente":{"type":"boolean"},"cronExpression":{"type":"string"},"maxExecucoes":{"type":"integer","format":"int32"},"status":{"type":"string"},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"tipoAgendamentoDescricao":{"type":"string"},"criadoPor":{"type":"integer","format":"int64"},"tentativas":{"type":"integer","format":"int32"},"errorMessage":{"type":"string"},"proximaExecucao":{"type":"string","format":"date-time"},"totalExecucoes":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"}}},"GerarMensagemIAAgendamentoRequest":{"type":"object","properties":{"objetivo":{"type":"string"},"tom":{"type":"string"}}},"CriarSubRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"url":{"type":"string"},"secret":{"type":"string"},"eventos":{"type":"string"},"descricao":{"type":"string"}}},"CriarUsuarioRequest":{"type":"object","properties":{"nome":{"type":"string"},"email":{"type":"string"},"telefone":{"type":"string"},"tipo":{"type":"string","enum":["ADMINISTRADOR","CONTROLADOR","GESTOR","OPERADOR"]},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"UsuarioDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"email":{"type":"string"},"telefone":{"type":"string"},"fotoUrl":{"type":"string"},"enderecoLogradouro":{"type":"string"},"enderecoNumero":{"type":"string"},"enderecoComplemento":{"type":"string"},"enderecoBairro":{"type":"string"},"enderecoCidade":{"type":"string"},"enderecoEstado":{"type":"string"},"enderecoCep":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacoesControladasIds":{"type":"array","items":{"type":"integer","format":"int64"}},"tipo":{"type":"string","enum":["ADMINISTRADOR","CONTROLADOR","GESTOR","OPERADOR"]},"ativo":{"type":"boolean"},"emailVerificado":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"ultimoLoginEm":{"type":"string","format":"date-time"},"competencias":{"type":"array","items":{"type":"string"},"uniqueItems":true}}},"ResetarSenhaUsuarioRequest":{"type":"object","properties":{"senha":{"type":"string"}}},"SincronizarProcedimentosRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"procedimentos":{"type":"array","items":{"type":"string"}}}},"StatusWebhookRequest":{"type":"object","properties":{"messageSid":{"type":"string"},"status":{"type":"string"}}},"EnviarWebhookRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"telefone":{"type":"string"},"profileName":{"type":"string"},"mensagem":{"type":"string"}}},"SimuladorResultDTO":{"type":"object","properties":{"sucesso":{"type":"boolean"},"messageSid":{"type":"string"},"erro":{"type":"string"},"mensagemId":{"type":"integer","format":"int64"}}},"SalvarTemplateRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"tipo":{"type":"string"},"corpo":{"type":"string"},"ativo":{"type":"boolean"},"ordem":{"type":"integer","format":"int32"},"procedimentoIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"AgendamentoSaudeSchedulerExecucaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"job":{"type":"string","enum":["PROCESSAR_IMPORTS","ENVIAR_AVISOS","MARCAR_EXPIRADOS"]},"inicio":{"type":"string","format":"date-time"},"fim":{"type":"string","format":"date-time"},"totalProcessado":{"type":"integer","format":"int32"},"erro":{"type":"string"},"origem":{"type":"string","enum":["AUTOMATICO","MANUAL"]}}},"ProcedimentoSaudeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"codigo":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"ativo":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"MarcarSincronizadoRequest":{"type":"object","properties":{"entidade":{"type":"string"},"ids":{"type":"array","items":{"type":"integer","format":"int64"}}}},"ReagendarRequest":{"type":"object","properties":{"motivo":{"type":"string"}}},"EnviarRequest":{"type":"object","properties":{"templateId":{"type":"integer","format":"int64"},"mensagemEditada":{"type":"string"}}},"EditarAgendamentoRequest":{"type":"object","properties":{"pacienteTelefone":{"type":"string"},"motivo":{"type":"string"}}},"CancelarRequest":{"type":"object","properties":{"motivo":{"type":"string"}}},"EnvioLoteRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer","format":"int64"}},"aplicacaoId":{"type":"integer","format":"int64"}}},"EnvioLoteConfirmarRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer","format":"int64"}},"templateId":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"}}},"CancelarLoteRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer","format":"int64"}}}},"SalvarRespostaRapidaRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"titulo":{"type":"string"},"mensagem":{"type":"string"},"categoria":{"type":"string"},"operadorId":{"type":"integer","format":"int64"},"ordem":{"type":"integer","format":"int32"}}},"CriarPesquisaRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"canal":{"type":"string"},"tipo":{"type":"string"},"escala":{"type":"string"}}},"PesquisaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"canal":{"type":"string"},"tipo":{"type":"string"},"escala":{"type":"string"},"status":{"type":"string"},"versao":{"type":"integer","format":"int32"},"versaoOrigemId":{"type":"integer","format":"int64"},"ativa":{"type":"boolean"},"envioAutomatico":{"type":"boolean"},"permitirDuplicatas":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"publicadoEm":{"type":"string","format":"date-time"},"totalPerguntas":{"type":"integer","format":"int32"},"totalOpcoes":{"type":"integer","format":"int32"},"profundidadeMaxima":{"type":"integer","format":"int32"}}},"ConfigRegrasRequest":{"type":"object","properties":{"atrasoEnvioMinutos":{"type":"integer","format":"int32"},"horarioInicio":{"type":"string"},"horarioFim":{"type":"string"},"cooldownDias":{"type":"integer","format":"int32"},"limiteDiarioEnvios":{"type":"integer","format":"int32"},"timeoutInatividadeMin":{"type":"integer","format":"int32"},"maxRespostasInvalidas":{"type":"integer","format":"int32"},"encerrarAoSair":{"type":"boolean"},"enviarAposEncerramento":{"type":"boolean"}}},"ConfigMensagensRequest":{"type":"object","properties":{"msgAbertura":{"type":"string"},"msgEncerramento":{"type":"string"},"msgFallback":{"type":"string"},"msgTimeout":{"type":"string"},"msgDuplicada":{"type":"string"}}},"ConfigGeralRequest":{"type":"object","properties":{"nome":{"type":"string"},"descricao":{"type":"string"},"canal":{"type":"string"},"tipo":{"type":"string"},"escala":{"type":"string"},"envioAutomatico":{"type":"boolean"},"permitirDuplicatas":{"type":"boolean"}}},"CriarPerfilRequest":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"perfilBaseId":{"type":"integer","format":"int64"}}},"CustomLoggerRequest":{"type":"object","properties":{"loggerName":{"type":"string"},"level":{"type":"string"},"description":{"type":"string"}}},"LimparIntegridadeRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"tipo":{"type":"string"}}},"SalvarIntegracaoBancoRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"tipoBanco":{"type":"string","enum":["POSTGRESQL","MYSQL","ORACLE","SQLSERVER","MARIADB"]},"host":{"type":"string"},"porta":{"type":"integer","format":"int32"},"nomeBanco":{"type":"string"},"schemaBd":{"type":"string"},"usuarioBd":{"type":"string"},"senhaBd":{"type":"string"},"poolSize":{"type":"integer","format":"int32"},"timeoutSegundos":{"type":"integer","format":"int32"},"sqlQuery":{"type":"string"},"mapeamentoCampos":{"type":"string"},"intervaloMinutos":{"type":"integer","format":"int32"},"horarioInicio":{"type":"string"},"horarioFim":{"type":"string"},"diasSemana":{"type":"string"},"limiteRegistros":{"type":"integer","format":"int32"},"evitarDuplicatas":{"type":"boolean"},"campoChaveDuplicata":{"type":"string"},"campoTelefone":{"type":"string"},"campoNome":{"type":"string"},"campoDataReferencia":{"type":"string"},"campoIdentificadorExterno":{"type":"string"}}},"ReimportarAPartirDeRequest":{"type":"object","properties":{"chave":{"type":"string"}}},"SalvarIntegracaoApiRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"urlBase":{"type":"string"},"endpoint":{"type":"string"},"metodoHttp":{"type":"string"},"tipoAutenticacao":{"type":"string","enum":["NENHUMA","API_KEY","BEARER","BASIC","OAUTH2"]},"authHeaderNome":{"type":"string"},"authChave":{"type":"string"},"authUsuario":{"type":"string"},"authSenha":{"type":"string"},"authClientId":{"type":"string"},"authClientSecret":{"type":"string"},"authTokenUrl":{"type":"string"},"authScope":{"type":"string"},"timeoutMs":{"type":"integer","format":"int32"},"intervaloMinutos":{"type":"integer","format":"int32"},"headersAdicionais":{"type":"string"},"parametrosConsulta":{"type":"string"},"mapeamentoCampos":{"type":"string"},"campoDadosRaiz":{"type":"string"},"campoTelefone":{"type":"string"},"campoNome":{"type":"string"},"campoDataReferencia":{"type":"string"},"campoIdentificadorExterno":{"type":"string"}}},"CriarImpostoRequest":{"type":"object","properties":{"nome":{"type":"string"},"sigla":{"type":"string"},"aliquota":{"type":"number"},"repassadoCliente":{"type":"boolean"},"descricao":{"type":"string"}}},"ImpostoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"sigla":{"type":"string"},"aliquota":{"type":"number"},"repassadoCliente":{"type":"boolean"},"ativo":{"type":"boolean"},"descricao":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"MensagemAutoAtendimentoCriarRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"chave":{"type":"string"},"texto":{"type":"string"},"descricao":{"type":"string"}}},"MensagemAutoAtendimentoAtualizarRequest":{"type":"object","properties":{"texto":{"type":"string"},"descricao":{"type":"string"}}},"SalvarTarifaIARequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"provider":{"type":"string"},"valorPorMilTokens":{"type":"number"},"descricao":{"type":"string"}}},"SalvarCustoProviderRequest":{"type":"object","properties":{"provider":{"type":"string"},"modelo":{"type":"string"},"custoInput":{"type":"number"},"custoOutput":{"type":"number"},"descricao":{"type":"string"},"adminUsuario":{"type":"string"}}},"GerarAnaliseAdvisorRequest":{"type":"object","properties":{"periodoInicio":{"type":"string","format":"date"},"periodoFim":{"type":"string","format":"date"},"operadorId":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"}}},"SalvarCustoTwilioRequest":{"type":"object","properties":{"tipo":{"type":"string"},"valor":{"type":"number"},"descricao":{"type":"string"}}},"SalvarCustoMetaRequest":{"type":"object","properties":{"tipoConversa":{"type":"string"},"valor":{"type":"number"}}},"SalvarCustoAppRequest":{"type":"object","properties":{"tipo":{"type":"string"},"valor":{"type":"number"},"descricao":{"type":"string"}}},"ConfiguracaoTwilioDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"accountSid":{"type":"string","maxLength":34,"minLength":34,"pattern":"^AC[a-f0-9]{32}$"},"authToken":{"type":"string","maxLength":32,"minLength":32},"whatsappFrom":{"type":"string","minLength":1,"pattern":"^whatsapp:\\+\\d{10,15}$"},"ativo":{"type":"boolean"},"provider":{"type":"string","pattern":"^(twilio|link)$"},"webhookCallbackUrl":{"type":"string"},"ambiente":{"type":"string"},"contaNome":{"type":"string"},"ultimoTesteEm":{"type":"string","format":"date-time"},"ultimoTesteSucesso":{"type":"boolean"},"ultimoTesteMensagem":{"type":"string"},"ultimoTesteTelefone":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"atualizadoPorId":{"type":"integer","format":"int64"},"atualizadoPorNome":{"type":"string"},"accountSidMascarado":{"type":"string"},"providerDescricao":{"type":"string"},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"configuracaoValida":{"type":"boolean"},"ativoConfigurado":{"type":"boolean"}},"required":["accountSid","authToken","whatsappFrom"]},"SalvarTwilioRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"configuracao":{"$ref":"#/components/schemas/ConfiguracaoTwilioDTO"}}},"VerificarCredenciaisRequest":{"type":"object","properties":{"accountSid":{"type":"string"},"authToken":{"type":"string"}}},"ToggleAtivoRequest":{"type":"object","properties":{"ativo":{"type":"boolean"}}},"TestarEnvioTwilioRequest":{"type":"object","properties":{"telefone":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"}}},"RemoverConfigRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"}}},"AlterarProviderRequest":{"type":"object","properties":{"provider":{"type":"string"}}},"SalvarTranscricaoRequest":{"type":"object","properties":{"habilitada":{"type":"boolean"},"openaiApiKey":{"type":"string"},"modelo":{"type":"string"},"idioma":{"type":"string"}}},"SalvarIARequest":{"type":"object","properties":{"provider":{"type":"string"},"habilitado":{"type":"boolean"},"nomeAssistente":{"type":"string"},"openaiApiKey":{"type":"string"},"openaiModeloTranscricao":{"type":"string"},"openaiModeloChat":{"type":"string"},"openaiIdiomaTranscricao":{"type":"string"},"openaiTimeout":{"type":"integer","format":"int32"},"claudeApiKey":{"type":"string"},"claudeModelo":{"type":"string"},"claudeTimeout":{"type":"integer","format":"int32"},"claudeMaxTokens":{"type":"integer","format":"int32"},"claudeTemperature":{"type":"number","format":"double"},"groqApiKey":{"type":"string"},"groqModelo":{"type":"string"},"groqTimeout":{"type":"integer","format":"int32"},"ollamaUrl":{"type":"string"},"ollamaModelo":{"type":"string"},"ollamaTimeout":{"type":"integer","format":"int32"}}},"SalvarEmbeddingsRequest":{"type":"object","properties":{"habilitado":{"type":"boolean"},"provider":{"type":"string","enum":["OPENAI","OLLAMA"]},"openaiModeloEmbedding":{"type":"string"},"ollamaModeloEmbedding":{"type":"string"}}},"SalvarCarimboRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"habilitado":{"type":"boolean"},"tsaUrl":{"type":"string"},"timeoutMs":{"type":"integer","format":"int32"},"descricao":{"type":"string"}}},"ToggleIntegridadeRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"habilitada":{"type":"boolean"}}},"TestarCarimboRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"}}},"SalvarCustoCarimboRequest":{"type":"object","properties":{"tsaProvider":{"type":"string"},"custoPorCarimbo":{"type":"number"},"moeda":{"type":"string"},"descricao":{"type":"string"}}},"SalvarAtendimentoRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"tempoAlertaWarningMinutos":{"type":"integer","format":"int32"},"tempoAlertaDangerMinutos":{"type":"integer","format":"int32"}}},"CriarCompetenciaRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"}}},"CriarCategoriaExameRequest":{"type":"object","properties":{"nome":{"type":"string","maxLength":120,"minLength":0},"descricao":{"type":"string"},"icone":{"type":"string","maxLength":60,"minLength":0},"ordem":{"type":"integer","format":"int32"}},"required":["nome"]},"CriarExameRequest":{"type":"object","properties":{"categoriaId":{"type":"integer","format":"int64"},"nome":{"type":"string","maxLength":180,"minLength":0},"slug":{"type":"string","maxLength":200,"minLength":0,"pattern":"^[a-z0-9-]+$"},"descricao":{"type":"string","maxLength":5000,"minLength":0},"duracaoMediaMinutos":{"type":"integer","format":"int32"},"tempoResultadoDescricao":{"type":"string","maxLength":255,"minLength":0},"riscoDescricao":{"type":"string"},"observacaoGeral":{"type":"string"},"dataProximaRevisao":{"type":"string","format":"date"},"preparos":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"durante":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"apos":{"type":"array","items":{"$ref":"#/components/schemas/InstrucaoRequest"}},"contraindicacoes":{"type":"array","items":{"$ref":"#/components/schemas/ContraindicacaoRequest"}},"orientacoesPerfil":{"type":"array","items":{"$ref":"#/components/schemas/OrientacaoPerfilRequest"}},"fontes":{"type":"array","items":{"$ref":"#/components/schemas/FonteRequest"}},"palavrasChave":{"type":"array","items":{"type":"string","maxLength":120,"minLength":0}}},"required":["categoriaId","nome","slug"]},"ResultadoTesteConexaoDTO":{"type":"object","properties":{"provider":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]},"url":{"type":"string"},"sucesso":{"type":"boolean"},"statusHttp":{"type":"integer","format":"int32"},"tamanhoBytes":{"type":"integer","format":"int32"},"duracaoMs":{"type":"integer","format":"int64"},"erroMensagem":{"type":"string"},"tituloAmostra":{"type":"string"}}},"ImportacaoExameBufferDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"provider":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]},"idExterno":{"type":"string"},"urlOrigem":{"type":"string"},"contentType":{"type":"string"},"idiomaOriginal":{"type":"string"},"tituloOriginal":{"type":"string"},"hashConteudoOriginalCurto":{"type":"string"},"status":{"type":"string","enum":["NOVO","MODIFICADO","PROCESSADO","ERRO_PARSE","IGNORADO"]},"exameId":{"type":"integer","format":"int64"},"exameSlug":{"type":"string"},"erroMensagem":{"type":"string"},"baixadoEm":{"type":"string","format":"date-time"},"processadoEm":{"type":"string","format":"date-time"}}},"CriarBaseConhecimentoRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"pergunta":{"type":"string"},"resposta":{"type":"string"},"palavrasChave":{"type":"string"},"categoriaId":{"type":"integer","format":"int64"}}},"VerificarEmailRequest":{"type":"object","properties":{"codigo":{"type":"string"}}},"ResetarSenhaRequest":{"type":"object","properties":{"token":{"type":"string"},"novaSenha":{"type":"string"}}},"UsuarioRegistroDTO":{"type":"object","properties":{"nome":{"type":"string","maxLength":200,"minLength":0},"email":{"type":"string","minLength":1},"telefone":{"type":"string","maxLength":20,"minLength":0},"senha":{"type":"string","maxLength":100,"minLength":6},"confirmacaoSenha":{"type":"string","minLength":1}},"required":["confirmacaoSenha","email","nome","senha"]},"RecuperarSenhaRequest":{"type":"object","properties":{"email":{"type":"string"}}},"LoginRequest":{"type":"object","properties":{"email":{"type":"string"},"senha":{"type":"string"},"rememberMe":{"type":"boolean"}}},"TransferirRequest":{"type":"object","properties":{"novoOperadorId":{"type":"integer","format":"int64"},"motivo":{"type":"string"}}},"SugestaoFeedbackRequest":{"type":"object","properties":{"estilo":{"type":"string"},"textoSugerido":{"type":"string"},"textoEnviado":{"type":"string"}}},"EnviarMensagemAtendimentoRequest":{"type":"object","properties":{"mensagem":{"type":"string"}}},"AlterarStatusRequest":{"type":"object","properties":{"status":{"type":"string"}}},"CriarAplicacaoRequest":{"type":"object","properties":{"nome":{"type":"string"},"descricao":{"type":"string"},"slug":{"type":"string"},"webhookUrl":{"type":"string"},"cidade":{"type":"string"},"estado":{"type":"string"},"horarioFuncionamento":{"type":"string"},"enderecoUnidade":{"type":"string"},"telefoneUnidade":{"type":"string"}}},"AplicacaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"slug":{"type":"string"},"apiKey":{"type":"string"},"apiKeyMascarada":{"type":"string"},"webhookUrl":{"type":"string"},"ativo":{"type":"boolean"},"rateLimitPerMinute":{"type":"integer","format":"int32"},"saldo":{"type":"number"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"ultimoAcessoEm":{"type":"string","format":"date-time"},"transcricaoAudioHabilitada":{"type":"boolean"},"autoRespostaIaHabilitada":{"type":"boolean"},"autoRespostaLimiarConfianca":{"type":"number","format":"double"},"autoRespostaMaxTentativas":{"type":"integer","format":"int32"},"autoRespostaPromptSistema":{"type":"string"},"autoRespostaToolUseHabilitada":{"type":"boolean"},"cidade":{"type":"string"},"estado":{"type":"string"},"horarioFuncionamento":{"type":"string"},"enderecoUnidade":{"type":"string"},"telefoneUnidade":{"type":"string"},"integridadeHabilitada":{"type":"boolean"},"iaLimiteTokensMensal":{"type":"integer","format":"int64"},"iaAlertaTokensPercentual":{"type":"integer","format":"int32"}}},"ConfigAgendamentosRequest":{"type":"object","properties":{"horasAviso":{"type":"integer","format":"int32"},"horasCancelamento":{"type":"integer","format":"int32"},"maxTentativas":{"type":"integer","format":"int32"},"cronProcessarImports":{"type":"string"},"cronEnviarAvisos":{"type":"string"},"cronMarcarExpirados":{"type":"string"}}},"TarifaRequest":{"type":"object","properties":{"tipo":{"type":"string"},"valor":{"type":"number"},"descricao":{"type":"string"}}},"TarifaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"categoria":{"type":"string","enum":["MENSAGEM","IA","SERVICO","CONVERSA","APP"]},"categoriaDescricao":{"type":"string"},"subtipo":{"type":"string"},"subtipoDescricao":{"type":"string"},"valor":{"type":"number"},"unidade":{"type":"string","enum":["POR_UNIDADE","POR_MIL_TOKENS","POR_MINUTO","POR_EXECUCAO"]},"unidadeDescricao":{"type":"string"},"moeda":{"type":"string"},"descricao":{"type":"string"},"ativo":{"type":"boolean"},"origem":{"type":"string"},"automatica":{"type":"boolean"},"custoBase":{"type":"number"},"margemPercentual":{"type":"number"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"TarifaIARequest":{"type":"object","properties":{"subtipo":{"type":"string"},"valor":{"type":"number"},"descricao":{"type":"string"}}},"TarifaConversaRequest":{"type":"object","properties":{"tipoConversa":{"type":"string"},"valor":{"type":"number"},"descricao":{"type":"string"}}},"EstornoRequest":{"type":"object","properties":{"motivo":{"type":"string"}}},"CreditoAplicacaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"tipo":{"type":"string"},"tipoDescricao":{"type":"string"},"valor":{"type":"number"},"saldoAnterior":{"type":"number"},"saldoPosterior":{"type":"number"},"descricao":{"type":"string"},"referenciaTipo":{"type":"string"},"referenciaId":{"type":"integer","format":"int64"},"custoTwilioUsd":{"type":"number"},"cotacaoUsdBrl":{"type":"number"},"custoTwilioBrl":{"type":"number"},"custoMetaUsd":{"type":"number"},"custoMetaBrl":{"type":"number"},"tipoConversa":{"type":"string"},"tarifaCobrada":{"type":"number"},"adminUsuario":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"}}},"CreditoRequest":{"type":"object","properties":{"valor":{"type":"number"},"descricao":{"type":"string"}}},"AtualizarStatusRequest":{"type":"object","properties":{"status":{"type":"string"},"observacao":{"type":"string"}}},"AtualizarUsuarioRequest":{"type":"object","properties":{"nome":{"type":"string"},"telefone":{"type":"string"},"tipo":{"type":"string","enum":["ADMINISTRADOR","CONTROLADOR","GESTOR","OPERADOR"]},"ativo":{"type":"boolean"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoIds":{"type":"array","items":{"type":"integer","format":"int64"}}}},"AtualizarAplicacaoRequest":{"type":"object","properties":{"nome":{"type":"string"},"descricao":{"type":"string"},"slug":{"type":"string"},"webhookUrl":{"type":"string"},"ativo":{"type":"boolean"},"rateLimitPerMinute":{"type":"integer","format":"int32"},"transcricaoAudioHabilitada":{"type":"boolean"},"autoRespostaIaHabilitada":{"type":"boolean"},"autoRespostaLimiarConfianca":{"type":"number","format":"double"},"autoRespostaMaxTentativas":{"type":"integer","format":"int32"},"autoRespostaPromptSistema":{"type":"string"},"autoRespostaToolUseHabilitada":{"type":"boolean"},"integridadeHabilitada":{"type":"boolean"},"iaLimiteTokensMensal":{"type":"integer","format":"int64"},"iaAlertaTokensPercentual":{"type":"integer","format":"int32"},"cidade":{"type":"string"},"estado":{"type":"string"},"horarioFuncionamento":{"type":"string"},"enderecoUnidade":{"type":"string"},"telefoneUnidade":{"type":"string"}}},"ContaImapN8nDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"usuario":{"type":"string"},"senha":{"type":"string"},"host":{"type":"string"},"porta":{"type":"integer","format":"int32"},"sslTls":{"type":"boolean"},"permitirSelfSigned":{"type":"boolean"}}},"PesquisaMobileDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"perguntas":{"type":"array","items":{"$ref":"#/components/schemas/PerguntaMobileDTO"}}}},"Pageable":{"type":"object","properties":{"page":{"type":"integer","format":"int32","minimum":0},"size":{"type":"integer","format":"int32","minimum":1},"sort":{"type":"array","items":{"type":"string"}}}},"NotificacaoMobileDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"titulo":{"type":"string"},"mensagem":{"type":"string"},"tipo":{"type":"string","enum":["AGENDAMENTO","MENSAGEM","PESQUISA","GERAL"]},"lida":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"},"dadosExtras":{"type":"string"}}},"PageMetadata":{"type":"object","properties":{"size":{"type":"integer","format":"int64"},"number":{"type":"integer","format":"int64"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int64"}}},"PagedModelNotificacaoMobileDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/NotificacaoMobileDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelMensagemMobileDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/MensagemMobileDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"ConversaResumoPacienteDTO":{"type":"object","properties":{"nomeContato":{"type":"string"},"ultimaMensagem":{"type":"string"},"ultimaMensagemEm":{"type":"string","format":"date-time"},"tipoUltimaMensagem":{"type":"string"},"naoLidas":{"type":"integer","format":"int32"},"temMidia":{"type":"boolean"}}},"AgendamentoMobileDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"procedimento":{"type":"string"},"procedimentoCodigo":{"type":"string"},"prestador":{"type":"string"},"prestadorEndereco":{"type":"string"},"prestadorTelefone":{"type":"string"},"numeroPedido":{"type":"string"},"medicoSolicitante":{"type":"string"},"observacoes":{"type":"string"},"status":{"type":"string"},"statusEnum":{"type":"string"},"dataEnvio":{"type":"string","format":"date-time"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"mensagemTexto":{"type":"string"}}},"PagedModelAgendamentoMobileDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoMobileDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"SessaoConversaIADTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"telefone":{"type":"string"},"status":{"type":"string","enum":["ATIVO","NA_FILA","EM_ATENDIMENTO","FINALIZADO","ESCALADO"]},"tentativasBot":{"type":"integer","format":"int32"},"tokensUsados":{"type":"integer","format":"int64"},"criadoEm":{"type":"string","format":"date-time"},"ultimaMensagemEm":{"type":"string","format":"date-time"},"finalizadoEm":{"type":"string","format":"date-time"},"operadorId":{"type":"integer","format":"int64"},"operadorNome":{"type":"string"},"prioridade":{"type":"integer","format":"int32"},"dataInicioAtendimento":{"type":"string","format":"date-time"},"avaliacaoNota":{"type":"integer","format":"int32"},"avaliacaoComentario":{"type":"string"},"avaliacaoEstado":{"type":"string"},"avaliacaoEnviadoEm":{"type":"string","format":"date-time"},"avaliacaoRecebidoEm":{"type":"string","format":"date-time"},"dataPrimeiraRespostaIA":{"type":"string","format":"date-time"},"dataEscalacaoFila":{"type":"string","format":"date-time"},"dataPrimeiraRespostaOperador":{"type":"string","format":"date-time"},"intentAtual":{"type":"string"},"estadoConversa":{"type":"string"},"sentimento":{"type":"string"},"urgencia":{"type":"string"},"resumoConversa":{"type":"string"},"nomeContato":{"type":"string"},"ultimaMensagemPreview":{"type":"string"},"ultimaMensagemDataHora":{"type":"string","format":"date-time"},"tempoDesdeInicioMinutos":{"type":"integer","format":"int64"},"resolvidoPorIA":{"type":"boolean"},"tempoAtendimentoFormatado":{"type":"string"},"tempoFilaEsperaFormatado":{"type":"string"},"tempoRespostaOperadorMinutos":{"type":"integer","format":"int64"},"tempoAtendimentoOperadorMinutos":{"type":"integer","format":"int64"},"tempoDesdeInicioFormatado":{"type":"string"},"tempoAtendimentoIAFormatado":{"type":"string"},"tempoRespostaIAFormatado":{"type":"string"},"tempoAtendimentoIAMinutos":{"type":"integer","format":"int64"},"tempoRespostaOperadorFormatado":{"type":"string"},"tempoAtendimentoOperadorFormatado":{"type":"string"},"tempoRespostaIAMinutos":{"type":"integer","format":"int64"},"tempoEsperaMinutos":{"type":"integer","format":"int64"},"tempoEsperaFormatado":{"type":"string"},"tempoNaFilaMinutos":{"type":"integer","format":"int64"},"duracaoTotalFormatada":{"type":"string"},"tempoNaFilaFormatado":{"type":"string"},"duracaoTotalMinutos":{"type":"integer","format":"int64"},"tempoFilaEsperaMinutos":{"type":"integer","format":"int64"},"tempoAtendimentoMinutos":{"type":"integer","format":"int64"}}},"AgendamentoSaudeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"pacienteCpf":{"type":"string"},"procedimento":{"type":"string"},"prestador":{"type":"string"},"numeroPedido":{"type":"string"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"observacoes":{"type":"string"},"medicoSolicitante":{"type":"string"},"status":{"type":"string"},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"telefoneValido":{"type":"boolean"},"lgpdBloqueado":{"type":"boolean"},"motivoErro":{"type":"string"},"tentativasEnvio":{"type":"integer","format":"int32"},"maxTentativas":{"type":"integer","format":"int32"},"dataEnvio":{"type":"string","format":"date-time"},"dataAviso":{"type":"string","format":"date-time"},"dataConfirmacao":{"type":"string","format":"date-time"},"dataCancelamento":{"type":"string","format":"date-time"},"prazoResposta":{"type":"string","format":"date-time"},"prazoFinal":{"type":"string","format":"date-time"},"importadoEm":{"type":"string","format":"date-time"},"operadorNome":{"type":"string"},"canalEnvio":{"type":"string"},"canalEnvioDescricao":{"type":"string"}}},"PagedModelWhatsAppMensagemEnviadaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppMensagemEnviadaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"WhatsAppMensagemEnviadaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"messageSid":{"type":"string"},"toNumber":{"type":"string"},"fromNumber":{"type":"string"},"tipoMensagem":{"type":"string","enum":["TEMPLATE","FREE_TEXT"]},"templateNome":{"type":"string"},"templateVariaveis":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"string"},"contexto":{"type":"string","enum":["AUTORIZACAO","RESERVA","PAGAMENTO","CONTRATO","SUPORTE","VERIFICACAO","LEMBRETE","CAMPANHA","TESTE","AVALIACAO","AGENDAMENTO_SAUDE","AVISO_AGENDAMENTO","OUTRO"]},"contextoId":{"type":"integer","format":"int64"},"contextoFormatado":{"type":"string"},"usuarioId":{"type":"integer","format":"int64"},"usuarioNome":{"type":"string"},"status":{"type":"string","enum":["QUEUED","SENT","DELIVERED","READ","FAILED","UNDELIVERED"]},"statusDescricao":{"type":"string"},"statusBadgeClass":{"type":"string"},"errorCode":{"type":"string"},"errorMessage":{"type":"string"},"dataEnvio":{"type":"string","format":"date-time"},"dataEntrega":{"type":"string","format":"date-time"},"dataLeitura":{"type":"string","format":"date-time"},"preco":{"type":"number"},"moeda":{"type":"string"},"enviadoPorId":{"type":"integer","format":"int64"},"enviadoPorNome":{"type":"string"},"bodyPreview":{"type":"string"}}},"PagedModelRegistroImportadoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/RegistroImportadoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"RegistroImportadoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"tipoIntegracao":{"type":"string","enum":["BANCO_DADOS","API_EXTERNA"]},"integracaoId":{"type":"integer","format":"int64"},"chaveExterna":{"type":"string"},"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"pacienteCpf":{"type":"string"},"procedimento":{"type":"string"},"procedimentoCodigo":{"type":"string"},"prestador":{"type":"string"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"numeroPedido":{"type":"string"},"medicoSolicitante":{"type":"string"},"status":{"type":"string","enum":["PENDENTE","MENSAGEM_ENVIADA","IGNORADO","ERRO"]},"dadosExtras":{"type":"string"},"importadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"IntegracaoBancoDadosDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"ativa":{"type":"boolean"},"tipoBanco":{"type":"string","enum":["POSTGRESQL","MYSQL","ORACLE","SQLSERVER","MARIADB"]},"host":{"type":"string"},"porta":{"type":"integer","format":"int32"},"nomeBanco":{"type":"string"},"schemaBd":{"type":"string"},"usuarioBd":{"type":"string"},"senhaBd":{"type":"string"},"poolSize":{"type":"integer","format":"int32"},"timeoutSegundos":{"type":"integer","format":"int32"},"sqlQuery":{"type":"string"},"mapeamentoCampos":{"type":"string"},"intervaloMinutos":{"type":"integer","format":"int32"},"horarioInicio":{"type":"string"},"horarioFim":{"type":"string"},"diasSemana":{"type":"string"},"limiteRegistros":{"type":"integer","format":"int32"},"evitarDuplicatas":{"type":"boolean"},"campoChaveDuplicata":{"type":"string"},"campoTelefone":{"type":"string"},"campoNome":{"type":"string"},"campoDataReferencia":{"type":"string"},"campoIdentificadorExterno":{"type":"string"},"ultimaExecucao":{"type":"string","format":"date-time"},"proximaExecucao":{"type":"string","format":"date-time"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"}}},"IntegracaoApiExternaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"ativa":{"type":"boolean"},"urlBase":{"type":"string"},"endpoint":{"type":"string"},"metodoHttp":{"type":"string"},"tipoAutenticacao":{"type":"string","enum":["NENHUMA","API_KEY","BEARER","BASIC","OAUTH2"]},"authHeaderNome":{"type":"string"},"authChave":{"type":"string"},"authUsuario":{"type":"string"},"authSenha":{"type":"string"},"authClientId":{"type":"string"},"authClientSecret":{"type":"string"},"authTokenUrl":{"type":"string"},"authScope":{"type":"string"},"timeoutMs":{"type":"integer","format":"int32"},"intervaloMinutos":{"type":"integer","format":"int32"},"headersAdicionais":{"type":"string"},"parametrosConsulta":{"type":"string"},"mapeamentoCampos":{"type":"string"},"campoDadosRaiz":{"type":"string"},"campoTelefone":{"type":"string"},"campoNome":{"type":"string"},"campoDataReferencia":{"type":"string"},"campoIdentificadorExterno":{"type":"string"},"ultimaSincronizacao":{"type":"string","format":"date-time"},"proximaSincronizacao":{"type":"string","format":"date-time"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"tipoAutenticacaoDescricao":{"type":"string"}}},"PagedModelCreditoAplicacaoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/CreditoAplicacaoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelWhatsAppMensagemRecebidaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppMensagemRecebidaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"WhatsAppMensagemRecebidaDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"messageSid":{"type":"string"},"fromNumber":{"type":"string"},"fromNumberLimpo":{"type":"string"},"toNumber":{"type":"string"},"profileName":{"type":"string"},"body":{"type":"string"},"bodyPreview":{"type":"string"},"numMedia":{"type":"integer","format":"int32"},"mediaUrls":{"type":"array","items":{"type":"string"}},"mediaContentTypes":{"type":"array","items":{"type":"string"}},"mediaLocalPaths":{"type":"array","items":{"type":"string"}},"mediaDownloadStatus":{"type":"string"},"transcricaoAudio":{"type":"string"},"transcricaoStatus":{"type":"string"},"transcricaoStatusDescricao":{"type":"string"},"transcricaoStatusBadgeClass":{"type":"string"},"transcricaoErro":{"type":"string"},"transcricaoData":{"type":"string","format":"date-time"},"temAudio":{"type":"boolean"},"temTranscricao":{"type":"boolean"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"usuarioId":{"type":"integer","format":"int64"},"usuarioNome":{"type":"string"},"contexto":{"type":"string","enum":["AUTORIZACAO","RESERVA","PAGAMENTO","CONTRATO","SUPORTE","VERIFICACAO","LEMBRETE","CAMPANHA","TESTE","AVALIACAO","AGENDAMENTO_SAUDE","AVISO_AGENDAMENTO","OUTRO"]},"contextoId":{"type":"integer","format":"int64"},"processada":{"type":"boolean"},"respostaEnviada":{"type":"boolean"},"dataProcessamento":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"origem":{"type":"string"}}},"WhatsAppEstatisticasDTO":{"type":"object","properties":{"totalEnviadas":{"type":"integer","format":"int64"},"totalEntregues":{"type":"integer","format":"int64"},"totalLidas":{"type":"integer","format":"int64"},"totalFalhas":{"type":"integer","format":"int64"},"taxaEntrega":{"type":"number","format":"double"},"taxaLeitura":{"type":"number","format":"double"},"taxaFalha":{"type":"number","format":"double"},"totalRecebidas":{"type":"integer","format":"int64"},"totalNaoProcessadas":{"type":"integer","format":"int64"},"custoTotal":{"type":"number"},"moeda":{"type":"string"}}},"ComplianceDashboardDTO":{"type":"object","properties":{"resumo":{"$ref":"#/components/schemas/ComplianceLgpdDTO"},"recentes":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoContatoDTO"}}}},"ComplianceLgpdDTO":{"type":"object","properties":{"totalContatos":{"type":"integer","format":"int64"},"comConsentimento":{"type":"integer","format":"int64"},"semConsentimento":{"type":"integer","format":"int64"},"pendentes":{"type":"integer","format":"int64"},"percentualOptIn":{"type":"number","format":"double"},"percentualOptOut":{"type":"number","format":"double"},"percentualPendente":{"type":"number","format":"double"},"optOutsPorSemana":{"type":"array","items":{"type":"integer","format":"int64"}},"optOutsNoMes":{"type":"integer","format":"int64"},"reOptInsNoMes":{"type":"integer","format":"int64"}}},"PagedModelWhatsAppCampanhaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppCampanhaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelWhatsAppMensagemAgendadaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppMensagemAgendadaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelWebhookSubscriptionDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebhookSubscriptionDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelWebhookDeliveryLogDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDeliveryLogDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"WebhookDeliveryLogDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"subscriptionId":{"type":"integer","format":"int64"},"subscriptionNome":{"type":"string"},"evento":{"type":"string"},"tentativa":{"type":"integer","format":"int32"},"maxTentativas":{"type":"integer","format":"int32"},"status":{"type":"string"},"httpStatus":{"type":"integer","format":"int32"},"erro":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"enviadoEm":{"type":"string","format":"date-time"},"proximaTentativaEm":{"type":"string","format":"date-time"},"duracaoMs":{"type":"integer","format":"int32"}}},"PagedModelUsuarioDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/UsuarioDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"MensagemChatDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tipo":{"type":"string"},"conteudo":{"type":"string"},"dataHora":{"type":"string","format":"date-time"},"contexto":{"type":"string"},"nomeContato":{"type":"string"},"temMidia":{"type":"boolean"},"mediaContentTypes":{"type":"array","items":{"type":"string"}},"mediaLocalPaths":{"type":"array","items":{"type":"string"}},"transcricaoAudio":{"type":"string"},"transcricaoStatus":{"type":"string"},"mediaEnviadaNome":{"type":"string"},"mediaEnviadaContentType":{"type":"string"},"mediaEnviadaUrl":{"type":"string"},"mediaEnviadaPdf":{"type":"boolean"},"mediaEnviada":{"type":"boolean"},"mediaEnviadaImagem":{"type":"boolean"},"mediaEnviadaAudio":{"type":"boolean"}}},"PersonaSimuladorDTO":{"type":"object","properties":{"nome":{"type":"string"},"telefone":{"type":"string"},"cpf":{"type":"string"},"descricao":{"type":"string"}}},"SchedulerJobStatusDTO":{"type":"object","properties":{"job":{"type":"string","enum":["PROCESSAR_IMPORTS","ENVIAR_AVISOS","MARCAR_EXPIRADOS"]},"nome":{"type":"string"},"descricao":{"type":"string"},"cron":{"type":"string"},"ultimaExecucao":{"type":"string","format":"date-time"},"ultimaExecucaoFim":{"type":"string","format":"date-time"},"ultimoTotal":{"type":"integer","format":"int32"},"erroUltima":{"type":"string"},"proximaExecucao":{"type":"string","format":"date-time"}}},"ConsentimentoDispositivoDashboardDTO":{"type":"object","properties":{"resumo":{"type":"object","additionalProperties":{}},"recentes":{"type":"array","items":{"$ref":"#/components/schemas/ConsentimentoDispositivoDTO"}}}},"PagedModelProcedimentoSaudeDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ProcedimentoSaudeDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelPrestadorSaudeDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PrestadorSaudeDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PrestadorSaudeHistoricoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"prestadorSaudeId":{"type":"integer","format":"int64"},"prestadorNome":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"campo":{"type":"string"},"valorAnterior":{"type":"string"},"valorNovo":{"type":"string"},"origem":{"type":"string"},"origemDescricao":{"type":"string"},"origemBadgeClass":{"type":"string"},"operadorId":{"type":"integer","format":"int64"},"operadorNome":{"type":"string"},"motivo":{"type":"string"},"pendenteAcessor":{"type":"boolean"},"sincronizadoEm":{"type":"string","format":"date-time"},"sincronizadoPorNome":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"PagedModelPacienteSaudeDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PacienteSaudeDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PacienteSaudeHistoricoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"pacienteSaudeId":{"type":"integer","format":"int64"},"pacienteNome":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"campo":{"type":"string"},"valorAnterior":{"type":"string"},"valorNovo":{"type":"string"},"origem":{"type":"string"},"origemDescricao":{"type":"string"},"origemBadgeClass":{"type":"string"},"operadorId":{"type":"integer","format":"int64"},"operadorNome":{"type":"string"},"motivo":{"type":"string"},"pendenteAcessor":{"type":"boolean"},"sincronizadoEm":{"type":"string","format":"date-time"},"sincronizadoPorNome":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"AlteracaoPendenteDTO":{"type":"object","properties":{"historicoId":{"type":"integer","format":"int64"},"entidade":{"type":"string"},"entidadeId":{"type":"integer","format":"int64"},"entidadeNome":{"type":"string"},"entidadeDocumento":{"type":"string"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"campo":{"type":"string"},"valorAnterior":{"type":"string"},"valorNovo":{"type":"string"},"origem":{"type":"string"},"origemDescricao":{"type":"string"},"origemBadgeClass":{"type":"string"},"operadorId":{"type":"integer","format":"int64"},"operadorNome":{"type":"string"},"motivo":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"PagedModelAlteracaoPendenteDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AlteracaoPendenteDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"AgendamentoSaudeRevisaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"pacienteNome":{"type":"string"},"pacienteTelefone":{"type":"string"},"procedimento":{"type":"string"},"numeroPedido":{"type":"string"},"prestador":{"type":"string"},"endereco":{"type":"string"},"dataLimiteRetirada":{"type":"string"},"localRetirada":{"type":"string"},"observacoes":{"type":"string"},"medicoSolicitante":{"type":"string"},"previewMensagem":{"type":"string"},"telefoneValido":{"type":"boolean"},"templatesDisponiveis":{"type":"array","items":{"$ref":"#/components/schemas/TemplateOpcaoDTO"}},"templateIdSelecionado":{"type":"integer","format":"int64"},"templateAusente":{"type":"boolean"}}},"TemplateOpcaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nome":{"type":"string"},"tipo":{"type":"string"}}},"MonitoramentoAgendamentoSaudeDTO":{"type":"object","properties":{"aguardandoResposta":{"type":"integer","format":"int64"},"avisoEnviado":{"type":"integer","format":"int64"},"confirmadosHoje":{"type":"integer","format":"int64"},"prazoVencido":{"type":"integer","format":"int64"},"totalImportados":{"type":"integer","format":"int64"},"totalEnviados":{"type":"integer","format":"int64"},"totalConfirmados":{"type":"integer","format":"int64"},"totalCancelados":{"type":"integer","format":"int64"},"totalNaoRespondeu":{"type":"integer","format":"int64"},"pctConfirma24h":{"type":"integer","format":"int32"},"pctConfirmaAposAviso":{"type":"integer","format":"int32"},"pctCancelado":{"type":"integer","format":"int32"},"listaAguardando":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}},"listaAvisoEnviado":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}},"listaPrazoVencido":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}}}},"PagedModelAgendamentoSaudeDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AgendamentoSaudeDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelPesquisaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PesquisaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"OpcaoSimDTO":{"type":"object","properties":{"valor":{"type":"string"},"texto":{"type":"string"},"nota":{"type":"integer","format":"int32"}}},"PerguntaSimDTO":{"type":"object","properties":{"id":{"type":"string"},"texto":{"type":"string"},"tipo":{"type":"string"},"nivel":{"type":"integer","format":"int32"},"opcoes":{"type":"array","items":{"$ref":"#/components/schemas/OpcaoSimDTO"}},"ramificacoes":{"type":"object","additionalProperties":{"type":"string"}}}},"PesquisaSimulacaoDTO":{"type":"object","properties":{"pesquisaId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"escala":{"type":"string"},"mensagemAbertura":{"type":"string"},"mensagemEncerramento":{"type":"string"},"arvore":{"$ref":"#/components/schemas/PerguntaSimDTO"},"perguntas":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PerguntaSimDTO"}}}},"OpcaoNodeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"texto":{"type":"string"},"valor":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"perguntaDestinoId":{"type":"integer","format":"int64"},"perguntaDestinoTexto":{"type":"string"}}},"PerguntaNodeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"texto":{"type":"string"},"tipo":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"nivel":{"type":"integer","format":"int32"},"condicaoNotaMin":{"type":"integer","format":"int32"},"condicaoNotaMax":{"type":"integer","format":"int32"},"perguntaPaiId":{"type":"integer","format":"int64"},"condicaoRespostaPai":{"type":"string"},"obrigatoria":{"type":"boolean"},"mensagemFallback":{"type":"string"},"tempoMaximoMinutos":{"type":"integer","format":"int32"},"opcoes":{"type":"array","items":{"$ref":"#/components/schemas/OpcaoNodeDTO"}}}},"PerguntaResumoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"texto":{"type":"string"},"tipo":{"type":"string"},"tag":{"type":"string"}}},"PesquisaBuilderDTO":{"type":"object","properties":{"pesquisaId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"descricao":{"type":"string"},"status":{"type":"string"},"canal":{"type":"string"},"tipo":{"type":"string"},"escala":{"type":"string"},"versao":{"type":"integer","format":"int32"},"atualizadoEm":{"type":"string","format":"date-time"},"perguntas":{"type":"array","items":{"$ref":"#/components/schemas/PerguntaNodeDTO"}},"totalPerguntas":{"type":"integer","format":"int32"},"totalOpcoes":{"type":"integer","format":"int32"},"profundidadeMaxima":{"type":"integer","format":"int32"},"mapeamentoNota":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/PerguntaResumoDTO"}}}}},"AcaoFuncionalidadeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"funcionalidadeId":{"type":"integer","format":"int64"},"codigo":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"ordem":{"type":"integer","format":"int32"}}},"FuncionalidadeDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"codigo":{"type":"string"},"nome":{"type":"string"},"categoria":{"type":"string"},"descricao":{"type":"string"},"urlPath":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"ativo":{"type":"boolean"},"acoes":{"type":"array","items":{"$ref":"#/components/schemas/AcaoFuncionalidadeDTO"}}}},"MatrizPermissoesDTO":{"type":"object","properties":{"perfis":{"type":"array","items":{"$ref":"#/components/schemas/TipoUsuarioCustomDTO"}},"funcionalidadesPorCategoria":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/FuncionalidadeDTO"}}},"permissoes":{"type":"object","additionalProperties":{"type":"boolean"}}}},"PerfilPacienteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"codigo":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"ativo":{"type":"boolean"}}},"N8nTesteExtracaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"unidade":{"type":"string"},"convenio":{"type":"string"},"observacoes":{"type":"string"},"confianca":{"type":"number"},"eh_agendamento":{"type":"boolean"},"paciente_nome":{"type":"string"},"procedimento_nome":{"type":"string"},"data_agendada":{"type":"string"},"hora_agendada":{"type":"string"},"payload_json":{"type":"string"},"recebido_em":{"type":"string","format":"date-time"}}},"PagedModelN8nTesteExtracaoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/N8nTesteExtracaoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"HealthComponentDTO":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"statusColor":{"type":"string"},"statusIcon":{"type":"string"}}},"MonitoramentoDTO":{"type":"object","properties":{"healthComponents":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HealthComponentDTO"}},"healthStatus":{"type":"string"},"mensagensEnviadas":{"type":"integer","format":"int64"},"mensagensComSucesso":{"type":"integer","format":"int64"},"mensagensComErro":{"type":"integer","format":"int64"},"mensagensRecebidas":{"type":"integer","format":"int64"},"latenciaMediaMs":{"type":"number","format":"double"},"latenciaP95Ms":{"type":"number","format":"double"},"latenciaMaxMs":{"type":"number","format":"double"},"webhookStatusDistribution":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}},"rateLimitBloqueios":{"type":"integer","format":"int64"},"saldoInsuficiente":{"type":"integer","format":"int64"},"uptime":{"type":"string"},"memoryUsedMb":{"type":"integer","format":"int64"},"memoryMaxMb":{"type":"integer","format":"int64"},"memoryPercent":{"type":"integer","format":"int32"},"threadsActive":{"type":"integer","format":"int32"},"threadsPeak":{"type":"integer","format":"int32"},"httpRequestsTotal":{"type":"integer","format":"int64"},"httpErrors4xx":{"type":"integer","format":"int64"},"httpErrors5xx":{"type":"integer","format":"int64"},"hikariActiveConnections":{"type":"integer","format":"int32"},"hikariMaxConnections":{"type":"integer","format":"int32"}}},"PagedModelIntegracaoLogExecucaoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoLogExecucaoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelIntegracaoBancoDadosDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoBancoDadosDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelIntegracaoApiExternaDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/IntegracaoApiExternaDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"InteracaoIADTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"sessaoId":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"pergunta":{"type":"string"},"resposta":{"type":"string"},"confianca":{"type":"number","format":"double"},"tokensUsados":{"type":"integer","format":"int32"},"tokensPrompt":{"type":"integer","format":"int32"},"tokensResposta":{"type":"integer","format":"int32"},"tempoRespostaMs":{"type":"integer","format":"int64"},"provider":{"type":"string"},"modelo":{"type":"string"},"custoProviderUsd":{"type":"number"},"cotacaoUsdBrl":{"type":"number"},"custoProviderBrl":{"type":"number"},"tarifaCobrada":{"type":"number"},"tipoInteracao":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"}}},"PagedModelInteracaoIADTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InteracaoIADTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"IADashboardDTO":{"type":"object","properties":{"totalInteracoes":{"type":"integer","format":"int64"},"totalTokens":{"type":"integer","format":"int64"},"custoEstimadoUsd":{"type":"number"},"custoEstimadoBrl":{"type":"number"},"tarifaTotal":{"type":"number"},"mediaConfianca":{"type":"number","format":"double"},"mediaTempoRespostaMs":{"type":"number","format":"double"},"labelsDias":{"type":"array","items":{"type":"string"}},"interacoesPorDia":{"type":"array","items":{"type":"integer","format":"int64"}},"tokensPorDia":{"type":"array","items":{"type":"integer","format":"int64"}},"labelsProviders":{"type":"array","items":{"type":"string"}},"interacoesPorProvider":{"type":"array","items":{"type":"integer","format":"int64"}},"labelsTipos":{"type":"array","items":{"type":"string"}},"interacoesPorTipo":{"type":"array","items":{"type":"integer","format":"int64"}}}},"AnaliseAdvisorDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"solicitadoPorNome":{"type":"string"},"periodoInicio":{"type":"string","format":"date-time"},"periodoFim":{"type":"string","format":"date-time"},"operadorNome":{"type":"string"},"status":{"type":"string","enum":["PROCESSANDO","CONCLUIDA","ERRO"]},"resumoExecutivo":{"type":"string"},"analiseCompleta":{"type":"string"},"recomendacoes":{"type":"array","items":{"$ref":"#/components/schemas/RecomendacaoDTO"}},"dadosEntrada":{"type":"string"},"metricasPeriodo":{"type":"string"},"metricas":{"type":"object","additionalProperties":{}},"providerUtilizado":{"type":"string"},"modeloUtilizado":{"type":"string"},"tokensUsados":{"type":"integer","format":"int32"},"tempoRespostaMs":{"type":"integer","format":"int64"},"erroMensagem":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"}}},"PagedModelAnaliseAdvisorDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AnaliseAdvisorDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"RecomendacaoDTO":{"type":"object","properties":{"prioridade":{"type":"string"},"categoria":{"type":"string"},"titulo":{"type":"string"},"descricao":{"type":"string"},"impactoEstimado":{"type":"string"}}},"PagedModelContaImapAdminDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ContaImapAdminDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"StatusIADTO":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"autoRespostaHabilitada":{"type":"boolean"},"configuracaoAtiva":{"type":"boolean"},"provider":{"type":"string"},"modelo":{"type":"string"},"nomeAssistente":{"type":"string"},"estado":{"type":"string"}}},"PagedModelExameDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ExameDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"ExameContraindicacaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"descricao":{"type":"string"},"severidade":{"type":"string","enum":["ABSOLUTA","RELATIVA"]}}},"ExameDetalhadoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"categoriaId":{"type":"integer","format":"int64"},"categoriaNome":{"type":"string"},"categoriaIcone":{"type":"string"},"nome":{"type":"string"},"slug":{"type":"string"},"descricao":{"type":"string"},"duracaoMediaMinutos":{"type":"integer","format":"int32"},"tempoResultadoDescricao":{"type":"string"},"riscoDescricao":{"type":"string"},"observacaoGeral":{"type":"string"},"status":{"type":"string","enum":["RASCUNHO","EM_REVISAO","ATIVO","ARQUIVADO"]},"versao":{"type":"integer","format":"int32"},"revisorNome":{"type":"string"},"revisadoEm":{"type":"string","format":"date-time"},"dataProximaRevisao":{"type":"string","format":"date"},"criadoPorNome":{"type":"string"},"criadoEm":{"type":"string","format":"date-time"},"atualizadoEm":{"type":"string","format":"date-time"},"ativo":{"type":"boolean"},"preparos":{"type":"array","items":{"$ref":"#/components/schemas/ExameInstrucaoDTO"}},"durante":{"type":"array","items":{"$ref":"#/components/schemas/ExameInstrucaoDTO"}},"apos":{"type":"array","items":{"$ref":"#/components/schemas/ExameInstrucaoDTO"}},"contraindicacoes":{"type":"array","items":{"$ref":"#/components/schemas/ExameContraindicacaoDTO"}},"orientacoesPerfil":{"type":"array","items":{"$ref":"#/components/schemas/ExameOrientacaoPerfilDTO"}},"fontes":{"type":"array","items":{"$ref":"#/components/schemas/ExameFonteDTO"}},"palavrasChave":{"type":"array","items":{"type":"string"}}}},"ExameFonteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nomeFonte":{"type":"string"},"urlFonte":{"type":"string"},"tipoFonte":{"type":"string","enum":["GOVERNAMENTAL","ACADEMICA","HOSPITAL_REFERENCIA","INTERNO"]},"idiomaOriginal":{"type":"string"},"ultimaVerificacaoEm":{"type":"string","format":"date-time"},"notas":{"type":"string"}}},"ExameInstrucaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"instrucao":{"type":"string"},"ordem":{"type":"integer","format":"int32"}}},"ExameOrientacaoPerfilDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"perfilPacienteId":{"type":"integer","format":"int64"},"perfilCodigo":{"type":"string"},"perfilNome":{"type":"string"},"orientacao":{"type":"string"}}},"ExameMetricasDTO":{"type":"object","properties":{"periodoInicio":{"type":"string","format":"date"},"periodoFim":{"type":"string","format":"date"},"aplicacaoId":{"type":"integer","format":"int64"},"totalUsos":{"type":"integer","format":"int64"},"examesDistintosUsados":{"type":"integer","format":"int64"},"examesAtivos":{"type":"integer","format":"int64"},"hitRatePercentual":{"type":"number","format":"double"},"distribuicaoMetodo":{"type":"array","items":{"$ref":"#/components/schemas/ItemDistribuicao"}},"distribuicaoIntent":{"type":"array","items":{"$ref":"#/components/schemas/ItemDistribuicao"}},"distribuicaoAplicacao":{"type":"array","items":{"$ref":"#/components/schemas/ItemDistribuicaoAplicacao"}},"topExames":{"type":"array","items":{"$ref":"#/components/schemas/ExameTopUsoDTO"}},"examesSemUsoRecente":{"type":"array","items":{"$ref":"#/components/schemas/ExameSemUsoDTO"}},"feedback":{"$ref":"#/components/schemas/FeedbackResumo"}}},"ExameSemUsoDTO":{"type":"object","properties":{"exameId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"slug":{"type":"string"},"categoriaNome":{"type":"string"},"ultimaAtualizacao":{"type":"string","format":"date-time"}}},"ExameTopUsoDTO":{"type":"object","properties":{"exameId":{"type":"integer","format":"int64"},"nome":{"type":"string"},"slug":{"type":"string"},"categoriaNome":{"type":"string"},"total":{"type":"integer","format":"int64"}}},"FeedbackResumo":{"type":"object","properties":{"uteis":{"type":"integer","format":"int64"},"naoUteis":{"type":"integer","format":"int64"},"semFeedback":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"},"taxaSatisfacaoPercentual":{"type":"number","format":"double"}}},"ItemDistribuicao":{"type":"object","properties":{"label":{"type":"string"},"total":{"type":"integer","format":"int64"}}},"ItemDistribuicaoAplicacao":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"total":{"type":"integer","format":"int64"}}},"ImportacaoExameExecucaoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"provider":{"type":"string","enum":["NHS","NHS_INFORM","MEDLINEPLUS","MS_BRASIL","MS_INCA","BVS"]},"status":{"type":"string","enum":["EM_ANDAMENTO","CONCLUIDO","ERRO","CANCELADO"]},"iniciadoEm":{"type":"string","format":"date-time"},"finalizadoEm":{"type":"string","format":"date-time"},"duracaoMs":{"type":"integer","format":"int64"},"itemsBaixados":{"type":"integer","format":"int32"},"itemsNovos":{"type":"integer","format":"int32"},"itemsModificados":{"type":"integer","format":"int32"},"itemsSkipped":{"type":"integer","format":"int32"},"itemsErro":{"type":"integer","format":"int32"},"erroMensagem":{"type":"string"},"disparadoPor":{"type":"string","enum":["CRON","MANUAL","UPLOAD"]}}},"PagedModelImportacaoExameExecucaoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ImportacaoExameExecucaoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelImportacaoExameBufferDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ImportacaoExameBufferDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"PagedModelBaseConhecimentoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/BaseConhecimentoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"CategoriaConhecimentoDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"nome":{"type":"string"},"descricao":{"type":"string"},"icone":{"type":"string"},"ordem":{"type":"integer","format":"int32"},"ativo":{"type":"boolean"},"criadoEm":{"type":"string","format":"date-time"}}},"AuditLogDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"aplicacaoId":{"type":"integer","format":"int64"},"aplicacaoNome":{"type":"string"},"usuarioAdmin":{"type":"string"},"apiKey":{"type":"string"},"acao":{"type":"string"},"acaoDescricao":{"type":"string"},"categoria":{"type":"string"},"categoriaDescricao":{"type":"string"},"entidade":{"type":"string"},"entidadeId":{"type":"integer","format":"int64"},"descricao":{"type":"string"},"dadosAnteriores":{"type":"string"},"dadosNovos":{"type":"string"},"metodoHttp":{"type":"string"},"endpoint":{"type":"string"},"ipOrigem":{"type":"string"},"userAgent":{"type":"string"},"sucesso":{"type":"boolean"},"mensagemErro":{"type":"string"},"dataHora":{"type":"string","format":"date-time"}}},"PagedModelAuditLogDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"FilaResumoDTO":{"type":"object","properties":{"totalNaFila":{"type":"integer","format":"int64"},"totalEmAtendimento":{"type":"integer","format":"int64"},"operadoresOnline":{"type":"integer","format":"int64"},"operadoresDisponiveis":{"type":"integer","format":"int64"},"tempoMedioEsperaMinutos":{"type":"integer","format":"int64"},"avaliacaoPendenteEnvio":{"type":"integer","format":"int64"},"avaliacaoAguardandoResposta":{"type":"integer","format":"int64"},"avaliacaoRecebida":{"type":"integer","format":"int64"},"avaliacaoTimeout":{"type":"integer","format":"int64"},"tempoMedioAtendimento":{"type":"string"},"tempoMedioEsperaHumano":{"type":"string"},"tempoMedioIA":{"type":"string"},"totalFinalizadosHoje":{"type":"integer","format":"int64"}}},"PagedModelAplicacaoDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AplicacaoDTO"}},"page":{"$ref":"#/components/schemas/PageMetadata"}}},"RemoverRegistrosRequest":{"type":"object","properties":{"aplicacaoId":{"type":"integer","format":"int64"}}}},"securitySchemes":{"X-Api-Key":{"type":"apiKey","description":"API Key da aplicação (gerada no cadastro)","name":"X-Api-Key","in":"header"},"X-Api-Secret":{"type":"apiKey","description":"API Secret da aplicação (exibido apenas uma vez na criação)","name":"X-Api-Secret","in":"header"},"Bearer JWT":{"type":"http","description":"Token JWT obtido via POST /api/admin/auth/login","scheme":"bearer","bearerFormat":"JWT"}}}}