package com.jeequan.jeepay.db.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.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 商户进件渠道商参数缓存表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_mch_pay_interface_config")
public class MchPayInterfaceConfig extends BaseModel implements Serializable {

    private static final long serialVersionUID=1L;

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

    /**
     * 排序字段
     */
    private Long sort;

    /**
     * 实例别名
     */
    private String alias;

    /**
     * 账号类型: 参考： SYS_ROLE_TYPE
     */
    private String infoType;

    /**
     * 服务商号/商户号/应用ID
     */
    private String infoId;

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

    /**
     * 接口配置参数,json字符串
     */
    private String ifParams;

    /**
     * 状态: 0-停用, 1-启用
     */
    private Byte state;

    /**
     * 是否开启进件: 0-关闭, 1-开启
     */
    private Byte isOpenApplyment;

    /**
     * 是否开启对账: 0-关闭, 1-开启
     */
    private Byte isCheckBill;

    /**
     * 对账过滤子商户号
     */
    private String ignoreCheckBillMchNos;

    /**
     * 提现配置，JSON字符串
     */
    private String cashoutParams;

    /**
     * 进件特殊参数，JSON字符串
     */
    private String applymentExtParams;

    /**
     * oauth2的选择， 空表示使用默认配置条目
     */
    private String oauth2InfoId;

    /**
     * 佣金结算周期（仅服务商配置， 用于服务商的佣金提现周期）
     */
    private Integer settHoldDay;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建者用户ID
     */
    private Long createdUid;

    /**
     * 创建者姓名
     */
    private String createdBy;

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

    /**
     * 更新者用户ID
     */
    private Long updatedUid;

    /**
     * 更新者姓名
     */
    private String updatedBy;

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

    /**
     * 1, 正在使用中
     */
    @TableField(exist = false)
    private Integer inUseFlag;
}
