package com.jeequan.jeepay.core.entity;

import com.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 分账记录表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2021-08-19
 */
@Data
@Accessors(chain = true)
public class PayOrderDivisionRefundRecord extends BaseModel {

    public static final byte STATE_WAIT = 0; // 退款处理中
    public static final byte STATE_SUCCESS = 1; // 退款成功
    public static final byte STATE_FAIL = 2; // 退款失败

    private static final long serialVersionUID=1L;

    /**
     * 分账退款订单号（支付系统生成订单号）
     */
    private String divisionRefundId;

    /**
     * 商户号
     */
    private String mchNo;

    /**
     * 服务商号
     */
    private String isvNo;

    /**
     * 应用ID
     */
    private String appId;

    /**
     * 商户名称
     */
    private String mchName;

    /**
     * 类型: 1-普通商户, 2-特约商户(服务商模式)
     */
    private Byte mchType;

    /**
     * 支付接口代码
     */
    private String ifCode;

    /**
     * 状态: 0-退款中 1-退款成功 2-退款失败
     */
    private Byte state;

    /**
     * 系统支付订单号
     */
    private String payOrderId;

    /**
     * 支付订单渠道订单号
     */
    private String payOrderChannelOrderNo;

    /**
     * 订单支付金额
     */
    private Long payOrderAmount;

    /**
     * 支付订单退款订单号
     */
    private String payOrderRefundOrderId;

    /**
     * 支付订单退款发生金额, 单位：分
     */
    private Long payOrderRefundAmount;

    /**
     * 分账记录ID
     */
    private Long divisionRecordId;

    /**
     * 系统分账批次号
     */
    private String divisionBatchOrderId;

    /**
     * 账号快照》 分账接收者ID
     */
    private String receiverId;

    /**
     * 账号快照》 分账任务ID（便于商户接口使用）
     */
    private String taskId;

    /**
     * 接收者账号别名
     */
    private String receiverAlias;

    /**
     * 账号快照》 分账接收账号类型: 0-个人 1-商户
     */
    private Byte accType;

    /**
     * 账号快照》 分账接收账号
     */
    private String accNo;

    /**
     * 账号快照》 分账接收账号名称
     */
    private String accName;

    /**
     * 账号快照》 渠道分账接收账号（账号创建完成后渠道侧账号）
     */
    private String channelAccNo;

    /**
     * 账号快照》 分账关系类型（参考微信）， 如： SERVICE_PROVIDER 服务商等
     */
    private String relationType;

    /**
     * 账号快照》 当选择自定义时，需要录入该字段。 否则为对应的名称
     */
    private String relationTypeName;

    /**
     * 分账金额,单位分
     */
    private Long divisionAmount;

    /**
     * 账号快照》 配置的实际分账比例
     */
    private BigDecimal divisionProfit;

    /**
     * 分账退款金额,单位分
     */
    private Long divisionRefundAmount;

    /**
     * 渠道订单号
     */
    private String channelOrderNo;

    /**
     * 渠道错误码
     */
    private String errCode;

    /**
     * 渠道错误描述
     */
    private String errMsg;

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

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


}
