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

/**
 * 登陆端(WEB、IOS、ANDROID)
 */
export enum AppClient {
  Admin = 'ADMIN',
  Android = 'ANDROID',
  Ios = 'IOS',
  Web = 'WEB',
}
/**
 * 第三方账号类型, DISCORD、GOOGLE、APPLE
 */
export enum ThirdType {
  Apple = 'APPLE',
  Discord = 'DISCORD',
  Google = 'GOOGLE',
}

export interface LoginRequest {
  /**
   * 登陆端(WEB、IOS、ANDROID)
   */
  appClient: AppClient
  /**
   * 手机设备唯一码
   */
  deviceCode: string
  /**
   * 三方授权码[discord、twitch传的是code码，中间需要根据这个code码来获取授权token]
   */
  thirdToken: string
  /**
   * 第三方账号类型, DISCORD、GOOGLE、APPLE
   */
  thirdType: ThirdType
}

// 注意：这里的类型是content内容的类型，不是完整的ApiResponse
export interface LoginResponse {
  token: string
}

export interface User {
  /**
   * 生日
   */
  birthday?: number
  /**
   * 是否需要强制完善用户基础信息
   */
  cpUserInfo?: boolean
  /**
   * headImage
   */
  headImage?: string
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 性别
   */
  sex?: Gender
  /**
   * 身份证号
   */
  idCard?: string
  /**
   * 用户ID
   */
  userId?: number
  /**
   * 三方邮箱
   */
  thirdEmail?: string
  /**
   * 三方账号类型
   */
  thirdType?: ThirdType
  /**
   * 是否是会员
   */
  isMember?: boolean
  /**
   * 已创建AI数量
   */
  createdAiCount?: number
  /**
   * 可创建AI数量
   */
  canCreateAiCount?: number
  thirdNickname?: string
}

export interface CompleteUserInfoRequest {
  /**
   * 生日
   */
  birthday?: string
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 性别
   */
  sex?: Gender
  /**
   * 用户ID
   */
  userId: number
}

export interface UpdateUserInfoRequest {
  /**
   * 生日
   * 时间戳
   */
  birthday?: number
  /**
   * 昵称
   */
  nickname?: string
  /**
   * 性别
   */
  sex?: Gender
  /**
   * 用户ID
   */
  userId: number
  /**
   * 头像
   */
  headImage?: string
}

export interface CheckNicknameRequest {
  /**
   * 昵称
   */
  nickname: string
  /**
   * 排除的用户ID
   */
  exUserId?: number
  /**
   * 是否是AI检测
   */
  isAiCheck?: boolean
}
