-- 004_grant_admin_to_admin_mail.sql
-- Миграция: Назначение прав администратора пользователю admin@mail.ru

-- Обновляем пользователя admin@mail.ru, давая ему права администратора
UPDATE users 
SET is_admin = TRUE,
    is_active = TRUE,
    updated_at = CURRENT_TIMESTAMP
WHERE email = 'admin@mail.ru';

-- Проверяем результат
DO $$
DECLARE
    updated_count INTEGER;
    user_info RECORD;
BEGIN
    GET DIAGNOSTICS updated_count = ROW_COUNT;
    
    IF updated_count > 0 THEN
        -- Получаем информацию об обновленном пользователе
        SELECT user_id, email, full_name, is_admin, is_active
        INTO user_info
        FROM users
        WHERE email = 'admin@mail.ru';
        
        RAISE NOTICE 'Пользователь % (ID: %) успешно получил права администратора', 
                     user_info.email, user_info.user_id;
        RAISE NOTICE 'ФИО: %, Админ: %, Активен: %', 
                     user_info.full_name, user_info.is_admin, user_info.is_active;
    ELSE
        -- Если пользователь не найден, создаем его с правами админа
        INSERT INTO users (email, password_hash, full_name, phone, city, is_admin, is_active)
        VALUES (
            'admin@mail.ru',
            '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', -- admin123
            'Администратор',
            '+79129991223',
            'Москва',
            TRUE,
            TRUE
        )
        ON CONFLICT (email) DO UPDATE
        SET is_admin = TRUE,
            is_active = TRUE,
            updated_at = CURRENT_TIMESTAMP;
        
        RAISE NOTICE 'Пользователь admin@mail.ru создан/обновлен с правами администратора';
    END IF;
END $$;

