From 7543afb56f260d34353760bd0a5887c8d529c4b7 Mon Sep 17 00:00:00 2001 From: "Roberto.silva" Date: Wed, 4 Mar 2026 09:31:30 -0600 Subject: [PATCH] Se resuelve conflicto --- supabase/config.toml | 4 +- .../20260304152704_plantilla_asignatura.sql | 192 ++++++++++++++++++ 2 files changed, 193 insertions(+), 3 deletions(-) create mode 100644 supabase/migrations/20260304152704_plantilla_asignatura.sql diff --git a/supabase/config.toml b/supabase/config.toml index 385904c..69f4f4d 100644 --- a/supabase/config.toml +++ b/supabase/config.toml @@ -49,11 +49,10 @@ entrypoint = "./functions/generate-subject-suggestions/index.ts" # For example, if you want to serve static HTML pages in your function: # static_files = [ "./functions/generate-subject-suggestions/*.html" ] -<<<<<<< HEAD [auth.hook.custom_access_token] enabled = true uri = "pg-functions://postgres/public/custom_access_token_hook" -======= + [functions.openai-webhook-responses] enabled = true verify_jwt = true @@ -64,4 +63,3 @@ entrypoint = "./functions/openai-webhook-responses/index.ts" # Specifies static files to be bundled with the function. Supports glob patterns. # For example, if you want to serve static HTML pages in your function: # static_files = [ "./functions/openai-webhook-responses/*.html" ] ->>>>>>> d7312d2ab35d71953572b570595b84cab1804dfc diff --git a/supabase/migrations/20260304152704_plantilla_asignatura.sql b/supabase/migrations/20260304152704_plantilla_asignatura.sql new file mode 100644 index 0000000..3fdc3f7 --- /dev/null +++ b/supabase/migrations/20260304152704_plantilla_asignatura.sql @@ -0,0 +1,192 @@ +create type "public"."estado_mensaje_ia" as enum ('PROCESANDO', 'COMPLETADO', 'ERROR'); + +alter table "public"."asignaturas" alter column "estado" drop default; + +alter type "public"."estado_asignatura" rename to "estado_asignatura__old_version_to_be_dropped"; + +create type "public"."estado_asignatura" as enum ('borrador', 'revisada', 'aprobada', 'generando'); + + + create table "public"."asignatura_mensajes_ia" ( + "id" uuid not null default gen_random_uuid(), + "enviado_por" uuid not null default auth.uid(), + "mensaje" text not null, + "campos" text[] not null default '{}'::text[], + "respuesta" text, + "is_refusal" boolean not null default false, + "propuesta" jsonb, + "estado" public.estado_mensaje_ia not null default 'PROCESANDO'::public.estado_mensaje_ia, + "fecha_creacion" timestamp without time zone not null default now(), + "fecha_actualizacion" timestamp without time zone not null default now(), + "conversacion_asignatura_id" uuid not null + ); + + + + create table "public"."plan_mensajes_ia" ( + "id" uuid not null default gen_random_uuid(), + "enviado_por" uuid not null default auth.uid(), + "mensaje" text not null, + "campos" text[] not null default '{}'::text[], + "respuesta" text, + "is_refusal" boolean not null default false, + "propuesta" jsonb, + "estado" public.estado_mensaje_ia not null default 'PROCESANDO'::public.estado_mensaje_ia, + "fecha_creacion" timestamp without time zone not null default now(), + "fecha_actualizacion" timestamp without time zone not null default now(), + "conversacion_plan_id" uuid not null + ); + + +alter table "public"."asignaturas" alter column estado type "public"."estado_asignatura" using estado::text::"public"."estado_asignatura"; + +alter table "public"."asignaturas" alter column "estado" set default 'borrador'::public.estado_asignatura; + +drop type "public"."estado_asignatura__old_version_to_be_dropped"; + +alter table "public"."estructuras_asignatura" drop column "version"; + +alter table "public"."estructuras_asignatura" add column "template_id" text; + +alter table "public"."estructuras_asignatura" add column "tipo" public.tipo_estructura_plan; + +CREATE UNIQUE INDEX asignatura_mensajes_ia_pkey ON public.asignatura_mensajes_ia USING btree (id); + +CREATE UNIQUE INDEX plan_mensajes_ia_pkey ON public.plan_mensajes_ia USING btree (id); + +alter table "public"."asignatura_mensajes_ia" add constraint "asignatura_mensajes_ia_pkey" PRIMARY KEY using index "asignatura_mensajes_ia_pkey"; + +alter table "public"."plan_mensajes_ia" add constraint "plan_mensajes_ia_pkey" PRIMARY KEY using index "plan_mensajes_ia_pkey"; + +alter table "public"."asignatura_mensajes_ia" add constraint "asignatura_mensajes_ia_conversacion_asignatura_id_fkey" FOREIGN KEY (conversacion_asignatura_id) REFERENCES public.conversaciones_asignatura(id) ON DELETE CASCADE not valid; + +alter table "public"."asignatura_mensajes_ia" validate constraint "asignatura_mensajes_ia_conversacion_asignatura_id_fkey"; + +alter table "public"."plan_mensajes_ia" add constraint "plan_mensajes_ia_conversacion_plan_id_fkey" FOREIGN KEY (conversacion_plan_id) REFERENCES public.conversaciones_plan(id) ON DELETE CASCADE not valid; + +alter table "public"."plan_mensajes_ia" validate constraint "plan_mensajes_ia_conversacion_plan_id_fkey"; + +create or replace view "public"."plantilla_asignatura" as SELECT asignaturas.id AS asignatura_id, + struct.id AS estructura_id, + struct.template_id + FROM (public.asignaturas + JOIN public.estructuras_asignatura struct ON ((asignaturas.estructura_id = struct.id))); + + +grant delete on table "public"."asignatura_mensajes_ia" to "anon"; + +grant insert on table "public"."asignatura_mensajes_ia" to "anon"; + +grant references on table "public"."asignatura_mensajes_ia" to "anon"; + +grant select on table "public"."asignatura_mensajes_ia" to "anon"; + +grant trigger on table "public"."asignatura_mensajes_ia" to "anon"; + +grant truncate on table "public"."asignatura_mensajes_ia" to "anon"; + +grant update on table "public"."asignatura_mensajes_ia" to "anon"; + +grant delete on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant insert on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant references on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant select on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant trigger on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant truncate on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant update on table "public"."asignatura_mensajes_ia" to "authenticated"; + +grant delete on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant insert on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant references on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant select on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant trigger on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant truncate on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant update on table "public"."asignatura_mensajes_ia" to "postgres"; + +grant delete on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant insert on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant references on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant select on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant trigger on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant truncate on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant update on table "public"."asignatura_mensajes_ia" to "service_role"; + +grant delete on table "public"."plan_mensajes_ia" to "anon"; + +grant insert on table "public"."plan_mensajes_ia" to "anon"; + +grant references on table "public"."plan_mensajes_ia" to "anon"; + +grant select on table "public"."plan_mensajes_ia" to "anon"; + +grant trigger on table "public"."plan_mensajes_ia" to "anon"; + +grant truncate on table "public"."plan_mensajes_ia" to "anon"; + +grant update on table "public"."plan_mensajes_ia" to "anon"; + +grant delete on table "public"."plan_mensajes_ia" to "authenticated"; + +grant insert on table "public"."plan_mensajes_ia" to "authenticated"; + +grant references on table "public"."plan_mensajes_ia" to "authenticated"; + +grant select on table "public"."plan_mensajes_ia" to "authenticated"; + +grant trigger on table "public"."plan_mensajes_ia" to "authenticated"; + +grant truncate on table "public"."plan_mensajes_ia" to "authenticated"; + +grant update on table "public"."plan_mensajes_ia" to "authenticated"; + +grant delete on table "public"."plan_mensajes_ia" to "postgres"; + +grant insert on table "public"."plan_mensajes_ia" to "postgres"; + +grant references on table "public"."plan_mensajes_ia" to "postgres"; + +grant select on table "public"."plan_mensajes_ia" to "postgres"; + +grant trigger on table "public"."plan_mensajes_ia" to "postgres"; + +grant truncate on table "public"."plan_mensajes_ia" to "postgres"; + +grant update on table "public"."plan_mensajes_ia" to "postgres"; + +grant delete on table "public"."plan_mensajes_ia" to "service_role"; + +grant insert on table "public"."plan_mensajes_ia" to "service_role"; + +grant references on table "public"."plan_mensajes_ia" to "service_role"; + +grant select on table "public"."plan_mensajes_ia" to "service_role"; + +grant trigger on table "public"."plan_mensajes_ia" to "service_role"; + +grant truncate on table "public"."plan_mensajes_ia" to "service_role"; + +grant update on table "public"."plan_mensajes_ia" to "service_role"; + +drop trigger if exists "protect_buckets_delete" on "storage"."buckets"; + +drop trigger if exists "protect_objects_delete" on "storage"."objects"; + +