package com.jeequan.jeepay.core.entity;

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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@Accessors(chain = true)
public class CashoutRecord extends  BaseModel {

    private static final long serialVersionUID=1L;

    /** 提现类型 佣金提现 **/
    public static final byte SETT_TYPE_COMM = 1;

    /** 提现状态 结算状态: 1-审核中, 2-审核失败, 3-结算中, 4-结算成功, 5-结算失败 **/
    public static final byte CASHOUT_STATE_AUDIT_ING = 1;
    public static final byte CASHOUT_STATE_AUDIT_FAIL = 2;
    public static final byte CASHOUT_STATE_SETT_ING = 3;
    public static final byte CASHOUT_STATE_SETT_SUCCESS = 4;
    public static final byte CASHOUT_STATE_SETT_FAIL = 5;

    /**
     * 提现记录ID
     */
    @TableId(value = "rid", type = IdType.AUTO)
    private Long rid;

    /**
     * 服务商号等
     */
    private String infoId;

    /**
     * 系统类型： 参考：SYS_ROLE_TYPE
     */
    private String infoType;

    /**
     * 名称快照
     */
    private String infoName;

    /**
     * 申请金额,单位分
     */
    private Long applyAmount;

    /**
     * 手续费金额,单位分
     */
    private Long settFeeAmount;

    /**
     * 手续费计算公式（快照）
     */
    private String settFeeRule;

    /**
     * 最终结算金额 （申请-手续费）, 单位分
     */
    private Long settAmount;

    /**
     * 结算账户类型： WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡
     */
    private String settAccountType;

    /**
     * 结算账户账号
     */
    private String settAccountNo;

    /**
     * 结算账户姓名
     */
    private String settAccountName;

    /**
     * 结算账户开户行名称
     */
    private String settAccountBank;

    /**
     * 开户行支行名称
     */
    private String settAccountSubBank;

    /**
     * 结算账户联系人手机号（一般为服务商手机号）
     */
    private String settAccountTelphone;

    /**
     * 联系人姓名
     */
    private String contactName;

    /**
     * 用户提现备注
     */
    private String applyRemark;

    /**
     * 结算备注[系统生成]
     */
    private String settInfo;

    /**
     * 结算状态: 1-审核中, 2-审核失败, 3-结算中, 4-结算成功, 5-结算失败
     */
    private Byte state;

    /**
     * 结算凭证图片
     */
    private String settCertImg;

    /**
     * 打款凭证（运营平台）
     */
    private String transferCertImg;

    /**
     * 提现类型： 1-佣金提现
     */
    private Byte settType;

    /**
     * 发起转账的自营应用ID
     */
    private String transferMchAppId;

    /**
     * 转账系统订单号
     */
    private String transferOrderId;

    /**
     * 转账接口类型
     */
    private String transferIfCode;

    /**
     * 自营商户费率费用
     */
    private Long transferPlatformMchfeeAmount;

    /**
     * 平台真实成本费用（ 来自转账订单数据 = 自营商户费率费用 - 平台利润 ）
     */
    private Long transferPlatformCostAmount;

    /**
     * 审核时间
     */
    private Date auditTime;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;


    @TableField(exist = false)
    private String idCard;

    @TableField(exist = false)
    private String bankPhone;
}
