-- ==========================================
-- SCRIPT DE BASE DE DATOS PARA SUPABASE
-- PROYECTO: Automatización Comercial IA (ASSEGURA AI - Paquete 5)
-- ==========================================

-- 1. Crear la tabla principal para el Paquete 5
CREATE TABLE IF NOT EXISTS paq5_automatizacion_comercial (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    cliente_nombre VARCHAR(255) NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    fase_actual INT DEFAULT 1,
    estado VARCHAR(50) DEFAULT 'en_progreso', -- 'en_progreso' o 'completado'
    
    -- Datos estructurados por fase (JSONB para flexibilidad de datos)
    fase1_data JSONB DEFAULT '{}'::jsonb, -- Contacto y validación del caso
    fase2_data JSONB DEFAULT '{}'::jsonb, -- Reunión de descubrimiento
    fase3_data JSONB DEFAULT '{}'::jsonb, -- Diagnóstico del flujo actual
    fase4_data JSONB DEFAULT '{}'::jsonb, -- Definición del pipeline comercial
    fase5_data JSONB DEFAULT '{}'::jsonb, -- Diseño de captura de leads
    fase6_data JSONB DEFAULT '{}'::jsonb, -- Diseño de calificación con IA
    fase7_data JSONB DEFAULT '{}'::jsonb, -- Configuración CRM/base comercial
    fase8_data JSONB DEFAULT '{}'::jsonb, -- Automatización de seguimiento
    fase9_data JSONB DEFAULT '{}'::jsonb, -- Integraciones
    fase10_data JSONB DEFAULT '{}'::jsonb, -- Pruebas comerciales
    fase11_data JSONB DEFAULT '{}'::jsonb, -- Publicación operativa
    fase12_data JSONB DEFAULT '{}'::jsonb, -- Capacitación comercial
    fase13_data JSONB DEFAULT '{}'::jsonb, -- Monitoreo inicial
    fase14_data JSONB DEFAULT '{}'::jsonb  -- Conversión comercial
);

-- 2. Habilitar el soporte de Row Level Security (RLS)
ALTER TABLE paq5_automatizacion_comercial ENABLE ROW LEVEL SECURITY;

-- 3. Crear políticas de seguridad para permitir el acceso (Lectura/Escritura)
CREATE POLICY "Permitir lectura de automatizacion_comercial" 
ON paq5_automatizacion_comercial FOR SELECT 
USING (true);

CREATE POLICY "Permitir creación de automatizacion_comercial" 
ON paq5_automatizacion_comercial FOR INSERT 
WITH CHECK (true);

CREATE POLICY "Permitir actualización de automatizacion_comercial" 
ON paq5_automatizacion_comercial FOR UPDATE 
USING (true);

CREATE POLICY "Permitir eliminación de automatizacion_comercial" 
ON paq5_automatizacion_comercial FOR DELETE 
USING (true);

-- 4. Crear el trigger para actualizar la columna updated_at
DROP TRIGGER IF EXISTS update_paq5_automatizacion_comercial_updated_at ON paq5_automatizacion_comercial;
CREATE TRIGGER update_paq5_automatizacion_comercial_updated_at
    BEFORE UPDATE ON paq5_automatizacion_comercial
    FOR EACH ROW
    EXECUTE FUNCTION update_updated_at_column();
