package com.hzs.common.domain.third.pay;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 在线代付信息
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@KeySequence("T_ONLINE_AGENT_SEQ")
@TableName("T_ONLINE_AGENT")
public class TOnlineAgent extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("PK_ID")
    private Long pkId;

    /**
     * 代付编号
     */
    @TableField("AGENT_CODE")
    private String agentCode;

    /**
     * 银行编码
     */
    @TableField("BANK_CODE")
    private String bankCode;

    /**
     * 收款账号
     */
    @TableField("BANK_ACCOUNT_NO")
    private String bankAccountNo;

    /**
     * 收款名称
     */
    @TableField("BANK_ACCOUNT_NAME")
    private String bankAccountName;

    /**
     * 账户类型（B2B=对公,B2C=对私）
     */
    @TableField("BIZ")
    private String biz;

    /**
     * 代付金额
     */
    @TableField("AGENT_AMOUNT")
    private BigDecimal agentAmount;

    /**
     * 代付状态（0=未到账,1=已到账,2=代付失败）
     */
    @TableField("AGENT_STATUS")
    private Integer agentStatus;

    /**
     * 代付时间
     */
    @TableField("AGENT_TIME")
    private Date agentTime;

    /**
     * 失败描述
     */
    @TableField("ERROR_MSG")
    private String errorMsg;

    /**
     * 三方订单号
     */
    @TableField("THIRD_NUM")
    private String thirdNum;

    /**
     * 银行流水号
     */
    @TableField("BANK_NUM")
    private String bankNum;

    /**
     * 渠道（0=衫德,1=支付宝,2=微信,3=通联,4=京东）
     */
    @TableField("AGENT_CHANNEL")
    private Integer agentChannel;

    /**
     * 商户编号
     */
    @TableField("CUSTOMER_NUM")
    private String customerNum;

    /**
     * 审核人
     */
    @TableField("PK_APPROVER")
    private Long pkApprover;

    /**
     * 审核时间
     */
    @TableField("APPROVER_TIME")
    private Date approverTime;

    /**
     * 审核状态（1=未审核,2=审核通过,3=审核驳回）
     */
    @TableField("APPROVAL_STATUS")
    private Integer approvalStatus;

    /**
     * 备注
     */
    @TableField("REMARK")
    private String remark;

    /**
     * 审核备注
     */
    @TableField("APPROVER_REMARK")
    private String approverRemark;

}
