INSERT INTO pbx_grupo (gp_id, gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao)
VALUES  ('-1', 'DEVELOPERS', 1, 0, 0, 1, 'Grupo para teste desenvolvimento');

-- Cria a funcao para facilitar a insercao dos dados do grupo das licencas.
CREATE OR REPLACE FUNCTION inserir_dados_licenca_grupos(grupo_nome text, funcao_ids integer[])
RETURNS VOID AS
$$
DECLARE
  grupo_id integer;
BEGIN
  SELECT gp_id INTO grupo_id
  FROM pbx_grupo
  WHERE gp_nome = grupo_nome;
  
  IF grupo_id IS NOT NULL THEN
    INSERT INTO pbx_grupo_funcoes (gp_id, fun_id)
    SELECT grupo_id, unnest(funcao_ids);
  ELSE
    RAISE EXCEPTION 'Grupo nao encontrado: %', grupo_nome;
  END IF;
END;
$$
LANGUAGE plpgsql;

-- Chama a funcao passando o nome do grupo e a lista de funcoes associadas.
--delete from pbx_grupo_funcoes where gp_id = '-1';
SELECT inserir_dados_licenca_grupos('DEVELOPERS', ARRAY[1,2,3,4,5,7,8,9,10,11,12,13,15,16,17,18,19,21,22,23,24,25,27,28,29,31,
                                        33,34,36,39,40,41,42,43,44,45,46,47,48,108,49,52,53,54,55,56,58,61,62,
                                        63,64,65,66,69,70,71,72,73,75,76,77,78,80,81,82,83,84,86,89,90,91,92,93,
                                        94,96,97,98,99,100,101,102,105,106,107,109,110,111,112,113,114,115,116,117,118,
                                        119,120,122,125,126,127,128,129,130,131,132,135,137,138,140,141,142,143,144,
                                        145,146,147,148,149,150,151,152,154,155,156,157,158,159,160,161,162,163,166,
                                        167,168,169,170,172,175,186,187,188,189,190,191,192,193,194,196,197,198,199,
                                        200,202,203,204,205,208,209,210,211,212,213,214,217,218,219,220,222]
);

-- Exclui a funcao do banco.
DROP FUNCTION IF EXISTS inserir_dados_licenca_grupos(text, integer[]);


