-- 2026-04-16
-- TIIX HEALTH como menu principal das areas de empresa e unidade
-- Objetivos:
-- 1) criar um agrupador TIIX HEALTH visivel dentro de empresa e unidade
-- 2) mover para esse agrupador tudo que eh ligado a operacao de saude
-- 3) incluir Agendamento Manual no menu visivel das duas areas
-- 4) deixar a visibilidade do agrupador depender dos filhos permitidos

-- Roots operacionais existentes
SET @empresa_root_id = (
    SELECT id
      FROM wpjy_menus_items
     WHERE menu = 35
       AND slug = 'menu.area-da-empresa.35.18'
     ORDER BY id ASC
     LIMIT 1
);

SET @unidade_root_id = (
    SELECT id
      FROM wpjy_menus_items
     WHERE menu = 35
       AND slug = 'menu.area-da-unidade'
     ORDER BY id ASC
     LIMIT 1
);

-- Cria agrupador TIIX HEALTH em empresa
INSERT INTO wpjy_menus_items (label, link, area, parent, sort, menu, target, icon, slug, tag, parametro_url)
SELECT 'TIIX HEALTH', '#', 'empresa', @empresa_root_id, 3, 35, '_self', 'lucide:heart-pulse', 'menu.empresa.tiix-health', 'empresa_tiix_health_root', NULL
WHERE @empresa_root_id IS NOT NULL
  AND NOT EXISTS (
    SELECT 1
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'empresa'
       AND slug = 'menu.empresa.tiix-health'
  );

-- Cria agrupador TIIX HEALTH em unidade
INSERT INTO wpjy_menus_items (label, link, area, parent, sort, menu, target, icon, slug, tag, parametro_url)
SELECT 'TIIX HEALTH', '#', 'unidade', @unidade_root_id, 1, 35, '_self', 'lucide:heart-pulse', 'menu.unidade.tiix-health', 'unidade_tiix_health_root', NULL
WHERE @unidade_root_id IS NOT NULL
  AND NOT EXISTS (
    SELECT 1
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'unidade'
       AND slug = 'menu.unidade.tiix-health'
  );

SET @empresa_tiix_health_id = (
    SELECT id
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'empresa'
       AND slug = 'menu.empresa.tiix-health'
     ORDER BY id ASC
     LIMIT 1
);

SET @unidade_tiix_health_id = (
    SELECT id
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'unidade'
       AND slug = 'menu.unidade.tiix-health'
     ORDER BY id ASC
     LIMIT 1
);

-- Garante item de Agendamento Manual em empresa
INSERT INTO wpjy_menus_items (label, link, area, parent, sort, menu, target, icon, slug, tag, parametro_url)
SELECT 'Agendamento Manual', 'agendamento-manual', 'empresa', @empresa_tiix_health_id, 3, 35, '_self', 'lucide:calendar-plus', 'empresa-agendamento-manual', 'empresa_agendamento_manual', NULL
WHERE @empresa_tiix_health_id IS NOT NULL
  AND NOT EXISTS (
    SELECT 1
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'empresa'
       AND link = 'agendamento-manual'
  );

-- Garante item de Agendamento Manual em unidade
INSERT INTO wpjy_menus_items (label, link, area, parent, sort, menu, target, icon, slug, tag, parametro_url)
SELECT 'Agendamento Manual', 'agendamento-manual', 'unidade', @unidade_tiix_health_id, 4, 35, '_self', 'lucide:calendar-plus', 'menu.unidade.agendamento-manual', 'unidade_agendamento_manual', NULL
WHERE @unidade_tiix_health_id IS NOT NULL
  AND NOT EXISTS (
    SELECT 1
      FROM wpjy_menus_items
     WHERE menu = 35
       AND area = 'unidade'
       AND link = 'agendamento-manual'
  );

-- Move itens de saude da empresa para baixo do TIIX HEALTH
UPDATE wpjy_menus_items
   SET parent = @empresa_tiix_health_id,
       sort = CASE
         WHEN link = 'profissionais' THEN 0
         WHEN link = 'disponibilidade' THEN 1
         WHEN link = 'agendamentos' THEN 2
         WHEN link = 'agendamento-manual' THEN 3
         WHEN link = 'pre-agendamentos' THEN 4
         WHEN link = 'pacientes' THEN 5
         WHEN link = 'medicos' THEN 6
         ELSE sort
       END
 WHERE menu = 35
   AND area = 'empresa'
   AND @empresa_tiix_health_id IS NOT NULL
   AND link IN ('profissionais', 'disponibilidade', 'agendamentos', 'agendamento-manual', 'pre-agendamentos', 'pacientes', 'medicos');

-- Move itens de saude da unidade para baixo do TIIX HEALTH
UPDATE wpjy_menus_items
   SET parent = @unidade_tiix_health_id,
       sort = CASE
         WHEN link = 'agenda' THEN 0
         WHEN link = 'profissionais' THEN 1
         WHEN link = 'disponibilidade' THEN 2
         WHEN link = 'agendamentos' THEN 3
         WHEN link = 'agendamento-manual' THEN 4
         WHEN link = 'pre-agendamentos' THEN 5
         WHEN link = 'pacientes' THEN 6
         WHEN link = 'medicos' THEN 7
         ELSE sort
       END
 WHERE menu = 35
   AND area = 'unidade'
   AND @unidade_tiix_health_id IS NOT NULL
   AND link IN ('agenda', 'profissionais', 'disponibilidade', 'agendamentos', 'agendamento-manual', 'pre-agendamentos', 'pacientes', 'medicos');

-- Reordena filhos diretos da area da empresa
UPDATE wpjy_menus_items
   SET sort = CASE
     WHEN link = 'index' THEN 0
     WHEN link = 'unidades' THEN 1
     WHEN link = 'niveis' THEN 2
     WHEN slug = 'menu.empresa.tiix-health' THEN 3
     WHEN link = 'aplicacoes' THEN 4
     WHEN link = 'unidade-editar' THEN 5
     WHEN link = 'tickets' THEN 6
     WHEN link = 'suporte' THEN 7
     WHEN link = 'leads' THEN 8
     ELSE sort
   END
 WHERE menu = 35
   AND parent = @empresa_root_id;

-- Reordena filhos diretos da area da unidade
UPDATE wpjy_menus_items
   SET sort = CASE
     WHEN link = 'index' THEN 0
     WHEN slug = 'menu.unidade.tiix-health' THEN 1
     WHEN link = 'equipe' THEN 2
     WHEN link = 'niveis' THEN 3
     WHEN link = 'leads' THEN 4
     ELSE sort
   END
 WHERE menu = 35
   AND parent = @unidade_root_id;

-- Resumo final
SELECT id, label, link, area, parent, sort, slug
  FROM wpjy_menus_items
 WHERE id IN (@empresa_tiix_health_id, @unidade_tiix_health_id)
    OR parent IN (@empresa_tiix_health_id, @unidade_tiix_health_id)
 ORDER BY area, parent, sort, id;
