// 翻牌任务状态输出
export interface CardFlipStatusOutput {
  totalFlips: number; // 本周总翻牌次数
  remainingFreeFlips: number; // 剩余免费次数
  remainingBonusFlips: number; // 剩余赠送次数
  remainingInviteFlips: number; // 剩余邀请解锁次数
  canFlip: boolean; // 是否可以翻牌
  myInviteCode?: string; // 用户的邀请码
  invitedCount: number; // 本周邀请人数
  // isInvited: boolean; // 是否已被邀请
  flipRecords: CardFlipRecord[]; // 翻牌记录
  nextFlipTip?: string; // 下次可翻牌提示
  isFilledInviteCode: boolean;// 当前用户是否已经填写过邀请码
}

// 翻牌记录
export interface CardFlipRecord {
  flipNumber: number; // 翻牌序号（1-10）
  isFlipped: boolean; // 是否已翻
  isWin: boolean; // 是否中奖
  rewardAmount?: number; // 奖励金额（token数）
  flipTypeDesc?: string; // 翻牌类型描述
  flipOrderIndex: number; // 在翻牌顺序中的位置（1-10，表示第几个翻）
}

// 翻牌输入
export interface FlipCardInput {
  flipNumber: number; // 翻牌序号（1-10）
}

// 翻牌输出
export interface FlipCardOutput {
  flipNumber: number; // 翻牌序号（1-10）
  isWin: boolean; // 是否中奖
  rewardAmount?: number; // 奖励金额（token数）
  rewardDesc?: string; // 奖励描述
  showDoubleRewardTip: boolean; // 是否显示翻倍包提示
  remainingFlips: number; // 剩余可翻次数
}

// 使用邀请码输入
export interface UseInviteCodeInput {
  inviteCode: string; // 邀请码
}

// 邀请码信息输出
export interface InviteCodeOutput {
  myInviteCode?: string; // 我的邀请码
  invitedCount: number; // 本周邀请人数
  isInvited: boolean; // 是否已被邀请
  invitationHistory: InvitationHistoryItem[]; // 邀请历史记录
}

// 邀请历史记录项
export interface InvitationHistoryItem {
  invitedUserName: string; // 被邀请人昵称（脱敏）
  invitationTime: string; // 邀请时间
  weekDescription: string; // 本周所在
}
