-- ========================================================================== -- Agência PSI — Migração: tabela `patient_support_contacts` -- ========================================================================== -- Arquivo: supabase/migrations/20260328000004_create_patient_support_contacts.sql -- Criado por: Leonardo Nohama · 2026 · São Carlos/SP -- -- Contatos da rede de suporte do paciente. -- Alimenta o card "Contatos & rede de suporte" na tela de detalhe. -- is_primario = true → badge vermelho "emergência" no perfil. -- ========================================================================== CREATE TABLE IF NOT EXISTS public.patient_support_contacts ( id uuid DEFAULT gen_random_uuid() NOT NULL, patient_id uuid NOT NULL REFERENCES public.patients(id) ON DELETE CASCADE, owner_id uuid NOT NULL, tenant_id uuid NOT NULL, nome text, relacao text, -- Ex: mãe, psiquiatra, cônjuge tipo text, -- emergencia | familiar | profissional_saude | amigo | outro telefone text, email text, is_primario boolean DEFAULT false NOT NULL, created_at timestamptz DEFAULT now(), updated_at timestamptz DEFAULT now(), CONSTRAINT patient_support_contacts_pkey PRIMARY KEY (id) ); -- Índices CREATE INDEX IF NOT EXISTS psc_patient_idx ON public.patient_support_contacts USING btree (patient_id); CREATE INDEX IF NOT EXISTS psc_owner_idx ON public.patient_support_contacts USING btree (owner_id); -- Trigger updated_at CREATE TRIGGER trg_psc_updated_at BEFORE UPDATE ON public.patient_support_contacts FOR EACH ROW EXECUTE FUNCTION public.set_updated_at(); -- RLS ALTER TABLE public.patient_support_contacts ENABLE ROW LEVEL SECURITY; CREATE POLICY "psc: owner full access" ON public.patient_support_contacts USING (owner_id = auth.uid()) WITH CHECK (owner_id = auth.uid()); -- Comentários COMMENT ON TABLE public.patient_support_contacts IS 'Rede de suporte do paciente. Exibida no card "Contatos & rede de suporte" do perfil.'; COMMENT ON COLUMN public.patient_support_contacts.is_primario IS 'true = badge vermelho "emergência" no perfil do paciente.'; COMMENT ON COLUMN public.patient_support_contacts.tipo IS 'emergencia | familiar | profissional_saude | amigo | outro'; -- ========================================================================== -- FIM DA MIGRAÇÃO -- ==========================================================================