package com.gci.boot.modules.vehicles.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gci.boot.annotation.Query.SelectQuery;
import com.gci.boot.annotation.repeat.FieldRepeat;
import com.gci.boot.common.dict.annotation.Dict;
import com.gci.boot.common.dict.excel.DictConverter;
import com.gci.boot.common.validated.SaveValidated;
import com.gci.boot.common.validated.UpdateValidated;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

@Data
public class VehicleInfoVO {


    private String id;

    @ApiModelProperty("所属项目")
    @Dict(dicCode = "id",dictTable = "tb_projects",dicText = "project_name")
    private String projectId;

    @ApiModelProperty("车牌号")
    private String plateNumber;

    @ApiModelProperty("交车时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date deliveryTime;

    @ApiModelProperty("车架号")
    private String frameNumber;

    @ApiModelProperty("车辆品牌")
    @Dict(dicCode = "vehicle_brand")
    private String vehicleBrand;

    @ApiModelProperty("车辆型号")
    private String vehicleModel;

    @ApiModelProperty("车辆种类")
    @Dict(dicCode = "vehicle_type")
    private String vehicleType;

    @ApiModelProperty("VIN码")
    private String vinCode;

    @ApiModelProperty("发动机码")
    private String engineNumber;

    @ApiModelProperty("上次保养时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date lastTime;

    @ApiModelProperty("上次保养里程")
    private Integer lastMileage;

    @ApiModelProperty("总里程")
    private Double totalMileage;

    @ApiModelProperty("本月的累计里程数")
    private Double monthlyTotalMileage;
}
