-- ==========================================
-- SCRIPT DE BASE DE DATOS PARA SUPABASE
-- PROYECTO: WhatsApp Business IA (ASSEGURA AI - Paquete 4)
-- ==========================================

-- 1. Crear la tabla principal para el Paquete 4
CREATE TABLE IF NOT EXISTS paq4_whatsapp_business (
    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, -- Revisión de WhatsApp actual
    fase4_data JSONB DEFAULT '{}'::jsonb, -- Definición de alcance
    fase5_data JSONB DEFAULT '{}'::jsonb, -- Diseño conversacional
    fase6_data JSONB DEFAULT '{}'::jsonb, -- Preparación de base de conocimiento
    fase7_data JSONB DEFAULT '{}'::jsonb, -- Configuración técnica
    fase8_data JSONB DEFAULT '{}'::jsonb, -- Desarrollo de flujos
    fase9_data JSONB DEFAULT '{}'::jsonb, -- Integración con CRM/base de datos
    fase10_data JSONB DEFAULT '{}'::jsonb, -- Pruebas controladas
    fase11_data JSONB DEFAULT '{}'::jsonb, -- Lanzamiento gradual
    fase12_data JSONB DEFAULT '{}'::jsonb, -- Capacitación
    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 paq4_whatsapp_business ENABLE ROW LEVEL SECURITY;

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

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

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

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

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