-- ==========================================
-- SCRIPT DE BASE DE DATOS PARA SUPABASE
-- PROYECTO: HSE & Risk Intelligence (ASSEGURA AI - Paquete 9)
-- ==========================================

-- 1. Crear la tabla principal para el Paquete 9
CREATE TABLE IF NOT EXISTS paq9_hse_risk_intelligence (
    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
    fase1_data JSONB DEFAULT '{}'::jsonb,
    fase2_data JSONB DEFAULT '{}'::jsonb,
    fase3_data JSONB DEFAULT '{}'::jsonb,
    fase4_data JSONB DEFAULT '{}'::jsonb,
    fase5_data JSONB DEFAULT '{}'::jsonb,
    fase6_data JSONB DEFAULT '{}'::jsonb,
    fase7_data JSONB DEFAULT '{}'::jsonb,
    fase8_data JSONB DEFAULT '{}'::jsonb,
    fase9_data JSONB DEFAULT '{}'::jsonb,
    fase10_data JSONB DEFAULT '{}'::jsonb,
    fase11_data JSONB DEFAULT '{}'::jsonb,
    fase12_data JSONB DEFAULT '{}'::jsonb,
    fase13_data JSONB DEFAULT '{}'::jsonb,
    fase14_data JSONB DEFAULT '{}'::jsonb,
    fase15_data JSONB DEFAULT '{}'::jsonb,
    fase16_data JSONB DEFAULT '{}'::jsonb,
    fase17_data JSONB DEFAULT '{}'::jsonb,
    fase18_data JSONB DEFAULT '{}'::jsonb
);

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

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

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

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

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

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