/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.pojo.car;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.es.CarGpsUpload;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;


/**
 * 车辆基本信息管理
 *
 * @author Zhangyu
 * @date Mon Apr 27 00:00:00 GMT+08:00 2020
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "TF_CAR_BASEINFO", resultMap = "carBaseinfoMap")
@ApiModel
public class CarBaseinfo extends Model<CarBaseinfo> {
    private static final long serialVersionUID = 1L;

    /**
     * 限速
     */
    @ApiModelProperty(value = "限速")
    private String speedLimit;
    /**
     * ID，主键
     */
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "ID，主键")
    private Long id;
    /**
     * 部门编号
     */
    @ApiModelProperty(value = "部门编号")
    private Long departmentId;
    @TableField(exist = false)
    @ApiModelProperty(hidden = true)
    private String departmentName;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    private String carNumber;
    /**
     * 当前状态
     */
    @ApiModelProperty(value = "当前状态")
    private String carStatas;
    /**
     * 车辆类型
     */
    @ApiModelProperty(value = "车辆类型")
    private Long carType;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String carTypeName;
    /**
     * 负责人
     */
    @ApiModelProperty(value = "负责人")
    private Long manager;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String managerName;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @TableField(value = "CREATE_USER", fill = FieldFill.INSERT)
    private Long createUser;
    @TableField(exist = false)
    @ApiModelProperty(hidden = true)
    private String createUserName;
    /**
     * 车辆照片
     */
    @ApiModelProperty(value = "车辆照片id")
    private String carPic;

    @ApiModelProperty(value = "车辆照片文件路径列表")
    @TableField(exist = false)
    private List<String> filePathList;
    /**
     * 删除标记
     */
    @TableLogic(value = "0", delval = "1")
    @ApiModelProperty(value = "删除标记")
    private String delFlag;

    /**
     * 删除时间
     */
    @ApiModelProperty(value = "删除时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date delTime;

    /**
     * 状况管理(0:在用,1:停用,2:报废)
     */
    @ApiModelProperty(value = "状况管理(0:在用,1:停用,2:报废)")
    private String state;
    @TableField(exist = false)
    @ApiModelProperty(hidden = true)
    private String stateName;

    /**
     * 是否绑定(0:未绑定,1:已绑定)
     */
    @ApiModelProperty(value = "是否绑定(0:未绑定,1:已绑定)")
    private String isBind;

    @ApiModelProperty(value = "车辆轨迹列表")
    @TableField(exist = false)
    private List<CarGpsUpload> carGpsUploads;

    @ApiModelProperty(value = "雪花ID")
    private String snowflakeId;

    /**
     * 品牌型号
     */
    @ApiModelProperty(value = "品牌型号")
    private String brandModel;

    /**
     * 是否国产（0否1是）
     */
    @ApiModelProperty(value = "是否国产（0否1是）")
    private String isDomestic;

    /**
     * 车架号
     */
    @ApiModelProperty(value = "车架号")
    private String frameNumber;

    /**
     * 动力类型
     */
    @ApiModelProperty(value = "动力类型")
    private String powerType;

    /**
     * 排气量（L/T）
     */
    @ApiModelProperty(value = "排气量（L/T）")
    private String exhaustVolume;

    /**
     * 注册日期
     */
    @ApiModelProperty(value = "注册日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerDate;

    /**
     * 使用性质
     */
    @ApiModelProperty(value = "使用性质")
    private String nature;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 车险购买时间
     */
    @ApiModelProperty(value = "车险购买时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date insuranceBuyDate;

    /**
     * 年审时间
     */
    @ApiModelProperty(value = "年审时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date annualReviewDate;

    /**
     * 部门id（多个用,分隔）
     */
    @ApiModelProperty(value = "部门id（多个用,分隔）")
    @TableField(exist = false)
    private String deptIds;
}
