-- 为测试用户添加默认角色的脚本
-- 测试用户信息：sub='001', username='testuser1'

-- 首先查找测试用户
DO $$
DECLARE
    test_user_id uuid;
    existing_role_count integer;
BEGIN
    -- 查找测试用户的ID
    SELECT id INTO test_user_id 
    FROM sso_users 
    WHERE sub = '001' AND username = 'testuser1';
    
    IF test_user_id IS NOT NULL THEN
        -- 检查用户是否已经有common角色（role_id = 2）
        SELECT COUNT(*) INTO existing_role_count
        FROM user_role 
        WHERE user_id = test_user_id AND role_id = 2;
        
        IF existing_role_count = 0 THEN
            -- 为用户添加common角色
            INSERT INTO user_role (user_id, role_id) 
            VALUES (test_user_id, 2);
            
            RAISE NOTICE '已为测试用户（%）添加默认角色（common）', test_user_id;
        ELSE
            RAISE NOTICE '测试用户（%）已经拥有默认角色（common）', test_user_id;
        END IF;
    ELSE
        RAISE NOTICE '测试用户不存在，请先创建用户';
    END IF;
END $$;

-- 验证结果
SELECT 
    u.id,
    u.sub,
    u.username,
    u.nick_name,
    r.role_key,
    r.role_name
FROM sso_users u
LEFT JOIN user_role ur ON u.id = ur.user_id
LEFT JOIN roles r ON ur.role_id = r.id
WHERE u.sub = '001' AND u.username = 'testuser1'; 