package com.jeequan.jeepay.db.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * <p>
 * 
 * </p>
 *
 * @author [mybatis plus generator]
 * @since 2024-04-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "t_division_subject",autoResultMap = true)
public class DivisionSubject extends BaseModel {

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

    private static final long serialVersionUID=1L;

    /**
     *接收方类型
     */
    public static final byte RECEIVE_TYPE = 0;

    /**
     *分出方类型
     */
    public static final byte EXPEND_TYPE = 1;


    /**
     *接收方类型 个人
     */
    public static final byte USER_TYPE_PERSONAL = 0;

    /**
     *分出方类型 商户
     */
    public static final byte USER_TYPE_MERCHANT = 1;

    /**
     *是否收取手续费 0：否
     */
    public static final byte IS_CHARGE_NO = 0;

    /**
     *是否收取手续费 1：是
     */
    public static final byte IS_CHARGE_YES = 1;

    /**
     *
     */
    @TableId(value = "subject_id", type = IdType.INPUT)
    private String subjectId;

    /**
     * 任务ID
     */
    private String taskId;

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

    /**
     * 类型 0：接收方 1：分出方
     */
    private Byte type;

    /**
     * 所属通道
     */
    private String ifCode;

    /**
     * 所属渠道
     */
    private String isvNo;

    /**
     * 用户类型  0：个人 1：商户
     */
    private Byte userType;

    /**
     * 个人名称或者商户名称
     */
    private String name;

    /**
     * 平台分账账户号 个人表示手机号 商户表示商户号
     */
    private String divisionNo;

    /**
     * 平渠道分账账户号
     */
    private String channelDivisionNo;

    /**
     * 是否收取手续费 0：否 1：是
     */
    private Byte isCharge;

    /**
     * 结算类型 1：到银行卡 2：到支付宝
     */
    private Byte settleType;

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

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


    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONObject info;

}
