-- Migration: Cambiar imagen_url por fk_id_archivo en la tabla notificaciones
-- Fecha: 2025-01-XX
-- Descripción: Reemplaza el campo imagen_url por una clave foránea fk_id_archivo que referencia a la tabla archivos

-- 1. Agregar columna fk_id_archivo si no existe
DO $$
BEGIN
    IF NOT EXISTS (
        SELECT 1
        FROM information_schema.columns
        WHERE table_name = 'notificaciones'
        AND column_name = 'fk_id_archivo'
    ) THEN
        ALTER TABLE "public"."notificaciones"
        ADD COLUMN "fk_id_archivo" int4;

        -- Agregar constraint de clave foránea
        ALTER TABLE "public"."notificaciones"
        ADD CONSTRAINT "fk_notificacion_archivo"
        FOREIGN KEY ("fk_id_archivo")
        REFERENCES "public"."archivos" ("id_archivo")
        ON DELETE SET NULL;

        -- Comentario en la columna
        COMMENT ON COLUMN "public"."notificaciones"."fk_id_archivo" IS 'Referencia al archivo de imagen de la notificación';
    END IF;
END $$;

-- 2. Migrar datos existentes de imagen_url a fk_id_archivo (si hay datos)
-- Nota: Esto requiere que las URLs existentes puedan mapearse a archivos en la tabla archivos
-- Por ahora, solo agregamos la columna. La migración de datos debe hacerse manualmente si es necesario.

-- 3. Eliminar columna imagen_url si existe (opcional, comentado por seguridad)
-- DO $$
-- BEGIN
--     IF EXISTS (
--         SELECT 1
--         FROM information_schema.columns
--         WHERE table_name = 'notificaciones'
--         AND column_name = 'imagen_url'
--     ) THEN
--         ALTER TABLE "public"."notificaciones"
--         DROP COLUMN "imagen_url";
--     END IF;
-- END $$;

