-- Tabla para almacenar códigos temporales de verificación
CREATE TABLE IF NOT EXISTS codigos_verificacion (
    id SERIAL PRIMARY KEY,
    correo VARCHAR(255) NOT NULL,
    codigo VARCHAR(10) NOT NULL,
    tipo VARCHAR(50) DEFAULT 'RECUPERACION_PASSWORD', -- RECUPERACION, VALIDACION_EMAIL, etc.
    expira_en TIMESTAMP WITH TIME ZONE NOT NULL,
    usado BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Índice para búsqueda rápida por correo y código
CREATE INDEX IF NOT EXISTS idx_codigos_correo_codigo ON codigos_verificacion(correo, codigo);

-- Asegurar que la tabla usuarios tenga campo profile_image_url si no se usa relación
-- ALTER TABLE usuarios ADD COLUMN IF NOT EXISTS profile_image_url VARCHAR(255);
-- (Vamos a usar la relación existente con Archivos, pero si se requiere simplificar para la app, se podría desnormalizar. 
-- Por ahora seguimos la lógica de ArtSchool de User -> Archivos)
