import type { PageParams, PageResult, TabItem } from './global'

export type baseProfile = {
  /** 用户ID */
  id: number
  /** 头像  */
  avatar: string
  /** 账户名  */
  username: string
  /** 昵称 */
  nickname?: string
}

export type user = baseProfile & {
  mobile: string
  /** 是否有openid */
  has_openid: boolean
}

export type token = {
  token: string
  refresh_token: string
}

export type loginResult = user & token

/** 个人信息 用户详情信息 */
export type profileDetail = baseProfile & {
  /** 性别 */
  gender?: gender
  /** 生日 */
  birthday?: string
  /** 省市区 */
  fullLocation?: string
  /** 余额 */
  money?: string
  /** 手机号码 */
  mobile: string
}
export type gender = '0' | '1' | '2'

/**
 * 用户信息参数
 */
export type profileParams = Pick<profileDetail, 'nickname' | 'birthday' | 'gender'> & {
  provinceCode?: string
  cityCode?: string
  countyCode?: string
  avatar?: string
  username?: string
}

/* 余额列表请求参数 */
export type balanceLogParams = PageParams & { type: string | number }
/* 余额列表返回参数 */
export type balanceLogResultItem = {
  /** 交易时间 */
  create_time: string
  /** 交易金额 */
  money: string
  /** 交易描述 */
  memo: string
  /** 交易类型 */
  type: number
}

/* 余额列表返回值 */
export type balanceLogResult = PageResult<balanceLogResultItem> & {
  statistics: {
    balance: string
    total_recharge: string
    total_expend: string
  }
  tabs: tabsItem[]
  types: TabItem[]
}

export type rechargeCenter = {
  planList: rechargePlanItem[]
}

export type rechargePlanItem = {
  /** 充值套餐ID */
  id: number
  /** 充值金额 */
  money: string
  /** 赠送金额 */
  gift_money: string
}

/* 充值请求参数 */
export type rechargePlanParams = {
  /** 充值套餐ID */
  plan_id: number
  /** 自定义充值金额 */
  custom_amount: string
  /** 支付方式 */
  pay_way: string
}

/* 余额充值订单返回值 */
export type rechargeOrderListItem = {
  /** 订单号 */
  order_no: string
  /** 充值金额 */
  money: string
  /** 赠送金额 */
  gift_money: string
  /* 实际到账金额 */
  actual_money: string
  /** 订单时间 */
  create_time: string
  /** 支付状态 */
  pay_status: number
}

/* 权益数据 */
export type rightData = {
  balance: string
  favorite_num: string
  coupon_num: string
}

/* 订单栏数据 */
export type orderBar = {
  to_pay: string
  to_ship: string
  to_receive: string
  to_evaluate: string
  refund: string
}

/* 我的页面面板数据 */
export type dashboardResult = {
  /* 权益数据 */
  rights: rightData
  /* 订单栏 */
  order_bar: orderBar
}
