-- ФИНАЛЬНОЕ ИСПРАВЛЕНИЕ: Переход с anonymous на guest/user/employee/hr
-- В 3 шага, чтобы избежать ошибок Data truncated

USE mvp_career;

-- ШАГ 1: Добавить 'guest' и 'user' к существующему ENUM (временно)
ALTER TABLE sessions 
MODIFY COLUMN user_type ENUM('anonymous','guest','user','employee','hr') DEFAULT 'guest';

-- ШАГ 2: Обновить все 'anonymous' → 'guest'
UPDATE sessions 
SET user_type = 'guest'
WHERE user_type = 'anonymous';

-- ШАГ 3: Теперь обновить типы по логике бизнеса:

-- 3.1. Если есть в user_data (заполнил данные) → 'user' (потенциальный клиент)
UPDATE sessions s
SET user_type = 'user'
WHERE EXISTS (
    SELECT 1 FROM user_data ud WHERE ud.session_id = s.id
)
AND user_type NOT IN ('employee', 'hr');

-- 3.2. Если есть в corporate_employees → 'employee'
UPDATE sessions s
SET user_type = 'employee'
WHERE EXISTS (
    SELECT 1 FROM corporate_employees ce WHERE ce.session_id = s.id
);

-- 3.3. Если есть в hr_users → 'hr'
UPDATE sessions s
SET user_type = 'hr'
WHERE EXISTS (
    SELECT 1 FROM hr_users hr WHERE hr.session_id = s.id
);

-- ШАГ 4: Удалить 'anonymous' из ENUM (финальный вариант)
ALTER TABLE sessions 
MODIFY COLUMN user_type ENUM('guest','user','employee','hr') DEFAULT 'guest';

-- Проверка результата
SELECT 
    CASE 
        WHEN user_type = 'guest' THEN '👤 Гость/Аноним'
        WHEN user_type = 'user' THEN '💎 Пользователь'
        WHEN user_type = 'employee' THEN '🏢 Сотрудник'
        WHEN user_type = 'hr' THEN '👔 HR-специалист'
        ELSE '❓ Неизвестно'
    END as type_label,
    user_type,
    COUNT(*) as total
FROM sessions
GROUP BY user_type
ORDER BY 
    FIELD(user_type, 'guest', 'user', 'employee', 'hr');

