-- ПРАВИЛЬНАЯ ЛОГИКА:
-- 'guest' = нажал "ПРОДОЛЖИТЬ КАК ГОСТЬ"
-- 'anonymous' = нажал "ПРОДОЛЖИТЬ"
-- 'employee' = сотрудник
-- 'hr' = HR-специалист

USE mvp_career;

-- Изменить ENUM на правильный (anonymous, guest, employee, hr)
ALTER TABLE sessions 
MODIFY COLUMN user_type ENUM('anonymous','guest','employee','hr') DEFAULT 'anonymous';

-- Обновить существующие записи:

-- 1. Если есть в user_data → 'anonymous' (нажал "ПРОДОЛЖИТЬ" с данными)
UPDATE sessions s
SET user_type = 'anonymous'
WHERE EXISTS (
    SELECT 1 FROM user_data ud WHERE ud.session_id = s.id
)
AND user_type NOT IN ('employee', 'hr');

-- 2. Если есть в guests → 'guest' (нажал "ПРОДОЛЖИТЬ КАК ГОСТЬ")
UPDATE sessions s
SET user_type = 'guest'
WHERE EXISTS (
    SELECT 1 FROM guests g WHERE g.session_id = s.id
)
AND user_type NOT IN ('employee', 'hr', 'anonymous');

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

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

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

