-- Script simplificado: Borrar tarotistas y copiar desde agentes
-- Fecha: 31/07/2025

-- 1. Backup
CREATE TABLE IF NOT EXISTS panel_tarot.tarotistas_backup_20250731 AS 
SELECT * FROM panel_tarot.tarotistas;

-- 2. Limpiar tabla
TRUNCATE TABLE panel_tarot.tarotistas;

-- 3. Copiar agentes
INSERT INTO panel_tarot.tarotistas (
    codigo_agente,
    extension,
    nombre,
    estado_actual,
    activo,
    valoracion,
    valoracion_visa
)
SELECT 
    usuario,
    usuario,
    nombre,
    CASE 
        WHEN estado_login = 0 THEN 'offline'
        WHEN estado_ocupacion = 1 THEN 'ocupado'
        WHEN dnd_status = 1 THEN 'pausa'
        ELSE 'disponible'
    END,
    activo,
    FLOOR(3 + RAND() * 3),
    FLOOR(3 + RAND() * 3)
FROM asterisk.agentes
WHERE activo = 1;

-- 4. Procedimiento de sincronización
DELIMITER $$

DROP PROCEDURE IF EXISTS panel_tarot.sync_estados$$
CREATE PROCEDURE panel_tarot.sync_estados()
BEGIN
    UPDATE panel_tarot.tarotistas t
    INNER JOIN asterisk.agentes a ON t.codigo_agente = a.usuario
    SET t.estado_actual = CASE 
        WHEN a.estado_login = 0 THEN 'offline'
        WHEN a.estado_ocupacion = 1 THEN 'ocupado'  
        WHEN a.dnd_status = 1 THEN 'pausa'
        ELSE 'disponible'
    END;
END$$

DELIMITER ;