import { SystemTimeMapper } from "./DataBean";
import { ApiManager } from '@ohos/common/src/main/ets/provider/ApiManager';
import { TimeSync } from "@ohos/common/src/main/ets/provider/RequestInterceptor";

export class UserService {
  /**
   * 获取用户资料
   * 内部会自动走 unsafeRetrofit 的签名和解密逻辑
   */
  // static async getUserInfo(userId: string): Promise<UserProfile> {
  //   // 获取你在 initialize 中配置好的不安全实例
  //   const service = ApiManager.getInstance().getUnsafeService();
  //
  //   // axios.get<T, R>(url, config)
  //   // T 是返回数据的类型，R 是 AxiosResponse 的包装类型
  //   const response = await service.get<BaseResponse<UserProfile>>('/api/v1/user/profile', {
  //     params: { "uid": userId }
  //   });
  //
  //   // 拦截器已经处理过解密和 BaseResponse 的解包
  //   // 此时 response.data 已经是解密并 parse 后的 UserProfile 对象
  //   return response.data.data;
  // }

  /**
   * 请求服务器事件
   */
  static async getSystemTime(): Promise<string> {
    const serverTime = await ApiManager.getInstance().requestForMapper<string>(
      '/api/time',
      {},
      SystemTimeMapper
    );
    // 【同步时间差】
    await TimeSync.sync(serverTime);
    return serverTime;
  }






// 场景 B：请求标准实体（Key 名完全对应，无需 Mapper）
  // static async getSimpleProfile(): Promise<Object> {
  //   return await ApiManager.getInstance().request<Object>('/api/user/simple');
  // }

}