package com.qs.mp.channel.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qs.mp.common.enums.ChannelWithdrawStatusEnum;
import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @describe 渠道提现表实体类
 * @auther quanshu
 * @create 2022-03-04 17:11:47
 */
@TableName("mp_channel_withdraw")
@Data
@ApiModel("渠道提现表实体类")
public class ChannelWithdraw implements Serializable {

  private static final long serialVersionUID = 1L;

  @TableId(value = "id" , type = IdType.AUTO)
  @ApiModelProperty("id")
  private Long id;

  /**
   * 渠道id
   */
  @ApiModelProperty("渠道ID")
  @TableField("channel_id")
  private Long channelId;

  /**
   * 提现金额
   */
  @ApiModelProperty("提现金额")
  @TableField("money")
  private Integer money;

  /**
   * 手续费
   */
  @ApiModelProperty("手续费")
  @TableField("charge_amt")
  private Integer chargeAmt;

  /**
   * 当前可用资金
   */
  @ApiModelProperty("当前可用资金")
  @TableField("available_money")
  private Integer availableMoney;

  /**
   * 支付类型 1支付宝,2微信,3银行卡
   */
  @ApiModelProperty("支付类型 1支付宝,2微信,3银行卡")
  @TableField("pay_type")
  private String payType;

  /**
   * 持卡人
   */
  @ApiModelProperty("持卡人")
  @TableField("user_name")
  private String userName;

  /**
   * 卡号
   */
  @ApiModelProperty("卡号")
  @TableField("card_no")
  private String cardNo;

  /**
   * 银行卡所属银行
   */
  @ApiModelProperty("银行卡所属银行")
  @TableField("bank_name")
  private String bankName;

  /**
   * 开户行
   */
  @ApiModelProperty("开户行")
  @TableField("branch_name")
  private String branchName;

  /**
   * 提现状态 1申请,2审核通过,3审核拒绝
   */
  @ApiModelProperty("提现状态 1申请,2审核通过,3审核拒绝")
  @TableField("status")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private ChannelWithdrawStatusEnum status;

  /**
   * 转账凭证
   */
  @ApiModelProperty("转装凭证")
  @TableField("transfer_img")
  private String transferImg;

  /**
   * 转账时间
   */
  @ApiModelProperty("转账时间")
  @TableField("transfer_time")
  private Date transferTime;

  /**
   * 审核内容备注
   */
  @ApiModelProperty("审核内容备注")
  @TableField("verify_content")
  private String verifyContent;

  /**
   * 审核人用户名
   */
  @ApiModelProperty("审核人用户名")
  @TableField("verifier")
  private String verifier;

  /**
   * 创建时间
   */
  @ApiModelProperty("创建时间")
  @TableField("create_time")
  private Date createTime;

  /**
   * 修改时间
   */
  @ApiModelProperty("修改时间")
  @TableField("update_time")
  private Date updateTime;


}
