import type { PageParam } from '@/api/index';

/**
 * 充值兑换码
 */
export interface ShopRechargeCode {
  // ID
  id?: number;
  // 兑换码
  code?: string;
  // 充值金额
  amount?: string | number;
  // 用户ID
  userId?: number;
  // 状态: 0-未使用, 1-已使用, 2-已过期
  status?: number;
  // 生成方式: 1-管理员生成, 2-批量生成
  generateType?: number;
  // 批次号
  batchNo?: string;
  // 过期时间
  expireTime?: string;
  // 使用时间
  usedAt?: string;
  // 使用前的余额
  balanceBefore?: string | number;
  // 使用后的余额
  balanceAfter?: string | number;
  // 租户ID
  tenantId?: number;
  // 创建时间
  createTime?: string;
  // 修改时间
  updateTime?: string;
  // 是否删除
  deleted?: number;
}

/**
 * 兑换码搜索条件
 */
export interface ShopRechargeCodeParam extends PageParam {
  // 兑换码
  code?: string;
  // 状态
  status?: number;
  // 批次号
  batchNo?: string;
  // 用户ID
  userId?: number;
}

/**
 * 批量生成兑换码参数
 */
export interface BatchGenerateParams {
  // 预设金额列表
  presetAmounts: number[];
  // 每个金额生成的数量
  quantityPerAmount?: number;
  // 过期天数
  expireDays?: number;
}

/**
 * 批量生成结果
 */
export interface BatchGenerateResult {
  // 兑换码列表
  codes: ShopRechargeCode[];
  // 总数量
  totalCount: number;
  // 批次号
  batchNo: string;
}
