-- 2026-04-15
-- Libera visualizacao de Medicos e Nutricionistas em TIIXHEALTH
-- para empresa, assistentes de unidade, profissionais e tiix.
-- O backend ja aplica recorte operacional por empresa/unidade/profissional.

START TRANSACTION;

-- 1) Garantir permissao de menu de Medicos
INSERT INTO wpjy_permissoes (slug, nome, descricao, id_tela, tipo)
SELECT 'menu.admin.medicos', 'Menu - Medicos', 'Exibir item Medicos em TIIXHEALTH', NULL, 'menu'
WHERE NOT EXISTS (
  SELECT 1 FROM wpjy_permissoes WHERE slug = 'menu.admin.medicos'
);

-- 2) Garantir permissoes de visualizacao caso o ambiente ainda nao tenha
INSERT INTO wpjy_permissoes (slug, nome, descricao, id_tela, tipo)
SELECT 'acl.parceiros.profissionais.visualizar', 'Profissionais - Visualizar', 'Visualizar listagens de profissionais clinicos', NULL, 'acl'
WHERE NOT EXISTS (
  SELECT 1 FROM wpjy_permissoes WHERE slug = 'acl.parceiros.profissionais.visualizar'
);

INSERT INTO wpjy_permissoes (slug, nome, descricao, id_tela, tipo)
SELECT 'acl.parceiros.nutricionistas.visualizar', 'Nutricionistas - Visualizar', 'Visualizar listagens de nutricionistas', NULL, 'acl'
WHERE NOT EXISTS (
  SELECT 1 FROM wpjy_permissoes WHERE slug = 'acl.parceiros.nutricionistas.visualizar'
);

-- 3) Liberar somente leitura para os grupos operacionais corretos
INSERT INTO wpjy_grupo_permissao (id_grupo, id_permissao)
SELECT g.id, p.id
  FROM wpjy_grupos_permissoes g
  JOIN wpjy_permissoes p
    ON p.slug IN (
      'menu.admin.medicos',
      'acl.parceiros.profissionais.visualizar',
      'acl.parceiros.nutricionistas.visualizar'
    )
 WHERE g.slug IN (
   'tiix',
   'empresa',
   'assistentes-unidade',
   'profissionais'
 )
   AND NOT EXISTS (
     SELECT 1
       FROM wpjy_grupo_permissao gp
      WHERE gp.id_grupo = g.id
        AND gp.id_permissao = p.id
   );

COMMIT;

SELECT p.slug, g.slug AS group_slug, g.id_contrato
  FROM wpjy_grupo_permissao gp
  JOIN wpjy_grupos_permissoes g ON g.id = gp.id_grupo
  JOIN wpjy_permissoes p ON p.id = gp.id_permissao
 WHERE p.slug IN (
   'menu.admin.medicos',
   'acl.parceiros.profissionais.visualizar',
   'acl.parceiros.nutricionistas.visualizar'
 )
   AND g.slug IN (
     'tiix',
     'empresa',
     'assistentes-unidade',
     'profissionais'
   )
 ORDER BY p.slug, g.slug, g.id_contrato;
