import { Gender } from '@/types/user'

export interface PageParams {
  pn?: number
  ps?: number
}

export interface GetIMAccountResponse {
  accountId: string
  token: string
}

/**
 * AiUserImBaseInfoOutput
 */
export interface AiUserImBaseInfoOutput {
  /**
   * AI的id
   */
  aiId?: number
  /**
   * 用户与AI的心动关系
   */
  aiUserHeartbeatRelation?: AiUserHeartbeatRelationOutput
  /**
   * im聊天背景图
   */
  backgroundImg?: string
  /**
   * 出生日期
   */
  birthday?: string
  /**
   * 性格名称
   */
  characterName?: string
  /**
   * 聊天气泡
   */
  chatBubble?: ChatBubbleOutput
  /**
   * 对话开场白
   */
  dialoguePrologue?: string
  /**
   * 对话开场白-语音
   */
  dialoguePrologueVoice?: string
  /**
   * 头像
   */
  headImg?: string
  /**
   * 简介
   */
  introduction?: string
  /**
   * 自动播放语音开关 1：开 0：关
   */
  isAutoPlayVoice?: number
  /**
   * 被喜欢数
   */
  likedNum?: number
  /**
   * 会员类型
   */
  memberType?: string
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 角色名称
   */
  roleName?: string
  /**
   * 0,男;1,女;2,自定义
   */
  sex?: number
  /**
   * 标签名称
   */
  tagName?: string
  /**
   * ai所属用户id
   */
  userId?: number
  /**
   * 是否是默认背景
   */
  isDefaultBackground?: boolean
  /**
   * 对话音调
   */
  dialoguePitch?: number
  /**
   * 对话语速
   */
  dialogueSpeechRate?: number
  /**
   * 对话音色
   */
  voiceType?: string
  liked: boolean
  isDelChatted?: boolean
}

/**
 * 用户与AI的心动关系
 *
 * AiUserHeartbeatRelationOutput
 */
export interface AiUserHeartbeatRelationOutput {
  /**
   * AI头像
   */
  aiHeadImg?: string
  /**
   * 相识天数
   */
  dayCount?: number
  /**
   * 心动等级
   */
  heartbeatLevel?: HeartbeatLevel
  /**
   * 心动等级名称
   */
  heartbeatLevelName?: string
  /**
   * 心动等级num
   */
  heartbeatLevelNum?: number
  /**
   * 心动分
   */
  heartbeatScore?: number
  /**
   * 心动值
   */
  heartbeatVal?: number
  /**
   * 关系显示开关 默认关闭 0:关闭 1:打开
   */
  isShow?: boolean
  /**
   * 心动值单价
   */
  price?: number
  /**
   * 已扣减心动值
   */
  subtractHeartbeatVal?: number
  /**
   * 用户头像
   */
  userHeadImg?: string
  // IM过来的文案，在动画过程展示
  title?: string
}

/**
 * 心动等级
 */
export enum HeartbeatLevel {
  Level1 = 'LEVEL_1',
  Level10 = 'LEVEL_10',
  Level2 = 'LEVEL_2',
  Level3 = 'LEVEL_3',
  Level4 = 'LEVEL_4',
  Level5 = 'LEVEL_5',
  Level6 = 'LEVEL_6',
  Level7 = 'LEVEL_7',
  Level8 = 'LEVEL_8',
  Level9 = 'LEVEL_9',
}

/**
 * 聊天气泡
 *
 * ChatBubbleOutput
 */
export interface ChatBubbleOutput {
  /**
   * code
   */
  code?: string
  /**
   * 颜色
   */
  color?: string
  /**
   * 图片url
   */
  imgUrl?: number
  /**
   * 名称
   */
  name?: string
  /**
   * 是否是默认气泡
   */
  isDefault?: boolean
  /**
   * 网页图片url
   */
  webImgUrl?: string
}

export interface GiftListInput {
  pn?: number
  ps?: number
  datas?: GiftOutput[]
}

export interface GiftOutput {
  id: string
  name: string
  price: number
  icon: string
  desc: string
  heartbeatLevel: HeartbeatLevel
  startVal: number | null
  isMemberGift: boolean
}

/**
 * HeartbeatLevelOutput
 */
export interface HeartbeatLevelOutput {
  /**
   * 当前用户与AI的心动关系
   */
  aiUserHeartbeatRelation?: AiUserHeartbeatRelationOutput
  /**
   * 心动等级字典列表
   */
  heartbeatLeveLDictList?: HeartbeatLevelDictOutput[]
}

/**
 * 当前用户与AI的心动关系
 *
 * AiUserHeartbeatRelationOutput
 */
export interface AiUserHeartbeatRelationOutput {
  /**
   * AI头像
   */
  aiHeadImg?: string
  /**
   * 相识天数
   */
  dayCount?: number
  /**
   * 心动等级
   */
  heartbeatLevel?: HeartbeatLevel
  /**
   * 心动等级名称
   */
  heartbeatLevelName?: string
  /**
   * 心动分
   */
  heartbeatScore?: number
  /**
   * 心动值
   */
  heartbeatVal?: number
  /**
   * 关系显示开关 默认关闭 0:关闭 1:打开
   */
  isShow?: boolean
  /**
   * 心动值单价
   */
  price?: number
  /**
   * 已扣减心动值
   */
  subtractHeartbeatVal?: number
  /**
   * 用户头像
   */
  userHeadImg?: string
}

/**
 * HeartbeatLevelDictOutput
 */
export interface HeartbeatLevelDictOutput {
  /**
   * 心动等级code
   */
  code?: HeartbeatLevel
  /**
   * 心动等级图标
   */
  imgUrl?: string
  /**
   * 用户是否解锁
   */
  isUnlock?: boolean
  /**
   * 心动等级名称
   */
  name?: string
  /**
   * 心动等级开始值
   */
  startVal?: number
}

/**
 * ChatSetOutput
 */
export interface ChatSetOutput {
  /**
   * ai的Id
   */
  aiId?: number
  /**
   * 聊天背景图片
   */
  backgroundImg?: string
  /**
   * 出生日期
   */
  birthday?: string
  /**
   * 聊天气泡code
   */
  bubbleCode?: string
  /**
   * 聊天气泡名称
   */
  bubbleName?: string
  /**
   * 自动播放语音开关 1：开 0：关
   */
  isAutoPlayVoice?: number
  /**
   * 对话模型code
   */
  modelCode?: string
  /**
   * 对话模型名称
   */
  modelName?: string
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 0,男;1,女;2,自定义
   */
  sex?: Gender
  /**
   * 我是谁
   */
  whoAmI?: string
}

/**
 * ChatBubbleListOutput
 */
export interface ChatBubbleListOutput {
  /**
   * code
   */
  code?: string
  /**
   * 颜色
   */
  color?: string
  /**
   * id
   */
  id?: number
  /**
   * 安卓图片url
   */
  imgUrl?: string
  /**
   * 网页图片url
   */
  webImgUrl?: string
  /**
   * 是否是默认气泡
   */
  isDefault?: boolean
  /**
   * 当前用户是否解锁 false:未解锁，true:解锁
   */
  isUnlock?: boolean
  /**
   * 名称
   */
  name?: string
  /**
   * 解锁心动等级   类型为HEARTBEAT_LEVEL时才有用
   */
  unlockHeartbeatLevel?: HeartbeatLevel
  /**
   * 解锁类型 MEMBER:会员 HEARTBEAT_LEVEL:心动等级
   */
  unlockType?: UnlockType
}

/**
 * 解锁类型 MEMBER:会员 HEARTBEAT_LEVEL:心动等级
 */
export enum UnlockType {
  HeartbeatLevel = 'HEARTBEAT_LEVEL',
  Member = 'MEMBER',
}

export enum RtcOperation {
  START = 'START',
  INTERRUPT = 'INTERRUPT',
  STOP = 'STOP',
  CANCEL = 'CANCEL',
}

/**
 * BackgroundImgListOutput
 */
export interface BackgroundImgListOutput {
  /**
   * 背景图片id
   */
  backgroundId?: number
  /**
   * 图片高
   */
  height?: string
  /**
   * 图片地址
   */
  imgUrl?: string
  /**
   * 是否默认图片
   */
  isDefault?: boolean
  /**
   * 是否是选中图片
   */
  isSelected?: boolean
  /**
   * 图片宽
   */
  width?: string
}

export interface HeartbeatRelationListInput {
  nickname: string
  page: PageParams
}

/**
 * PageHeartbeatRelationListOutput
 */
export interface PageHeartbeatRelationListOutput {
  /**
   * 数据列表
   */
  datas?: HeartbeatRelationListOutput[]
  /**
   * 页码
   */
  pn?: number
  /**
   * 每页显示条数
   */
  ps?: number
  /**
   * 总数据条数
   */
  tc?: number
}

/**
 * HeartbeatRelationListOutput
 */
export interface HeartbeatRelationListOutput {
  /**
   * AI的id
   */
  aiId?: number
  /**
   * 出生日期
   */
  birthday?: string
  /**
   * 性格名称
   */
  characterName?: string
  /**
   * 头像
   */
  headImg?: string
  /**
   * 心动等级
   */
  heartbeatLevel?: HeartbeatLevel
  /**
   * 心动等级数字
   */
  heartbeatLevelNum?: number
  /**
   * 心动值
   */
  heartbeatVal?: number
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 角色名称
   */
  roleName?: string
  /**
   * 0,男;1,女;2,自定义
   */
  sex?: number
  /**
   * 标签名称
   */
  tagName?: string
  /**
   * ai所属用户id
   */
  userId?: number
  isShow?: boolean
}

/**
 * ChatModelDictOutput
 */
export interface ChatModelDictOutput {
  /**
   * 对话模型code
   */
  code?: string
  /**
   * 对话模型描述
   */
  description?: string
  /**
   * 对话模型名称
   */
  name?: string
  /**
   * 问号图标内容
   */
  questionMark?: string
  /**
   * 文本价格
   */
  textPrice?: number
  /**
   * 语音聊天价格
   */
  voiceChatPrice?: number
}
