package com.tofly.pojo.car.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author wujianjun
 * @date 2023/12/11 15:11
 */
@Data
public class CarBaseinfoSaveDTO {

    @ApiModelProperty(value = "ID 修改的时候必须穿")
    private Long id = 0L;

    @ApiModelProperty(value = "车牌号")
    @NotBlank(message = "车牌号必须填写")
    private String carNumber;

    @ApiModelProperty(value = "车辆类型")
    @NotNull(message = "车辆类型必须填写")
    private Long carType;

    @ApiModelProperty(value = "车辆限速")
    @NotBlank(message = "车辆限速必须填写")
    private String speedLimit;

    @ApiModelProperty(value = "负责人")
    @NotNull(message = "负责编号必须填写")
    private Long manager;

    @ApiModelProperty(value = "当前状态")
    @NotNull(message = "当前状态必须填写")
    private String carStatas;

    @ApiModelProperty(value = "车辆状态 0 再用 1停用 2报废")
    @NotNull(message = "车辆状态必须填写")
    private String state;

    @ApiModelProperty(value = "部门ID")
    @NotNull(message = "部门ID必须填写")
    private Long departmentId;

    @ApiModelProperty(value = "图片列表")
    private List<String> filePath;

    /**
     * 品牌型号
     */
    @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 = "注册日期")
    private String registerDate;

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

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

    /**
     * 车险购买时间
     */
    @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;

}
