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

/**
 * 水票
 */
export interface ShopGift {
  // 礼品卡ID
  id?: number;
  // 礼品卡名称
  name?: string;
  // 礼品卡描述
  description?: string;
  // 礼品卡兑换码
  code?: string;
  // 关联商品ID
  goodsId?: number;
  // 商品名称
  goodsName?: string;
  // 商品图片
  goodsImage?: string;
  // 礼品卡面值
  faceValue?: string;
  // 礼品卡类型 (10实物礼品卡 20虚拟礼品卡 30服务礼品卡)
  type?: number;
  // 领取时间
  takeTime?: string;
  // 过期时间
  expireTime?: string;
  // 有效期天数
  validDays?: number;
  // 操作人
  operatorUserId?: number;
  // 操作人名称
  operatorUserName?: string;
  // 是否展示
  isShow?: string;
  // 状态 (0未使用 1已使用 2已过期 3已失效)
  status?: number;
  // 备注
  comments?: string;
  // 使用说明
  instructions?: string;
  // 排序号
  sortNumber?: number;
  // 拥有者用户ID
  userId?: number;
  // 发放者用户ID
  issuerUserId?: number;
  // 是否删除, 0否, 1是
  deleted?: number;
  // 租户id
  tenantId?: number;
  // 创建时间
  createTime?: string;
  // 修改时间
  updateTime?: string;
  // 数量
  num?: number;
  // 已发放数量
  issuedCount?: number;
  // 总发放数量
  totalCount?: number;
  // 使用门店/地址
  useLocation?: string;
  // 客服联系方式
  contactInfo?: string;
  // 核销时间
  verificationTime?: string;
}

/**
 * 礼品卡搜索条件
 */
export interface ShopGiftParam extends PageParam {
  id?: number;
  keywords?: string;
  code?: string;
  // 礼品卡类型筛选
  type?: number;
  // 状态筛选 (0未使用 1已使用 2失效)
  status?: number;
  // 用户ID筛选
  userId?: number;
  // 商品ID筛选
  goodsId?: number;
  // 是否过期筛选
  isExpired?: boolean;
  // 排序字段
  sortBy?: 'createTime' | 'expireTime' | 'faceValue' | 'takeTime';
  // 排序方向
  sortOrder?: 'asc' | 'desc';
}

/**
 * 礼品卡兑换参数
 */
export interface GiftRedeemParam {
  // 兑换码
  code: string;
  // 用户ID
  userId?: number;
}

/**
 * 礼品卡使用参数
 */
export interface GiftUseParam {
  // 礼品卡ID
  giftId?: number;
  // 使用地址/门店
  useLocation?: string;
  // 使用备注
  useNote?: string;
}

export interface QRCodeParam {
  // 二维码数据
  data?: string;
  // 二维码尺寸
  width?: number;
  // 二维码高度
  height?: number;
  // 二维码过期时间
  expireMinutes?: number;
  // 业务类型
  businessType?: string;
}
