-- 2026-04-16
-- TIIX HEALTH no primeiro nivel do menu
-- Objetivos:
-- 1) transformar TIIX HEALTH em root real de primeiro nivel no mini sidebar
-- 2) manter apenas um root de TIIX HEALTH, sem duplicacao por empresa/unidade
-- 3) mover os links operacionais de saude para o segundo nivel abaixo desse root
-- 4) remover os agrupadores intermediarios de terceiro nivel criados dentro de empresa/unidade
-- 5) preservar os links area-specificos para que a permissao/contexto escolham o conjunto visivel

SET @menu_id = 35;

INSERT INTO wpjy_menus_items
  (label, link, area, parent, sort, menu, target, icon, slug, tag, parametro_url)
SELECT
  'TIIX HEALTH',
  '#',
  NULL,
  0,
  16,
  @menu_id,
  '_self',
  'lucide:heart-pulse',
  'menu.tiixhealth.operacional',
  'tiix_health_root',
  NULL
WHERE NOT EXISTS (
  SELECT 1
    FROM wpjy_menus_items
   WHERE menu = @menu_id
     AND slug = 'menu.tiixhealth.operacional'
);

SET @tiix_health_root_id = (
  SELECT id
    FROM wpjy_menus_items
   WHERE menu = @menu_id
     AND slug = 'menu.tiixhealth.operacional'
   ORDER BY id ASC
   LIMIT 1
);

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

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

UPDATE wpjy_menus_items
   SET parent = @tiix_health_root_id,
       sort = CASE
         WHEN area = 'empresa' AND link = 'profissionais' THEN 0
         WHEN area = 'empresa' AND link = 'disponibilidade' THEN 1
         WHEN area = 'empresa' AND link = 'agendamentos' THEN 2
         WHEN area = 'empresa' AND link = 'agendamento-manual' THEN 3
         WHEN area = 'empresa' AND link = 'pre-agendamentos' THEN 4
         WHEN area = 'empresa' AND link = 'pacientes' THEN 5
         WHEN area = 'empresa' AND link = 'medicos' THEN 6
         WHEN area = 'unidade' AND link = 'agenda' THEN 0
         WHEN area = 'unidade' AND link = 'profissionais' THEN 1
         WHEN area = 'unidade' AND link = 'disponibilidade' THEN 2
         WHEN area = 'unidade' AND link = 'agendamentos' THEN 3
         WHEN area = 'unidade' AND link = 'agendamento-manual' THEN 4
         WHEN area = 'unidade' AND link = 'pre-agendamentos' THEN 5
         WHEN area = 'unidade' AND link = 'pacientes' THEN 6
         WHEN area = 'unidade' AND link = 'medicos' THEN 7
         ELSE sort
       END
 WHERE @tiix_health_root_id IS NOT NULL
   AND menu = @menu_id
   AND (
        (area = 'empresa' AND link IN ('profissionais', 'disponibilidade', 'agendamentos', 'agendamento-manual', 'pre-agendamentos', 'pacientes', 'medicos'))
        OR
        (area = 'unidade' AND link IN ('agenda', 'profissionais', 'disponibilidade', 'agendamentos', 'agendamento-manual', 'pre-agendamentos', 'pacientes', 'medicos'))
   );

DELETE FROM wpjy_menus_items
 WHERE id IN (@empresa_nested_root_id, @unidade_nested_root_id)
   AND id IS NOT NULL
   AND NOT EXISTS (
     SELECT 1
       FROM (
         SELECT parent
           FROM wpjy_menus_items
       ) filhos
      WHERE filhos.parent IN (@empresa_nested_root_id, @unidade_nested_root_id)
   );

SELECT id, label, link, area, parent, sort, slug
  FROM wpjy_menus_items
 WHERE id = @tiix_health_root_id
    OR parent = @tiix_health_root_id
 ORDER BY area, sort, id;
