package com.bs.tm.domain;

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.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * 车辆信息对象 tm_vehicle
 *
 * @author bs
 * @date 2024-02-07
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tm_vehicle")
@Data
public class TmVehicle extends BaseEntity{
    private static final long serialVersionUID = 1L;

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

    /** 客户id */

    @Excel(name = "客户id")
    @ApiModelProperty(value = "客户id")
    private Long custId;

    /** 车源类型 */

    @Excel(name = "车源类型")
    @ApiModelProperty(value = "车源类型")
    private String vehicleType;

    /** 车辆结构 */

    @Excel(name = "车辆结构")
    @ApiModelProperty(value = "车辆结构")
    private String vehicleStucture;

    /** 车型 */

    @Excel(name = "车型")
    @ApiModelProperty(value = "车型")
    private String vehicleModel;

    /** 车长 */

    @Excel(name = "车长")
    @ApiModelProperty(value = "车长")
    private String vehicleLength;

    /** 载重 */

    @Excel(name = "载重")
    @ApiModelProperty(value = "载重")
    private String vehicleLoad;

    /** 装载体积 */

    @Excel(name = "装载体积")
    @ApiModelProperty(value = "装载体积")
    private String vehicleVol;

    /** 品牌型号 */

    @Excel(name = "品牌型号")
    @ApiModelProperty(value = "品牌型号")
    private String vehicleBrand;

    /** 内部编号 */

    @Excel(name = "内部编号")
    @ApiModelProperty(value = "内部编号")
    private String vehicleNo;

    /** 车牌号码 */

    @Excel(name = "车牌号码")
    @ApiModelProperty(value = "车牌号码")
    private String vehicleNumber;

    /** 套牌号码 */

    @Excel(name = "套牌号码")
    @ApiModelProperty(value = "套牌号码")
    private String vehicleFakeNumber;

    /** 车架号 */

    @Excel(name = "车架号")
    @ApiModelProperty(value = "车架号")
    private String frameNumber;

    /** 发动机号 */

    @Excel(name = "发动机号")
    @ApiModelProperty(value = "发动机号")
    private String engineNumber;

    /** 行驶证 */

    @Excel(name = "行驶证")
    @ApiModelProperty(value = "行驶证")
    private String vehicleLicense;

    /** 营运证编号 */

    @Excel(name = "营运证编号")
    @ApiModelProperty(value = "营运证编号")
    private String operationNumber;

    /** 默认司机 */

    @Excel(name = "默认司机")
    @ApiModelProperty(value = "默认司机")
    private Long driverId;

    /** 营运证发证日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "营运证发证日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "营运证发证日期")
    private Date certDate;

    /** 保险起始日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保险起始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "保险起始日期")
    private Date insuranceBeginDate;

    /** 保险结束日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保险结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "保险结束日期")
    private Date insuranceEndDate;

    /** 保险单号 */

    @Excel(name = "保险单号")
    @ApiModelProperty(value = "保险单号")
    private String insuranceNo;

    /** gps唯一编号 */

    @Excel(name = "gps唯一编号")
    @ApiModelProperty(value = "gps唯一编号")
    private String gpsNo;

    /** 行驶证签发日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行驶证签发日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "行驶证签发日期")
    private Date driveBeginDate;

    /** 行驶证结束日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行驶证结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "行驶证结束日期")
    private Date driveEndDate;

    /** 商险起始日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商险起始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "商险起始日期")
    private Date consultBeginDate;

    /** 商险结束日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商险结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "商险结束日期")
    private Date consultEndDate;

    /** 年检日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "年检日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "年检日期")
    private Date asDate;

    /** 年检单号 */

    @Excel(name = "年检单号")
    @ApiModelProperty(value = "年检单号")
    private String asNo;

    /** 商险单号 */

    @Excel(name = "商险单号")
    @ApiModelProperty(value = "商险单号")
    private String consultNo;

    /** 车辆源类型 */

    @Excel(name = "车辆源类型")
    @ApiModelProperty(value = "车辆源类型")
    private String options;

    /** 营运证截止日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "营运证截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "营运证截止日期")
    private Date certValid;

    /** 是否外借 */

    @Excel(name = "是否外借")
    @ApiModelProperty(value = "是否外借")
    private String lendOut;

    /** 自重 */

    @Excel(name = "自重")
    @ApiModelProperty(value = "自重")
    private BigDecimal weight;

    /** 车架尺寸 */

    @Excel(name = "车架尺寸")
    @ApiModelProperty(value = "车架尺寸")
    private String frameSize;

    /** 行驶证ID */

    @Excel(name = "行驶证ID")
    @ApiModelProperty(value = "行驶证ID")
    private String vehicleLicenseId;

    /** 营运证ID */

    @Excel(name = "营运证ID")
    @ApiModelProperty(value = "营运证ID")
    private String operationCertificateId;

    /** 商业险ID */

    @Excel(name = "商业险ID")
    @ApiModelProperty(value = "商业险ID")
    private String commercialInsuranceId;

    /** 交强险ID */

    @Excel(name = "交强险ID")
    @ApiModelProperty(value = "交强险ID")
    private String compulsoryTrafficInsuranceId;

    /** 产权证ID */

    @Excel(name = "产权证ID")
    @ApiModelProperty(value = "产权证ID")
    private String vehicleOwnershipCertificateId;

    /** 其他文件ID */

    @Excel(name = "其他文件ID")
    @ApiModelProperty(value = "其他文件ID")
    private String otherFileId;

    /** 状态 */

    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /** 备注 */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "默认司机名称")
    @TableField(exist = false)
    private String driverName;

    @ApiModelProperty(value = "客户名称")
    @TableField(exist = false)
    private String custName;




}
