package com.jeequan.jeepay.db.entity;

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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * <p>
 * 服务商信息表
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2022-03-12
 */

@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_agent_info")
public class AgentInfo extends BaseModel {

    public static LambdaQueryWrapper<AgentInfo> gw(){
        return new LambdaQueryWrapper<>();
    }

    private static final long serialVersionUID=1L;

    /** 待审核 **/
    public static final byte AUDIT_STATE_ING = 2;
    /** 审核驳回 **/
    public static final byte AUDIT_STATE_FALSE = 3;
    /** 未认证 **/
    public static final byte AUDIT_STATE_UN_AUTH = 4;

    /**
     * 服务商账号
     */
    @TableId
    private String agentNo;

    /**
     * 服务商名称
     */
    private String agentName;

    /**
     * 服务商简称
     */
    private String agentShortName;

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

    /**
     * 上级服务商号， 空串表示顶级服务商
     */
    private String pid;

    private String pidArr;

    /**
     * 上级服务商简称
     */
    private String pname;

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

    /**
     * 联系人手机号
     */
    private String contactTel;

    /**
     * 联系人邮箱
     */
    private String contactEmail;

    /**
     * 服务商状态: 0-停用, 1-正常, 2-待审核, 3-审核驳回, 4-未认证
     */
    private Byte state;

    /**
     * 服务商等级
     */
    private Integer level;

    /**
     * 是否允许发展子代理: 0-不允许, 1-允许
     */
    private Byte addAgentFlag;

    /**
     * 是否允许发展子商户: 0-不允许, 1-允许
     */
    private Byte addMchFlag;

    /**
     * 服务商备注
     */
    private String remark;

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

    /**
     * 手续费计算公式类型： 1-使用系统默认配置, 2-自定义
     */
    private Byte cashoutFeeRuleType;

    /**
     * 手续费计算公式
     */
    private String cashoutFeeRule;

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

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

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

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

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

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

    /**
     * 营业执照图片
     */
    private String licenseImg;

    /**
     * 身份证人像面照片
     */
    private String idcard1Img;

    /**
     * 身份证国徽面照片
     */
    private String idcard2Img;

    /**
     * 手持身份证图片
     */
    private String idcardInHandImg;

    /**
     * 银行卡图片
     */
    private String bankCardImg;

    /**
     * 许可证照片
     */
    private String permitImg;

    /**
     * 服务商类型: 1-个人, 2-企业
     */
    private Byte agentType;

    /**
     * 是否为贴牌，1-是；0-否
     */
    private Byte oemType;

    /**
     * 初始用户ID（创建服务商时，允许服务商登录的用户）
     */
    private Long initUserId;

    /**
     * 登录用户名
     */
    private String loginUsername;

    /**
     * 支付密码(敏感信息密码Sensitive information password)
     */
    private String sipw;

    /**
     * 钱包冻结金额, 单位分
     */
    private Long freezeAmount;

    /**
     * 冻结原因
     */
    private String freezeDesc;

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

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

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

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

    /**
     * 邀请码
     */
    @TableField(exist = false)
    private String inviteCode;
}
