package com.muyu.car.domain.vo;

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.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName(value = "t_car",autoResultMap = true)
public class CarVO {
    /**
     * 车辆表
     */
    @TableId(value = "car_id",type = IdType.AUTO)
    private Integer carId;
    /**
     * 车架号
     */
    private String carFrame;
    /**
     * 车牌号
     */
    private String carCoed;
    /**
     * 车牌颜色 1.白色 2.绿色 3.黑色 4.银色 5.红色
     */
    private Integer carColor;
    /**
     * VIN码
     */
    private String carVin;
    /**
     * 驾车人
     */
    private Long carUserId;
    /**
     * 车主
     */
    private Long userId;
    /**
     * 车辆配置
     */
    private Integer typeId;
    /**
     * 年审日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date audditTime;
    /**
     * 行驶证到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date licenseTime;
    /**
     * 保险到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date insuranceTime;
    /**
     * 在线状态 1.无信号 2.行驶中 3.已停止
     */
    private Integer carStatus;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
    /**
     * 当前档位
     */
    private Integer carGears;

    /** 车辆品牌 */
    private String carModel;
    /**
     * 车辆型号
     */
    private String carBrand;

    /** 最后一次连线时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date carLastJoinTime;

    /** 最后一次离线时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date carLastOfflineTime;


    /** 所属企业 */
    private Long companyId;

    /** 车辆车型(如客车,卡车,公交车等) */
    private String carType;

    /**
     * 车辆型号
     */
    @TableField(exist = false)
    private String typeName;

    /**
     * 能源类型 1.电动 2.纯油 3.混动
     */
    @TableField(exist = false)
    private Integer energyType;
    /**
     * 档的类型 1.手动  2.自动
     */
    @TableField(exist = false)
    private Integer gearType;

}
