100 lines
4.1 KiB
MySQL
100 lines
4.1 KiB
MySQL
|
|
-- ============================================================
|
||
|
|
-- Migration 016: Arvore de decisao por especialidade para RH
|
||
|
|
-- Tabelas:
|
||
|
|
-- area_routing_keywords
|
||
|
|
-- ============================================================
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS area_routing_keywords (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
area_id INTEGER NOT NULL REFERENCES areas(id) ON DELETE CASCADE,
|
||
|
|
keyword VARCHAR(160) NOT NULL,
|
||
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
||
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
CONSTRAINT uq_area_routing_keyword UNIQUE (area_id, keyword)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_area_routing_keywords_area
|
||
|
|
ON area_routing_keywords (area_id, active);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_area_routing_keywords_keyword
|
||
|
|
ON area_routing_keywords (keyword);
|
||
|
|
|
||
|
|
INSERT INTO areas (nome, descricao) VALUES
|
||
|
|
('Benefícios', 'Duvidas de RH sobre beneficios, convenios, vale transporte e vale refeicao'),
|
||
|
|
('Ponto', 'Ajustes de ponto, banco de horas, atrasos e jornada'),
|
||
|
|
('Holerite', 'Holerite, folha de pagamento, descontos e demonstrativos'),
|
||
|
|
('Férias', 'Ferias, abono, programacao e saldo de descanso'),
|
||
|
|
('Recrutamento', 'Vagas internas, candidatura, entrevista e processo seletivo')
|
||
|
|
ON CONFLICT (nome) DO UPDATE SET
|
||
|
|
descricao = EXCLUDED.descricao,
|
||
|
|
ativo = TRUE,
|
||
|
|
updated_at = NOW();
|
||
|
|
|
||
|
|
INSERT INTO area_routing_keywords (area_id, keyword)
|
||
|
|
SELECT a.id, keyword
|
||
|
|
FROM areas a
|
||
|
|
JOIN (
|
||
|
|
VALUES
|
||
|
|
('Benefícios', 'beneficio'),
|
||
|
|
('Benefícios', 'beneficios'),
|
||
|
|
('Benefícios', 'vale refeicao'),
|
||
|
|
('Benefícios', 'vale alimentacao'),
|
||
|
|
('Benefícios', 'vale transporte'),
|
||
|
|
('Benefícios', 'convenio'),
|
||
|
|
('Benefícios', 'plano de saude'),
|
||
|
|
('Benefícios', 'odonto'),
|
||
|
|
('Ponto', 'ponto'),
|
||
|
|
('Ponto', 'espelho de ponto'),
|
||
|
|
('Ponto', 'banco de horas'),
|
||
|
|
('Ponto', 'atraso'),
|
||
|
|
('Ponto', 'jornada'),
|
||
|
|
('Ponto', 'batida'),
|
||
|
|
('Ponto', 'marcacao'),
|
||
|
|
('Holerite', 'holerite'),
|
||
|
|
('Holerite', 'folha'),
|
||
|
|
('Holerite', 'pagamento'),
|
||
|
|
('Holerite', 'salario'),
|
||
|
|
('Holerite', 'desconto'),
|
||
|
|
('Holerite', 'demonstrativo'),
|
||
|
|
('Férias', 'ferias'),
|
||
|
|
('Férias', 'abono'),
|
||
|
|
('Férias', 'descanso'),
|
||
|
|
('Férias', 'saldo de ferias'),
|
||
|
|
('Férias', 'programar ferias'),
|
||
|
|
('Recrutamento', 'vaga'),
|
||
|
|
('Recrutamento', 'vagas'),
|
||
|
|
('Recrutamento', 'processo seletivo'),
|
||
|
|
('Recrutamento', 'entrevista'),
|
||
|
|
('Recrutamento', 'curriculo'),
|
||
|
|
('Recrutamento', 'candidatura')
|
||
|
|
) AS seed(area_nome, keyword) ON seed.area_nome = a.nome
|
||
|
|
ON CONFLICT (area_id, keyword) DO UPDATE SET
|
||
|
|
active = TRUE,
|
||
|
|
updated_at = CURRENT_TIMESTAMP;
|
||
|
|
|
||
|
|
INSERT INTO whatsapp_templates (name, content, area_id, status, requested_by_role, admin_approved_at, meta_submitted_at, meta_approved_at, updated_at)
|
||
|
|
SELECT template.name, template.content, a.id, 'approved', 'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP
|
||
|
|
FROM areas a
|
||
|
|
JOIN (
|
||
|
|
VALUES
|
||
|
|
('rh_abertura_beneficios', 'Ola, {nome}. Aqui e o Atendimento Sothis RH. Recebemos sua solicitacao sobre beneficios e vamos te apoiar por aqui.'),
|
||
|
|
('rh_abertura_ponto', 'Ola, {nome}. Aqui e o Atendimento Sothis RH. Vamos te ajudar com sua solicitacao sobre ponto, jornada ou banco de horas.'),
|
||
|
|
('rh_abertura_holerite', 'Ola, {nome}. Aqui e o Atendimento Sothis RH. Vamos te ajudar com holerite, folha ou demonstrativo de pagamento.'),
|
||
|
|
('rh_abertura_ferias', 'Ola, {nome}. Aqui e o Atendimento Sothis RH. Vamos te apoiar com sua solicitacao sobre ferias.'),
|
||
|
|
('rh_abertura_recrutamento', 'Ola, {nome}. Aqui e o Atendimento Sothis RH. Vamos te orientar sobre vagas, candidatura ou processo seletivo.')
|
||
|
|
) AS template(name, content) ON template.name LIKE
|
||
|
|
CASE a.nome
|
||
|
|
WHEN 'Benefícios' THEN '%beneficios'
|
||
|
|
WHEN 'Ponto' THEN '%ponto'
|
||
|
|
WHEN 'Holerite' THEN '%holerite'
|
||
|
|
WHEN 'Férias' THEN '%ferias'
|
||
|
|
WHEN 'Recrutamento' THEN '%recrutamento'
|
||
|
|
END
|
||
|
|
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;
|