-- Script para atualizar a tabela status_tecnicos existente
-- Execute este script no phpMyAdmin

-- 1. ADICIONAR COLUNAS FALTANTES
ALTER TABLE `status_tecnicos`
ADD COLUMN `status_conexao` ENUM('online', 'offline', 'ausente') DEFAULT 'online' AFTER `status`,
ADD COLUMN `latitude_atual` DECIMAL(10, 8) AFTER `status_conexao`,
ADD COLUMN `longitude_atual` DECIMAL(11, 8) AFTER `latitude_atual`,
ADD COLUMN `velocidade_atual` DECIMAL(5, 2) DEFAULT 0 AFTER `longitude_atual`,
ADD COLUMN `viagem_ativa` BIGINT NULL AFTER `velocidade_atual`,
ADD COLUMN `battery_level` INT DEFAULT NULL AFTER `viagem_ativa`,
ADD COLUMN `app_version` VARCHAR(20) DEFAULT NULL AFTER `battery_level`,
ADD COLUMN `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `app_version`,
ADD COLUMN `ultimo_ping` DATETIME DEFAULT CURRENT_TIMESTAMP AFTER `updated_at`;

-- 2. ADICIONAR ÍNDICES
ALTER TABLE `status_tecnicos`
ADD INDEX `idx_ping` (`ultimo_ping`),
ADD INDEX `idx_status` (`status_conexao`);

-- 3. MIGRAR DADOS EXISTENTES
UPDATE `status_tecnicos` SET
    `status_conexao` = CASE
        WHEN `status` = 'online' THEN 'online'
        WHEN `status` = 'offline' THEN 'offline'
        WHEN `status` = 'atrasado' THEN 'ausente'
        ELSE 'offline'
    END,
    `latitude_atual` = `ultima_latitude`,
    `longitude_atual` = `ultima_longitude`,
    `ultimo_ping` = `ultimo_update`;

-- 4. VERIFICAR RESULTADO
SELECT 'Tabela status_tecnicos atualizada com sucesso!' as resultado;
SELECT COUNT(*) as total_tecnicos FROM `status_tecnicos`;
SELECT 'Estrutura atualizada da tabela:' as info;
DESCRIBE `status_tecnicos`;
