Ajuste Convenios e Particular
This commit is contained in:
58
src/sql-arquivos/06_insurance_plan_services_v2.sql
Normal file
58
src/sql-arquivos/06_insurance_plan_services_v2.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
-- Migration: 06_insurance_plan_services_v2
|
||||
-- Reestrutura insurance_plan_services para ser autônomo (sem FK para services)
|
||||
-- Adiciona campo name, active e remove service_id
|
||||
|
||||
-- Passo 1: remover a tabela antiga se existir e recriar do zero
|
||||
DROP TABLE IF EXISTS public.insurance_plan_services;
|
||||
|
||||
-- Passo 2: criar tabela nova autônoma
|
||||
CREATE TABLE public.insurance_plan_services (
|
||||
id uuid DEFAULT gen_random_uuid() NOT NULL,
|
||||
insurance_plan_id uuid NOT NULL,
|
||||
name text NOT NULL,
|
||||
value numeric(10,2) NOT NULL,
|
||||
active boolean DEFAULT true NOT NULL,
|
||||
created_at timestamptz DEFAULT now(),
|
||||
updated_at timestamptz DEFAULT now(),
|
||||
CONSTRAINT insurance_plan_services_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT insurance_plan_services_plan_fkey
|
||||
FOREIGN KEY (insurance_plan_id) REFERENCES public.insurance_plans(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Passo 3: RLS
|
||||
ALTER TABLE public.insurance_plan_services ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
DROP POLICY IF EXISTS "insurance_plan_services_owner" ON public.insurance_plan_services;
|
||||
CREATE POLICY "insurance_plan_services_owner"
|
||||
ON public.insurance_plan_services
|
||||
FOR ALL
|
||||
USING (
|
||||
EXISTS (
|
||||
SELECT 1 FROM public.insurance_plans ip
|
||||
WHERE ip.id = insurance_plan_services.insurance_plan_id
|
||||
AND ip.owner_id = auth.uid()
|
||||
)
|
||||
)
|
||||
WITH CHECK (
|
||||
EXISTS (
|
||||
SELECT 1 FROM public.insurance_plans ip
|
||||
WHERE ip.id = insurance_plan_services.insurance_plan_id
|
||||
AND ip.owner_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
-- Passo 4: grants
|
||||
GRANT ALL ON TABLE public.insurance_plan_services TO postgres;
|
||||
GRANT ALL ON TABLE public.insurance_plan_services TO anon;
|
||||
GRANT ALL ON TABLE public.insurance_plan_services TO authenticated;
|
||||
GRANT ALL ON TABLE public.insurance_plan_services TO service_role;
|
||||
|
||||
-- Passo 5: trigger updated_at
|
||||
DROP TRIGGER IF EXISTS set_insurance_plan_services_updated_at ON public.insurance_plan_services;
|
||||
CREATE TRIGGER set_insurance_plan_services_updated_at
|
||||
BEFORE UPDATE ON public.insurance_plan_services
|
||||
FOR EACH ROW EXECUTE FUNCTION public.set_updated_at();
|
||||
|
||||
-- Passo 6: adicionar campo active na tabela services (se ainda não existir)
|
||||
ALTER TABLE public.services
|
||||
ADD COLUMN IF NOT EXISTS active boolean DEFAULT true NOT NULL;
|
||||
Reference in New Issue
Block a user