package com.unis.crk.cplbusiness.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.unis.crk.basic.entity.Attaches;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 调度管理(车辆管理表)
 * </p>
 *
 * @author TangSong
 * @since 2022-05-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="DispatchEhicleManagement对象", description="调度管理(车辆管理表)")
public class DispatchEhicleManagement implements Serializable {

private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "数据记录id")
    @TableId(value = "dataId", type = IdType.UUID)
    private String dataId;

    @ApiModelProperty(value = "单位ID")
    private String unitid;

    @ApiModelProperty(value = "条目创建人")
    private String builder;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "builderDate",fill = FieldFill.INSERT)
    private Date builderDate;

    @ApiModelProperty(value = "编辑人")
    private String editor;

    @ApiModelProperty(value = "修改时间")
    @TableField(value = "modifyDate",fill = FieldFill.INSERT_UPDATE)
    private Date modifyDate;

    @ApiModelProperty(value = "上传数据时间")
    @TableField(value = "updateTime",strategy = FieldStrategy.IGNORED,update = "null",fill = FieldFill.UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "车牌号")
    private String licensePlateNumber;

    @ApiModelProperty(value = "车辆类型")
    private String ehicleType;

    @ApiModelProperty(value = "车辆品牌")
    private String ehicleBrand;

    @ApiModelProperty(value = "车牌型号")
    private String licensePlateModel;

    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date dateOfProduction;

    @ApiModelProperty(value = "购入时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date purchaseTime;

    @ApiModelProperty(value = "购入单位")
    private String purchaseUnit;

    @ApiModelProperty(value = "购买价格")
    private Double purchasePrice;

    @ApiModelProperty(value = "初始公里数")
    private Double initialKilometers;

    @ApiModelProperty(value = "当前状态")
    private String currentState;

    @ApiModelProperty(value = "耗油量")
    private Double fuelConsumption;

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

    @ApiModelProperty(value = "载重")
    @TableField("vehicle_load")
    private String vehicleLoad;

    @ApiModelProperty(value = "座位")
    private Integer seat;

    @ApiModelProperty(value = "年审日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date annualReviewDate;

    @ApiModelProperty(value = "年审项目")
    private String annualReviewItems ;

    @ApiModelProperty(value = "年审情况")
    private String annualReview;

    @ApiModelProperty(value = "下次年审日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date dateOfNextAnnualReview;

    @ApiModelProperty(value = "入保时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date insuredTime;

    @ApiModelProperty(value = "保险公司")
    private String insuranceCompany;

    @ApiModelProperty(value = "投保情况")
    private String insuranceCoverage;

    @ApiModelProperty(value = "出保日期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date dateOfIssue;

    @ApiModelProperty(value = "正面照片url")
    private String frontPhoto;

    @ApiModelProperty(value = "侧面照片url")
    private String profilePhoto;

    @ApiModelProperty(value = "附件信息")
    @TableField(exist = false)
    private List<Attaches> attaches = new ArrayList<>();

    @ApiModelProperty(value = "驾驶人员")
    private String driver;

}
