/**
 * 礼品卡相关类型定义
 */

/** 礼品卡类型枚举 */
export enum GiftCardType {
  /** 礼品劵 */
  PHYSICAL = 10,
  /** 虚拟礼品卡 */
  VIRTUAL = 20,
  /** 服务礼品卡 */
  SERVICE = 30
}

/** 状态枚举 */
export enum GiftStatus {
  /** 未使用 */
  UNUSED = 0,
  /** 已使用 */
  USED = 1,
  /** 失效 */
  INVALID = 2
}

/** 优惠类型枚举 */
export enum PromotionType {
  /** 折扣 */
  DISCOUNT = 'discount',
  /** 赠品 */
  GIFT = 'gift',
  /** 返现 */
  CASHBACK = 'cashback'
}

/** 卡片主题枚举 */
export enum CardTheme {
  GOLD = 'gold',
  SILVER = 'silver',
  BRONZE = 'bronze',
  BLUE = 'blue',
  GREEN = 'green',
  PURPLE = 'purple'
}

/** 商品信息接口 */
export interface GoodsInfo {
  /** 商品品牌 */
  brand?: string
  /** 商品规格 */
  specification?: string
  /** 商品分类 */
  category?: string
  /** 库存数量 */
  stock?: number
  /** 商品评分 */
  rating?: number
  /** 评价数量 */
  reviewCount?: number
  /** 商品标签 */
  tags?: string[]
  /** 使用说明 */
  instructions?: string[]
  /** 注意事项 */
  notices?: string[]
  /** 适用门店 */
  applicableStores?: string[]
}

/** 优惠信息接口 */
export interface PromotionInfo {
  /** 优惠类型 */
  type?: PromotionType
  /** 优惠描述 */
  description?: string
  /** 优惠金额 */
  amount?: string
  /** 优惠有效期 */
  validUntil?: string
}

/** 礼品卡数据接口 */
export interface GiftCardData {
  /** 礼品卡ID */
  id: number
  /** 礼品卡名称 */
  name: string
  /** 商品名称 */
  goodsName?: string
  /** 礼品卡描述 */
  description?: string
  /** 礼品卡兑换码 */
  code?: string
  /** 商品图片 */
  goodsImage?: string
  /** 商品图片列表 */
  goodsImages?: string[]
  /** 礼品卡面值 */
  faceValue?: string
  /** 商品原价 */
  originalPrice?: string
  /** 礼品卡类型 */
  type?: GiftCardType
  /** 状态 */
  status?: GiftStatus
  /** 过期时间 */
  expireTime?: string
  /** 使用时间 */
  takeTime?: string
  /** 使用地址 */
  useLocation?: string
  /** 客服联系方式 */
  contactInfo?: string
  /** 商品信息 */
  goodsInfo?: GoodsInfo
  /** 优惠信息 */
  promotionInfo?: PromotionInfo
}

/** 礼品卡组件配置接口 */
export interface GiftCardConfig {
  /** 是否显示兑换码 */
  showCode?: boolean
  /** 是否显示使用按钮 */
  showUseBtn?: boolean
  /** 是否显示详情按钮 */
  showDetailBtn?: boolean
  /** 是否显示商品详情 */
  showGoodsDetail?: boolean
  /** 卡片主题色 */
  theme?: CardTheme
}

/** 礼品卡事件接口 */
export interface GiftCardEvents {
  /** 使用按钮点击事件 */
  onUse?: () => void
  /** 详情按钮点击事件 */
  onDetail?: () => void
  /** 卡片点击事件 */
  onClick?: () => void
}

/** 完整的礼品卡属性接口 */
export interface GiftCardProps extends GiftCardData, GiftCardConfig, GiftCardEvents {}

/** 礼品卡列表项接口 */
export interface GiftCardListItem extends GiftCardData {
  /** 是否选中 */
  selected?: boolean
  /** 是否禁用 */
  disabled?: boolean
}

/** 礼品卡筛选条件接口 */
export interface GiftCardFilter {
  /** 类型筛选 */
  type?: GiftCardType[]
  /** 状态筛选 */
  status?: GiftStatus[]
  /** 品牌筛选 */
  brand?: string[]
  /** 分类筛选 */
  category?: string[]
  /** 价格范围 */
  priceRange?: {
    min?: number
    max?: number
  }
  /** 评分范围 */
  ratingRange?: {
    min?: number
    max?: number
  }
  /** 是否有库存 */
  inStock?: boolean
  /** 关键词搜索 */
  keyword?: string
}

/** 礼品卡排序选项接口 */
export interface GiftCardSort {
  /** 排序字段 */
  field: 'price' | 'rating' | 'reviewCount' | 'expireTime' | 'createTime'
  /** 排序方向 */
  order: 'asc' | 'desc'
}

/** API响应接口 */
export interface GiftCardApiResponse {
  /** 状态码 */
  code: number
  /** 响应消息 */
  message: string
  /** 数据 */
  data: GiftCardData[]
  /** 总数 */
  total?: number
  /** 当前页 */
  page?: number
  /** 每页数量 */
  pageSize?: number
}
