
export interface User {
    id: number;
    name: string;
    password: string;
    email: string;
    phone: string;
    role: string;
    date: string;
}

export interface Register {
    username: string;
    password: string;
    email: string;
}

/**
 * 
 *         "ID": 1,
        "CreatedAt": "2024-08-30T14:35:15.556734+08:00",
        "UpdatedAt": "2025-03-11T15:13:27.972681+08:00",
        "DeletedAt": null,
        "Name": "lijun",
        "Age": 24,
        "Email": "lijun@ljsea.top",
        "Password": "",
        "Gender": "男",
        "Role": "admin",
        "Redis": true,
        "Run": true,
        "Upload": true,
        "VideoFunc": true,
        "DeviceFunc": true,
        "CIDFunc": true,
        "Avatar": "https://gep.ljsea.top/tool/file/d5a17d88-1641-4666-a9e1-53fbb04a6abf.jpg",
        "CreateTime": "",
        "UpdateTime": ""
 */
export interface UserInfo {
    ID: number;
    CreatedAt: string;
    UpdatedAt: string;
    DeletedAt: string;
    Name: string;
    Password: string;
    Age: number;
    Email: string;
    Gender: string;
    Role: string;
    Avatar: string;
    password_need_second_auth: number; // 是否需要密码二次认证
    code_need_second_auth: number; // 是否需要验证码二次认证
    third_party_need_second_auth: number; // 是否需要第三方二次认证
    ai_second_auth: number; // 是否需要智能增强认证
}


export interface ThirdPartyUserInfo {
    // 对应 gorm.Model，由于 gorm.Model 一般包含创建时间、更新时间等字段，这里暂不详细展开，仅表示有公共的基础属性
    // 如果项目中有明确的基础属性定义，可以继承相应的基础接口
    // 这里假设基础属性为空，仅包含以下自定义属性
    ID: number; // 第三方用户ID
    CreatedAt: string; // 创建时间
    UpdatedAt: string; // 更新时间
    DeletedAt: string; // 删除时间
    user_id: number; // 用户ID,本系统的用户id
    third_party_id: number; // 第三方用户ID
    third_party_platform: string; // 第三方平台名称,qq,github
    third_party_user_name: string; // 第三方用户名
    third_party_user_avatar: string; // 第三方用户头像
    third_party_user_url: string; // 第三方用户主页,可选
}

// {
//         "user_id": 0,
//         "theme": "",
//         "language": "",
//         "font_size": 0,
//         "gen_ai_function": {
//             "model_id": 0,
//             "session_id": 0
//         },
//         "k_base_function": {
//             "model_id": 0,
//             "session_id": 0
//         }
//     }

export interface UserUISettings {
    user_id: number; // 用户ID
    theme: string; // 主题
    language: string; // 语言
    font_size: number; // 字体大小
    gen_ai_function: {
        model_id: number; // 模型ID
        session_id: number; // 会话ID
        temperature: number; // 温度
        top_p: number; // 采样范围
    };
    k_base_function: {
        model_id: number; // 模型ID
        session_id: number; // 会话ID
    };
}

// {
//         "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDgwODg2MDIsImlkIjoxLCJ0eXBlIjoiYWNjZXNzIiwidXNlcm5hbWUiOiJsaWp1biJ9.HJDV_GLkHCEh77GU1tEExmq1RBVv_mYwfQAUEdIFoKw",
//         "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDg2ODk4MDIsImlkIjoxLCJ0eXBlIjoicmVmcmVzaCJ9.bDO7a7KLNmI9-EVkVmcEebRVD0-5p-Uq7sThRd-NFqA",
//         "user_id": 1,
//         "username": "lijun",
//         "email": "lijun@ljsea.top"
//     },

export interface UserToken {
    access_token: string; // 访问令牌
    refresh_token: string; // 刷新令牌
    user_id: number; // 用户ID
    username: string; // 用户名
    email: string; // 用户邮箱
}