package com.sckw.fleet.model.reponse;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author zk
 * @desc 车辆信息
 * @date 2023/7/11 0011
 */
@Data
public class TruckDetailResp implements Serializable {

    @Serial
    private static final long serialVersionUID = -390999289225406231L;

    /**
     * 车辆主键id
     */
    @Schema(description = "车辆主键id")
    private Long id;

    /**
     * 车牌号
     */
    @Schema(description = "车牌号")
    private String truckNo;

    /**
     * 车辆类别(牵引车、货车)
     */
    @Schema(description = "车辆类别(牵引车、货车)")
    private Integer type;

    /**
     * 车辆类别描述
     */
    @Schema(description = "车辆类别描述")
    private String typeDesc;

    /**
     * 轴数（1-二轴、2-三轴、3-四轴、5-六轴）
     */
    @Schema(description = "轴数（1-二轴、2-三轴、3-四轴、5-六轴）")
    private String carAxis;

    /**
     * 轴数名称
     */
    @Schema(description = "轴数名称")
    private String carAxisName;

    /**
     * 车辆唯一识别码
     */
    @Schema(description = "vin")
    private String vin;

    /**
     * 品牌
     */
    @Schema(description = "品牌")
    private String brand;

    /**
     * 能源类型(1-传统能源车辆、2-新能源车辆)
     */
    @Schema(description = "能源类型(1-传统能源车辆、2-新能源车辆)")
    private Integer energyType;

    /**
     * 能源类型描述
     */
    @Schema(description = "能源类型描述")
    private String energyTypeDesc;

    /**
     * 排放标准(1-国四、2-国五、3-国六)
     */
    @Schema(description = "排放标准(1-国四、2-国五、3-国六)")
    private Integer eev;

    /**
     * 排放标准描述
     */
    @Schema(description = "排放标准描述")
    private String eevDesc;

    /**
     * 状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)
     */
    @Schema(description = "状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)")
    private Integer status;

    /**
     * 状态描述
     */
    @Schema(description = "状态描述")
    private String statusDesc;


    /**
     * 发动机号
     */
    @Schema(description = "发动机号")
    private String engineNo;

    /**
     * 年审到期时间
     */
    @NotNull(message = "年审到期时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date annualInspectionTime;

    /**
     * 道路运输证有效期
     */
    @NotNull(message = "道路运输证有效期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date transportValidityTime;

    /**
     * 定位设备
     */
    @Schema(description = "发动机号")
    private String positionDevice;

    /**
     * 车辆行驶证信息
     */
    @Schema(description = "车辆行驶证信息")
    private String truckLicense;

    /**
     * 车辆道路运输许可证
     */
    @Schema(description = "车辆道路运输许可证")
    private String transportLicense;

    /**
     * 环保清单照片
     */
    @Schema(description = "环保清单照片")
    private String environmentalList;

    /**
     * 车队id
     */
    @Schema(description = "车队id")
    private Long fleetId;

    /**
     * 车队名称
     */
    @Schema(description = "车队名称")
    private String fleetName;

    /**
     * 车队名称
     */
    @Schema(description = "车队名称")
    private String driverName;

    /**
     * 黑名单
     */
    @Schema(description = "目标状态: 0-正常、1-黑名单")
    private Integer blacklist;

    /**
     * 审核驳回理由
     */
    @Schema(description = "审核驳回理由")
    private String remark;


}
