package com.yuchen.saas.manage.user.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nest.springwrap.core.mp.base.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * @ClassName UserVehicleData
 * @Description 用户车辆数据表
 * @Author 张逸飞
 * @Date 2022/6/16 15:50
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "用户车辆数据表", description = "用户车辆数据表")
@TableName("user_vehicle_data")
public class UserVehicleData extends BaseEntity {

    /**
     * 微信openid or 用户ID
     */
    @ApiModelProperty(name = "payUserId", value = "微信openid or 用户ID")
    private String payUserId;

    /**
     * 平台级用户ID
     */
    @ApiModelProperty(name = "userDetailId", value = "平台级用户ID")
    private Long userDetailId;

    /**
     * 车牌号码
     */
    @ApiModelProperty(name = "plateNo", value = "车牌号码")
    @NotBlank(message = "请输入车牌号")
    private String plateNo;

    /**
     * 车架号
     */
    @ApiModelProperty(name = "frameNo", value = "车架号")
    private String frameNo;

    /**
     * 车辆类型
     */
    @ApiModelProperty(name = "carType", value = "车辆类型（0：其他车、1：小型车、2：大型车、3：摩托车）")
    private Integer carType;

    /**
     * 能耗类型
     */
    @ApiModelProperty(name = "energyType", value = "能耗类型（0：其他类型、1：汽油车、2：新能源）")
    private Integer energyType;


    /**
     * 车辆认证状态(0:未认证 1:已认证)
     */
    @ApiModelProperty(name = "certificationStatus", value = "车辆认证状态(0:未认证 1:已认证 2:已被认证)")
    private Integer certificationStatus;

    /**
     * 开启消息通知(1:是，2：否)
     */
    @ApiModelProperty(name = "messageOpenFlag", value = "开启消息通知(1:是，2：否)")
    private Integer messageOpenFlag;

    /**
     * 对别人（1：隐藏场站和时长，2：隐藏场站）
     */
    @ApiModelProperty(name = "otherDataFlag", value = "对别人（1：隐藏场站和时长，2：隐藏场站）")
    private Integer otherDataFlag;

    /**
     * 对自己-显示信息（0：显示完整信息，1:隐藏场站及时长，2：隐藏场站）
     */
    @ApiModelProperty(name = "oneselfDataFlag", value = "对自己-显示信息（0：显示完整信息，1:隐藏场站及时长，2：隐藏场站）")
    private Integer oneselfDataFlag;


    /**
     * 是否为默认车辆(0:否 1:是)
     */
    @ApiModelProperty(name = "isDefault", value = "是否为默认车辆(0:否 1:是)")
    private Integer isDefault;


    /**
     * 是否开启即插即充(0:关闭 1:开启)
     */
    @ApiModelProperty(name = "isOpen", value = "是否开启即插即充(0:关闭 1:开启)")
    private Integer isOpen;


    /**
     * 是否可代缴(0:否 1:是) - 废弃
     */
    @ApiModelProperty(name = "isReplacePay", value = "是否可代缴(0:否 1:是)")
    private Integer isReplacePay;

    /**
     * 是否开通「个人钱包账户」无感支付(0:否 1:是)
     */
    @ApiModelProperty(name = "isOpenWalletPay", value = "是否开通「个人钱包账户」无感支付(0:否 1:是)")
    private Integer isOpenWalletPay;

    /**
     * 「个人钱包账户」无感支付优先级(值越小,优先级越高)
     */
    @ApiModelProperty(name = "walletPayPriority", value = "「个人钱包账户」无感支付优先级(值越小,优先级越高)")
    private Integer walletPayPriority;

    /**
     * 是否开通「微信支付分|先享后付」(0:否 1:是)
     */
    @ApiModelProperty(name = "isOpenWechatPointsPay", value = "是否开通「微信支付分|先享后付」(0:否 1:是)")
    private Integer isOpenWechatPointsPay;

    /**
     * 「微信支付分|先享后付」无感支付优先级(值越小,优先级越高)
     */
    @ApiModelProperty(name = "wechatPointsPayPriority", value = "「微信支付分|先享后付」无感支付优先级(值越小,优先级越高)")
    private Integer wechatPointsPayPriority;

    /**
     * 是否开通「优惠券」无感支付(0:否 1:是)
     */
    @ApiModelProperty(name = "isOpenCouponPay", value = "是否开通「优惠券」无感支付(0:否 1:是)")
    private Integer isOpenCouponPay;

    /**
     * 「优惠券」无感支付优先级(值越小,优先级越高)
     */
    @ApiModelProperty(name = "couponPayPriority", value = "「优惠券」无感支付优先级(值越小,优先级越高)")
    private Integer couponPayPriority;

    /**
     * 数据来源应用号
     */
    @ApiModelProperty(name = "dataSourceNo", value = "数据来源应用号")
    @NotBlank(message = "数据来源应用号不能为空")
    private String dataSourceNo;

    /**
     * 是否允许别人添加车辆
     */
    @ApiModelProperty(name = "isAllowOtherUserAdd", value = "是否允许别人添加车辆")
    private Integer isAllowOtherUserAdd;


    /**
     * 应用ID
     */
    @ApiModelProperty(name = "applyId", value = "应用ID")
    private String applyId;


    /**
     * 添加类型
     */
    @ApiModelProperty(name = "addType", value = "添加类型")
    private Integer addType;




}
