-- ============================================================
-- Migration 018: Etapa de resposta antes da escalacao para fila
-- Tabelas:
--   bot_triage_flows
--   bot_triage_intents
--   whatsapp_chat_atribuicoes
-- ============================================================

ALTER TABLE bot_triage_flows
  ADD COLUMN IF NOT EXISTS resolution_question TEXT NOT NULL DEFAULT 'Essa informacao resolveu sua duvida? Responda 1 para encerrar ou 2 para falar com um especialista.';

ALTER TABLE bot_triage_intents
  ADD COLUMN IF NOT EXISTS response_message TEXT,
  ADD COLUMN IF NOT EXISTS resolution_question TEXT,
  ADD COLUMN IF NOT EXISTS escalation_message TEXT NOT NULL DEFAULT 'Certo, vou encaminhar seu atendimento para um especialista no assunto.';

ALTER TABLE whatsapp_chat_atribuicoes
  ADD COLUMN IF NOT EXISTS triage_intent_id INTEGER REFERENCES bot_triage_intents(id) ON DELETE SET NULL;

CREATE INDEX IF NOT EXISTS idx_whatsapp_atribuicoes_triage_intent
  ON whatsapp_chat_atribuicoes (triage_intent_id, triage_step);

UPDATE bot_triage_intents
SET response_message = CASE label
  WHEN 'Beneficios' THEN 'Para consultar beneficios, verifique no portal de RH a area Beneficios. La voce encontra vale refeicao, vale transporte, convenio medico, odontologico e regras de elegibilidade.'
  WHEN 'Holerite' THEN 'Seu holerite fica disponivel no portal de RH na area Folha de pagamento. Normalmente ele pode ser consultado por competencia, com detalhamento de salario, descontos e beneficios.'
  WHEN 'Ferias' THEN 'Para ferias, consulte saldo e periodos disponiveis no portal de RH. A solicitacao precisa respeitar a politica interna e o fluxo de aprovacao do gestor.'
  WHEN 'Ponto' THEN 'Para ponto, confira o espelho de ponto e solicite correcao de batida quando necessario. Ajustes de jornada e banco de horas seguem aprovacao do gestor.'
  WHEN 'Documentos' THEN 'Documentos de ex-colaborador podem ser solicitados pelo canal de RH. Informe o documento desejado e mantenha seus dados de contato atualizados.'
  WHEN 'FGTS e rescisao' THEN 'Para FGTS e rescisao, o time de RH valida o status do desligamento, prazos legais e documentos pendentes antes de retornar.'
  WHEN 'Informe de rendimentos' THEN 'O informe de rendimentos e disponibilizado conforme calendario fiscal. Caso nao encontre, o RH pode apoiar com a segunda via.'
  WHEN 'Status da vaga' THEN 'Para status de vaga, acompanhe o processo seletivo pelo canal informado na candidatura. O RH pode consultar a etapa atual quando houver identificacao do candidato.'
  WHEN 'Reagendar entrevista' THEN 'Para reagendar entrevista, informe nome completo, vaga e melhor disponibilidade. O time de recrutamento avalia a agenda.'
  WHEN 'Nova candidatura' THEN 'Para nova candidatura, acesse o portal de vagas e mantenha seu curriculo atualizado. O RH pode orientar sobre oportunidades abertas.'
  ELSE COALESCE(response_message, 'Tenho uma orientacao inicial para esse assunto. Se ainda precisar de ajuda, posso encaminhar para um especialista.')
END
WHERE response_message IS NULL;

UPDATE bot_triage_intents
SET resolution_question = 'Isso resolveu sua duvida? Responda 1 para encerrar ou 2 para falar com um especialista de RH.'
WHERE resolution_question IS NULL;

UPDATE bot_triage_intents
SET escalation_message = CASE label
  WHEN 'Beneficios' THEN 'Certo, vou te encaminhar para um especialista em beneficios.'
  WHEN 'Holerite' THEN 'Certo, vou te encaminhar para um especialista em holerite e folha.'
  WHEN 'Ferias' THEN 'Certo, vou te encaminhar para um especialista em ferias.'
  WHEN 'Ponto' THEN 'Certo, vou te encaminhar para um especialista em ponto.'
  WHEN 'Documentos' THEN 'Certo, vou te encaminhar para um especialista em documentos de RH.'
  WHEN 'FGTS e rescisao' THEN 'Certo, vou te encaminhar para um especialista em rescisao.'
  WHEN 'Informe de rendimentos' THEN 'Certo, vou te encaminhar para um especialista em documentos de RH.'
  WHEN 'Status da vaga' THEN 'Certo, vou te encaminhar para o time de recrutamento.'
  WHEN 'Reagendar entrevista' THEN 'Certo, vou te encaminhar para o time de recrutamento.'
  WHEN 'Nova candidatura' THEN 'Certo, vou te encaminhar para o time de recrutamento.'
  ELSE escalation_message
END;
