export enum PageState {
  Pending = 'pending',
  Failure = 'failure',
  Success = 'success',
}

export interface User {
  id: string;
  nickname: string;
  avatar?: string;
  phone: string;
  email?: string;
  token: string;
  inviteCode: string;
  inviter: string;
  realname?: string;
  idNo?: string;
  idtype?: string;
  nationality?: string;
  kyc1status?: boolean;
}

export enum SendCodeType {
  SignUp = 'signUp',
  ForgetPwd = 'forgetPasswd',
}

export interface AreaCode {
  id: string;
  areacode: string;
  areaname: string;
}

export type AreaCodes = AreaCode[];

export enum EstateType {
  Hold = '0',
  Sold = '1',
}

export interface Estate {
  id: string;
  name: string;
  image?: string;
  desc?: string;

  /**
   * 买入价格
   */
  inPrice: string;

  /**
   * 买入时间
   */
  inTime: string;

  /**
   * 卖出时间
   */
  outTime: string;

  /**
   * 到期时间
   */
  lockTime: string;

  /**
   * 利率
   */
  profit: string;

  /**
   * 利率 %
   */
  profitShow: string;

  /**
   * 税率
   */
  taxfee: string;

  /**
   * 税率 %
   */
  taxfeeShow: string;

  /**
   * 手续费实际值
   */
  taxfeeAmount: string;

  /**
   * 卖出价格
   */
  outPrice: string;

  /**
   * 实际收益
   */
  profitPrice: string;

  type?: EstateType;
}

export type Estates = Estate[];

export interface MineBasic {
  /**
   * 昨日收益
   */
  revenueLastday: string;

  /**
   * 总收益
   */
  revenueAll: string;

  /**
   * 当前有效矿晶
   */
  activeFund: string;
}

export enum MineStatus {
  Pending = 0, // 等待确认
  Working = 1, // 正在挖矿
  RunOut = 2, // 耗尽能源
}

/**
 * 矿
 */
export interface Mine {
  id: string;

  amount: string;

  /**
   * 获赠日期
   */
  createdAt: string;

  /**
   * 到期日期
   */
  expiresAt: string;

  /**
   * 矿晶状态
   */
  status: MineStatus;
}

export type Mines = Mine[];

/**
 * 获取矿晶页面，支持的币种
 */
export interface CoinSupport {
  id: string;
  label: string;
  rate: string;
}

export interface CoinAddress {
  id: string;
  label: string;
  address: string;
}

export interface CoinUnion extends CoinSupport, CoinAddress { };

/**
 * 提币页面，支持的币种
 */
export interface CoinDrawn {
  id: string;
  label: string;
  fee: string;
}

export interface FundBasic {
  /**
   * 总余额（以VIC计算）
   */
  sum: string;

  /**
   * 当前VIC余额
   */
  vic: string;

  /**
   * 当前USDT余额
   */
  usdt: string;
}

export enum JournalType {
  /**
   * 挖矿收益
   */
  Mining = 1,

  /**
   * 社区奖励
   */
  Award = 2,

  /**
   * 提币
   */
  Draw = 3,
}

export enum JournalOp {
  Expenditure = 0,
  Income = 1,
}

export interface Journal {
  id: string;

  type: JournalType;

  detail: string;

  amount: string;

  tokenType: string;

  op: JournalOp;

  createdAt: string;
}

export interface CommunityBasic {
  /**
   * 累计奖励总额的数字
   */
  reward: string;

  /**
   * 直接邀请人数
   */
  follower: string;

  /**
   * 社区总人数
   */
  groupScale: string;
}

export interface Inviter {
  id: string;

  avatar: string;

  nickname: string;

  createdAt: string;

  phone: string;
}

export type Inviters = Inviter[];

export enum MarketEstateAvailable {
  No = 0,
  Yes = 1,
}

export interface MarketEstate {
  id: string;

  name: string;

  image?: string;

  available: MarketEstateAvailable;

  /**
   * 秒杀价
   */
  price: string;

  /**
   * 预期盈利，利率
   */
  profit: string;
}

export type MarketEstates = MarketEstate[];
