-- ============================================================ -- Migration 025: Templates de demonstração — filas RH -- Abordagem ativa: RH iniciando o contato -- Filas: Colaborador, Ex-colaborador, Suporte, Vagas -- ============================================================ -- Garante que as áreas de RH existam INSERT INTO areas (nome, descricao) VALUES ('Colaborador', 'Atendimento RH para colaboradores ativos'), ('Ex-colaborador', 'Atendimento RH para ex-colaboradores e processos de desligamento'), ('Vagas', 'Atendimento de recrutamento e seleção para candidatos') ON CONFLICT (nome) DO NOTHING; -- ── COLABORADOR ───────────────────────────────────────────── INSERT INTO whatsapp_templates (name, content, area_id, status, category, requested_by_role, admin_approved_at, meta_submitted_at, meta_approved_at, updated_at) SELECT t.name, t.content, a.id, 'approved', 'UTILITY', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM areas a JOIN (VALUES ('colab_holerite_disponivel', 'Olá, {nome}! O holerite de {mes}/{ano} já está disponível para consulta. Precisa de ajuda para acessar?'), ('colab_pendencia_assinatura', 'Olá, {nome}. Identificamos um documento pendente de assinatura no sistema. Pode verificar assim que possível?'), ('colab_ferias_programar', 'Olá, {nome}. Você possui {saldo_dias} dias de férias a vencer até {data_limite}. Vamos programar juntos?'), ('colab_atualizacao_cadastral', 'Olá, {nome}. Precisamos atualizar alguns dados cadastrais seus. Você tem alguns minutinhos para confirmar as informações?'), ('colab_convite_treinamento', 'Olá, {nome}! Você foi selecionado(a) para o treinamento de {nome_treinamento} no dia {data} às {hora}. Confirma participação?'), ('colab_aviso_beneficio', 'Olá, {nome}. Informamos que seu benefício de {beneficio} passou por uma atualização a partir de {data}. Quer saber mais?'), ('colab_documentos_admissao', 'Olá, {nome}. Para concluir sua admissão, ainda precisamos dos seguintes documentos: {lista_documentos}. Pode nos enviar?') ) AS t(name, content) ON a.nome = 'Colaborador' ON CONFLICT (name) DO UPDATE SET content = EXCLUDED.content, area_id = EXCLUDED.area_id, status = 'approved', meta_approved_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP; -- ── EX-COLABORADOR ────────────────────────────────────────── INSERT INTO whatsapp_templates (name, content, area_id, status, category, requested_by_role, admin_approved_at, meta_submitted_at, meta_approved_at, updated_at) SELECT t.name, t.content, a.id, 'approved', 'UTILITY', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM areas a JOIN (VALUES ('excolab_rescisao_disponivel', 'Olá, {nome}. Seus documentos de rescisão estão prontos e disponíveis para retirada. Quando você pode passar aqui?'), ('excolab_homologacao_agendada', 'Olá, {nome}. Sua homologação está agendada para {data} às {hora}. Confirme sua presença respondendo esta mensagem.'), ('excolab_informe_rendimentos', 'Olá, {nome}. Seu informe de rendimentos do ano {ano} já está disponível. Prefere receber por aqui ou por e-mail?'), ('excolab_devolucao_equipamentos', 'Olá, {nome}. Ainda consta em nosso sistema a devolução de {equipamento}. Pode nos informar quando será possível regularizar?'), ('excolab_pendencia_bancaria', 'Olá, {nome}. Identificamos uma pendência no repasse dos seus acertos. Pode confirmar os dados bancários para finalizarmos?'), ('excolab_recontratacao', 'Olá, {nome}. Temos uma oportunidade que pode ser do seu interesse. Você teria disponibilidade para uma conversa rápida?') ) AS t(name, content) ON a.nome = 'Ex-colaborador' ON CONFLICT (name) DO UPDATE SET content = EXCLUDED.content, area_id = EXCLUDED.area_id, status = 'approved', meta_approved_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP; -- ── SUPORTE (abordagem ativa de TI/sistemas) ───────────────── INSERT INTO whatsapp_templates (name, content, area_id, status, category, requested_by_role, admin_approved_at, meta_submitted_at, meta_approved_at, updated_at) SELECT t.name, t.content, a.id, 'approved', 'UTILITY', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM areas a JOIN (VALUES ('suporte_manutencao_programada', 'Olá, {nome}. Informamos que o sistema {sistema} ficará em manutenção no dia {data} das {hora_inicio} às {hora_fim}.'), ('suporte_senha_expirando', 'Olá, {nome}. Sua senha de acesso ao {sistema} expira em {dias} dias. Recomendamos atualizar antes disso para evitar bloqueio.'), ('suporte_acesso_liberado', 'Olá, {nome}. Seu acesso ao sistema {sistema} foi liberado conforme solicitado. Qualquer dúvida, é só chamar.'), ('suporte_equipamento_disponivel', 'Olá, {nome}. Seu equipamento {equipamento} está pronto para retirada. Pode passar a partir de {data}.'), ('suporte_chamado_resolvido', 'Olá, {nome}. O chamado {protocolo} foi resolvido pela nossa equipe. Conseguiu acessar normalmente?'), ('suporte_alerta_seguranca', 'Olá, {nome}. Identificamos uma tentativa de acesso suspeita na sua conta. Recomendamos trocar sua senha agora. Posso te ajudar?') ) AS t(name, content) ON a.nome = 'Suporte' ON CONFLICT (name) DO UPDATE SET content = EXCLUDED.content, area_id = EXCLUDED.area_id, status = 'approved', meta_approved_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP; -- ── VAGAS ──────────────────────────────────────────────────── INSERT INTO whatsapp_templates (name, content, area_id, status, category, requested_by_role, admin_approved_at, meta_submitted_at, meta_approved_at, updated_at) SELECT t.name, t.content, a.id, 'approved', 'UTILITY', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP FROM areas a JOIN (VALUES ('vagas_convite_processo', 'Olá, {nome}! Encontramos seu perfil e acreditamos que você pode ter fit com a vaga de {cargo}. Teria interesse em conhecer mais?'), ('vagas_convite_entrevista', 'Olá, {nome}! Gostaríamos de te convidar para uma entrevista para a vaga de {cargo} no dia {data} às {hora}. Topas?'), ('vagas_confirmacao_entrevista', 'Olá, {nome}. Passando para confirmar sua entrevista de amanhã às {hora} para a vaga de {cargo}. Ainda está confirmado(a)?'), ('vagas_solicitacao_documentos', 'Olá, {nome}. Para avançarmos no processo seletivo, precisamos de alguns documentos seus: {lista_documentos}. Pode nos enviar?'), ('vagas_proposta', 'Olá, {nome}! Temos ótimas notícias. Gostaríamos de apresentar uma proposta para você. Quando tem um momento para conversarmos?'), ('vagas_feedback_reprovado', 'Olá, {nome}. Agradecemos sua participação no processo seletivo para {cargo}. Dessa vez não seguiremos juntos, mas mantemos seu perfil no banco de talentos.'), ('vagas_banco_talentos', 'Olá, {nome}. Seu perfil foi incluído no nosso banco de talentos. Surgindo uma vaga compatível, entraremos em contato.') ) AS t(name, content) ON a.nome = 'Vagas' ON CONFLICT (name) DO UPDATE SET content = EXCLUDED.content, area_id = EXCLUDED.area_id, status = 'approved', meta_approved_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP; -- ── Workflow demo (pending para mostrar fluxo de aprovação) ── INSERT INTO whatsapp_templates (name, content, area_id, status, category, requested_by_role, updated_at) SELECT t.name, t.content, a.id, t.status, 'MARKETING', 'supervisor', CURRENT_TIMESTAMP FROM areas a JOIN (VALUES ('vagas_abordagem_ativa_linkedin', 'Vagas', 'pending_meta', 'Olá, {nome}! Vi seu perfil e acredito que temos uma oportunidade alinhada com sua experiência em {area}. Posso te contar mais?'), ('colab_pesquisa_clima', 'Colaborador', 'pending_admin', 'Olá, {nome}! O RH está realizando uma pesquisa de clima organizacional. Leva menos de 2 minutos. Topa participar?') ) AS t(name, area_nome, status, content) ON a.nome = t.area_nome ON CONFLICT (name) DO UPDATE SET content = EXCLUDED.content, area_id = EXCLUDED.area_id, status = EXCLUDED.status, updated_at = CURRENT_TIMESTAMP;