diff --git a/src/integrations/supabase/types.ts b/src/integrations/supabase/types.ts index 7d2b0f3..2cbfb13 100644 --- a/src/integrations/supabase/types.ts +++ b/src/integrations/supabase/types.ts @@ -1473,6 +1473,33 @@ export type Database = { } Relationships: [] } + form_settings: { + Row: { + config: Json + created_at: string + form_key: string + id: string + updated_at: string + updated_by: string | null + } + Insert: { + config?: Json + created_at?: string + form_key: string + id?: string + updated_at?: string + updated_by?: string | null + } + Update: { + config?: Json + created_at?: string + form_key?: string + id?: string + updated_at?: string + updated_by?: string | null + } + Relationships: [] + } generated_documents: { Row: { body: string | null diff --git a/supabase/migrations/20260418164038_ec776a26-9dc6-4b5b-bc29-2f3a362a6a49.sql b/supabase/migrations/20260418164038_ec776a26-9dc6-4b5b-bc29-2f3a362a6a49.sql new file mode 100644 index 0000000..c83a750 --- /dev/null +++ b/supabase/migrations/20260418164038_ec776a26-9dc6-4b5b-bc29-2f3a362a6a49.sql @@ -0,0 +1,27 @@ + +CREATE TABLE public.form_settings ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + form_key text NOT NULL UNIQUE, + config jsonb NOT NULL DEFAULT '{}'::jsonb, + updated_by uuid, + created_at timestamptz NOT NULL DEFAULT now(), + updated_at timestamptz NOT NULL DEFAULT now() +); + +ALTER TABLE public.form_settings ENABLE ROW LEVEL SECURITY; + +CREATE POLICY form_settings_select_auth ON public.form_settings + FOR SELECT TO authenticated USING (true); + +CREATE POLICY form_settings_insert_admin ON public.form_settings + FOR INSERT TO authenticated WITH CHECK (public.is_admin(auth.uid())); + +CREATE POLICY form_settings_update_admin ON public.form_settings + FOR UPDATE TO authenticated USING (public.is_admin(auth.uid())); + +CREATE POLICY form_settings_delete_admin ON public.form_settings + FOR DELETE TO authenticated USING (public.is_admin(auth.uid())); + +CREATE TRIGGER tg_form_settings_updated_at + BEFORE UPDATE ON public.form_settings + FOR EACH ROW EXECUTE FUNCTION public.tg_set_updated_at();