import { get, post } from '@/utils/request';

// 尊享包用量明细DTO
export interface PremiumTokenUsageDto {
  /** id */
  id: string;
  /** 用户ID */
  userId: string;
  /** 包名称 */
  packageName: string;
  /** 总用量（总token数） */
  totalTokens: number;
  /** 剩余用量（剩余token数） */
  remainingTokens: number;
  /** 已使用token数 */
  usedTokens: number;
  /** 到期时间 */
  expireDateTime?: string;
  /** 是否激活 */
  isActive: boolean;
  /** 购买金额 */
  purchaseAmount: number;
  /** 备注 */
  remark?: string;
  /** 创建时间 */
  creationTime?: string;
  /** 创建者ID */
  creatorId?: string;
}

// 查询参数接口 - 匹配后端 PagedAllResultRequestDto
export interface PremiumTokenUsageQueryParams {
  /** 查询开始时间 */
  startTime?: string;
  /** 查询结束时间 */
  endTime?: string;
  /** 排序列名 */
  orderByColumn?: string;
  /** 排序方向（ascending/descending） */
  isAsc?: string;
  /** 跳过数量（分页） */
  skipCount?: number;
  /** 最大返回数量（分页） */
  maxResultCount?: number;
  /** 是否免费 */
  isFree?: boolean;
  // 是否为升序排序
  isAscending?: boolean;
}

// 分页响应接口
export interface PagedResult<T> {
  /** 数据列表 */
  items: T[];
  /** 总数量 */
  totalCount: number;
}

// 获取用户信息
export function getUserInfo() {
  return get<any>('/account/ai').json();
}

// 获取二维码 LoginOrRegister 登录注册, Bind 绑定
export function getQrCode(data: any) {
  return post<any>(`/fuwuhao/qrcode?sceneType=${data.sceneType}`, data).json();
}

// 扫码轮询
// 0=Wait, 1=Login, 2=Register, 3=Bind, 10=Expired
export function getQrCodeResult(data: any) {
  return get<any>('/fuwuhao/qrcode/result', data).json();
}
// 注册微信授权
export function getWechatAuth(data: any) {
  return post<any>('/fuwuhao/register', data).json();
}

// 获取尊享服务Token包额度
export function getPremiumTokenPackage() {
  return get<any>('/usage-statistics/premium-token-usage').json();
}

// 获取尊享包用量明细列表
export function getPremiumTokenUsageList(params?: PremiumTokenUsageQueryParams) {
  return get<PagedResult<PremiumTokenUsageDto>>('/usage-statistics/premium-token-usage/list', params).json();
}

// 查询条件的后端dto,其他查询或者排序由前端自己实现：
// using Volo.Abp.Application.Dtos;
//
// namespace Yi.Framework.Ddd.Application.Contracts
// {
//   /// <summary>
//   /// 分页查询请求DTO，包含时间范围和自定义排序功能
//   /// </summary>
//   public class PagedAllResultRequestDto : PagedAndSortedResultRequestDto, IPagedAllResultRequestDto
//   {
//     /// <summary>
//     /// 查询开始时间
//     /// </summary>
//   public DateTime? StartTime { get; set; }
//
//     /// <summary>
//     /// 查询结束时间
//     /// </summary>
//   public DateTime? EndTime { get; set; }
//
//     /// <summary>
//     /// 排序列名
//     /// </summary>
//   public string? OrderByColumn { get; set; }
//
//     /// <summary>
//     /// 排序方向（ascending/descending）
//     /// </summary>
//   public string? IsAsc { get; set; }
//
//     /// <summary>
//     /// 是否为升序排序
//     /// </summary>
//   public bool IsAscending => string.Equals(IsAsc, "ascending", StringComparison.OrdinalIgnoreCase);
//
//   private string? _sorting;
//
//     /// <summary>
//     /// 排序表达式
//     /// </summary>
//   public override string? Sorting
//     {
//       get
//     {
//       if (!string.IsNullOrWhiteSpace(OrderByColumn))
//       {
//         return $"{OrderByColumn} {(IsAscending ? "ASC" : "DESC")}";
//       }
//       return _sorting;
//     }
//     set => _sorting = value;
//   }
//   }
// }
