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

/**
 * AiUserBaseInfoInput
 */
export interface AiUserInput {
  /**
   * AI的id
   */
  aiId?: number
}

/**
 * AiUserBaseOutput
 */
export interface AiUserBaseOutput {
  /**
   * 出生日期
   */
  birthday?: number
  /**
   * AI的id
   */
  aiId?: number
  /**
   * 用户id
   */
  userId?: number
  /**
   * 性格名称
   */
  characterName?: string
  /**
   * 头像
   */
  headImg?: string
  /**
   * 形象图
   */
  homeImageUrl?: string
  /**
   * 简介
   */
  introduction?: string
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 角色名称
   */
  roleName?: string
  /**
   * 0,男;1,女;2,自定义
   */
  sex?: Gender
  /**
   * 标签名称
   */
  tagName?: string
  /**
   * 是否被喜欢
   */
  liked: boolean
}

/**
 * AiUserStatOutput
 */
export interface AiUserStatOutput {
  /**
   * AI的id
   */
  aiId?: number
  /**
   * 聊天数
   */
  chatNum?: number
  /**
   * 赚取的Crush Coin数
   */
  coinNum?: number
  /**
   * 产生过对话的人数
   */
  conversationNum?: number
  /**
   * 被喜欢数
   */
  likedNum?: number
}

export interface AiUserGiftsInput {
  /**
   * AI的id
   */
  aiId: number
  page: PageParams
}

export interface PageParams {
  /**
   * 页码
   */
  pn?: number
  /**
   * 每页显示条数
   */
  ps?: number
}

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

/**
 * AiUserGiftListOutput
 */
export interface AiUserGiftListOutput {
  /**
   * 获得礼物数量
   */
  getNum?: number
  /**
   * 礼物icon
   */
  icon?: string
  /**
   * 礼物id
   */
  id?: number
  /**
   * 礼物名称
   */
  name?: string
}

// 相册相关类型定义
export interface AiUserAlbumInput {
  /**
   * AI的id
   */
  aiId: number
  page: PageParams
}

/**
 * 相册项目
 */
export interface IAlbumItem {
  /**
   * 图片id
   */
  albumId: number
  /**
   * 图片宽
   */
  width?: string
  /**
   * 图片高
   */
  height?: string
  /**
   * 模糊图片1，缩略图
   */
  img1: string
  /**
   * 模糊图片3，原图
   */
  img3: string
  imgOrder: number
  /**
   * 图片地址
   */
  imgUrl: string
  /**
   * 是否默认相册图片
   */
  isDefault?: boolean
  /**
   * 点赞数
   */
  likedCount?: number
  /**
   * 当前登录用户对相册的点赞状态 已点赞、取消点赞
   */
  likedStatus?: LikedStatus
  /**
   * 图片是否解锁
   */
  lockStatus?: LockStatus | null
  /**
   * 解锁价格
   */
  unlockPrice?: number
}

/**
 * 当前登录用户对相册的点赞状态 已点赞、取消点赞
 */
export enum LikedStatus {
  Canceled = 'CANCELED',
  Liked = 'LIKED',
}

/**
 * 图片是否解锁
 */
export enum LockStatus {
  Lock = 'LOCK',
  Unlock = 'UNLOCK',
}

/**
 * 相册列表响应
 */
export interface PageAlbumListOutput {
  /**
   * 数据列表
   */
  datas?: IAlbumItem[]
  /**
   * 页码
   */
  pn?: number
  /**
   * 每页显示条数
   */
  ps?: number
  /**
   * 总数据条数
   */
  tc?: number
}

/**
 * PageMessageListOutput
 */
export interface PageMessageListOutput {
  datas?: MessageListOutput[]
  pn?: number
  ps?: number
  tc?: number
}

/**
 * MessageListOutput
 */
export interface MessageListOutput {
  /**
   * 导致消息发送的业务ID
   */
  bizId?: string
  /**
   * 消息内容
   */
  content?: string
  /**
   * 消息时间
   */
  createTime?: string
  /**
   * 消息扩展内容
   */
  extras?: string
  /**
   * 消息ID
   */
  id?: number
  /**
   * 国家化翻译替换数据
   */
  replaceJson?: string
  /**
   * 发送人用户ID
   */
  sendUserId?: number
  /**
   * 消息状态（0未读、1已读）
   */
  status?: number
  /**
   * 消息标题
   */
  title?: string
  /**
   * 消息类型
   */
  type?: number
}

export interface UserNoticeStatOutput {
  /**
   * 最新未读消息内容
   */
  latestContent?: string
  /**
   * 最新未读消息时间
   */
  latestTime?: number
  /**
   * 未读数量
   */
  unRead?: number
}

/**
 * UserCreateCountOutput
 */
export interface GetUserCreateCountResponse {
  /**
   * 购买创作次数
   */
  buyNum?: number
  /**
   * 免费创作次数
   */
  freeNum?: number
  /**
   * 会员赠送创作次数
   */
  memberNum?: number

  /**
   * 使用购买创作次数
   */
  usedBuyNum?: number
  /**
   * 使用免费创作次数
   */
  usedFreeNum?: number
  /**
   * 使用会员赠送创作次数
   */
  usedMemberNum?: number
}
