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.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;
import java.util.List;

/**
 * <p>
 * 商户码牌表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2021-12-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_mch_qrcode_card")
public class MchQrcodeCard extends BaseModel {

    /** 码牌所属类型: 1-商户自制码牌, 2-运营平台下发码牌 **/
    public static final byte QRC_BELONG_TYPE_MCH = 1;
    public static final byte QRC_BELONG_TYPE_ISV_PRE = 2;

    /**
     * qrc_type 0：电子马牌 1：实体马牌 2：实体立牌 3:云音响码牌
     */
    public static final byte QRC_TYPE_DZ = 0;
    public static final byte QRC_TYPE_MP = 1;
    public static final byte QRC_TYPE_LP = 2;
    public static final byte QRC_TYPE_YX = 3;

    /**
     * GET_TYPE  1：分账获取码牌数据
     */
    public static final byte GET_TYPE = 1;

    // gw
    public static final LambdaQueryWrapper<MchQrcodeCard> gw(){
        return new LambdaQueryWrapper<>();
    }

    public static final LambdaQueryWrapper<MchQrcodeCard> gw(MchQrcodeCard mchQrcodeCard){
        return new LambdaQueryWrapper<>(mchQrcodeCard);
    }

    private static final long serialVersionUID=1L;

    /**
     * 码牌ID
     */
    @TableId(value = "qrc_id", type = IdType.INPUT)
    private Long qrcId;

    /**
     * 批次号
     */
    private String batchId;

    /**
     * 码牌别名
     */
    private String qrcAlias;

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

    /**
     * 绑定的商户号， 默认为空串
     */
    private String mchNo;

    /**
     * 绑定的应用ID， 默认为空串
     */
    private String appId;

    /**
     * 绑定的商户门店ID， 0-表示空
     */
    private String storeId;

    /**
     * 码牌绑定状态: 0-未绑定, 1-已绑定（一定存在mchNo、appId 和 storeId）
     */
    private Byte bindState;

    /**
     * 码牌类型:0-电子码牌，1-实体码牌，2-实体立牌 ，3：云音响码牌
     */
    private Byte qrcType;

    /**
     * 入口页面呈现方式: default-默认(未指定，取决于二维码是否绑定到微信侧), h5-仅H5网页, lite-仅小程序
     */
    private String entryPage;

    /**
     * URL自定义占位符，一般仅绑定多个小程序时需要
     */
    private String urlPlaceholder;

    /**
     * 是否固定支付金额: 1-是, 0-否
     */
    private Byte fixedFlag;

    /**
     * 固定支付金额,单位分
     */
    private Long fixedPayAmount;

    /**
     * 指定支付宝的支付方式, 比如wap支付则为： ALI_WAP
     */
    private String alipayWayCode;

    /**
     * 码牌状态: 0-停用, 1-正常
     */
    private Byte qrcState;

    /**
     * 码牌所属类型: 1-商户自制码牌, 2-运营平台下发码牌
     */
    private Byte qrcBelongType;

    /**
     * 码牌模板ID, 0-表示仅二维码
     */
    private Long qrcShellId;

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

    /**
     * 扩展商户号 现在的申请单编号 也是商户号
     */
    private String mchApplyId;

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

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

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

    /**
     * 是否强制配置
     */
    private Byte isForceReamrk;

    /**
     * 绑定的应用名称
     */
    @TableField(exist = false)
    private String appName;

    /**
     * 绑定的门店名称
     */
    @TableField(exist = false)
    private String storeName;

    /**
     * 服务商名称
     */
    @TableField(exist = false)
    private String agentName;

    /**
     * 服务商名称简称
     */
    @TableField(exist = false)
    private String agentShortName;

    /**
     * 商户名称
     */
    @TableField(exist = false)
    private String mchName;

    /**
     * 商户简称
     */
    @TableField(exist = false)
    private String mchShortName;

    /**
     * 区分是正常获取码牌数据还是其它途径，为null则为正常获取（页面码牌管理列表）
     */
    @TableField(exist = false)
    private Byte getType;

    /**
     * 用户名称
     */
    @TableField(exist = false)
    private String mchUserName;

    /**
     * 用户电话
     */
    @TableField(exist = false)
    private String mchUserPhone;

    @TableField(exist = false)
    private String mchServiceName;

    @TableField(exist = false)
    private String mchServicePhone;

    @TableField(exist = false)
    private String bindAppIdName;


    @TableField(exist = false)
    private Date firstDate;

    @TableField(exist = false)
    private Date lastDate;

    @TableField(exist = false)
    List<String> subAgentNoList;

    @TableField(exist = false)
    private String ifName;

    @TableField(exist = false)
    private String ifCode;

    @TableField(exist = false)
    List<String> storeIdList;

    @TableField(exist = false)
    private String isvName;

    /**
     * 渠道简称
     */
    @TableField(exist = false)
    private String isvShortName;

    @TableField(exist = false)
    private String isvNo;

}
