import { requestClient } from '@/api/request' /** * 性别枚举 * * 对应 OpenAPI: Sex (x-enums) * 1 = 男,2 = 女 */ export const Sex = { /** 男 */ MALE: 1, /** 女 */ FEMALE: 2 } as const /** 性别类型 */ export type SexType = (typeof Sex)[keyof typeof Sex] /** * 用户信息响应 * * 对应 OpenAPI: UserInfoResponse * 所有字段均为可选,部分字段可能为 null */ /** 在线状态枚举 */ export const UserStatus = { ONLINE: 'ONLINE', AWAY: 'AWAY', DND: 'DND', INVISIBLE: 'INVISIBLE' } as const /** 在线状态类型 */ export type UserStatusType = (typeof UserStatus)[keyof typeof UserStatus] export interface UserInfoResponse { /** 用户唯一标识(UUID) */ userId?: string /** 用户昵称,最长 16 位 */ nickName?: string /** 头像图片 URL 地址,可能为 null */ avatar?: string | null /** 个性签名,最长 64 位,可能为 null */ signature?: string | null /** 年龄,可能为 null */ age?: number | null /** 性别:1=男,2=女,可能为 null */ sex?: SexType | null /** 生日(ISO 8601 日期格式),可能为 null */ birthday?: string | null /** 在线状态:ONLINE / AWAY / DND / INVISIBLE */ status?: UserStatusType } /** 更新在线状态请求 */ export interface UpdateStatusRequest { /** 状态值:ONLINE、AWAY、DND、INVISIBLE */ status: UserStatusType } /** * 获取当前登录用户信息 * * 根据请求头中的 saToken 获取当前登录用户的详细信息。 * 需登录认证。 * * @returns 当前登录用户的详细信息 */ export function getUserInfo() { return requestClient.get('/user/info') } /** * 更新当前登录用户在线状态 * * @param data - 状态更新请求 */ export function updateStatus(data: UpdateStatusRequest) { return requestClient.patch('/user/status', data) }