38 lines
1.1 KiB
PL/PgSQL
38 lines
1.1 KiB
PL/PgSQL
-- ============================================================
|
|
-- Fix: cria função seed_default_patient_groups
|
|
-- Colunas reais: nome, cor, descricao, tenant_id (NOT NULL)
|
|
-- ============================================================
|
|
|
|
CREATE OR REPLACE FUNCTION public.seed_default_patient_groups(p_tenant_id uuid)
|
|
RETURNS void
|
|
LANGUAGE plpgsql
|
|
SECURITY DEFINER
|
|
SET search_path = public
|
|
AS $$
|
|
DECLARE
|
|
v_owner_id uuid;
|
|
BEGIN
|
|
-- busca o owner (tenant_admin) do tenant
|
|
SELECT user_id INTO v_owner_id
|
|
FROM public.tenant_members
|
|
WHERE tenant_id = p_tenant_id
|
|
AND role = 'tenant_admin'
|
|
AND status = 'active'
|
|
LIMIT 1;
|
|
|
|
IF v_owner_id IS NULL THEN
|
|
RETURN;
|
|
END IF;
|
|
|
|
INSERT INTO public.patient_groups (owner_id, nome, cor, is_system, tenant_id)
|
|
VALUES
|
|
(v_owner_id, 'Crianças', '#60a5fa', true, p_tenant_id),
|
|
(v_owner_id, 'Adolescentes', '#a78bfa', true, p_tenant_id),
|
|
(v_owner_id, 'Idosos', '#34d399', true, p_tenant_id)
|
|
ON CONFLICT (owner_id, nome) DO NOTHING;
|
|
END;
|
|
$$;
|
|
|
|
GRANT EXECUTE ON FUNCTION public.seed_default_patient_groups(uuid)
|
|
TO postgres, anon, authenticated, service_role;
|