package com.ningdatech.carapi.car.vehicle.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 实体类
 * 车辆信息
 * </p>
 *
 * @author PoffyZhang
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "VehicleSaveDTO", description = "车辆信息保存")
public class VehicleSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("车牌号")
    @NotEmpty(message = "请输入车牌号!")
    private String carPlate;

    @ApiModelProperty("自编号")
    private String selfNo;

    @ApiModelProperty("车辆颜色")
    private String plateColor;

    @ApiModelProperty("所属企业ID")
    private Long companyId;

    @ApiModelProperty("车辆类型")
    @NotNull(message = "请选择车辆类型!")
    private Integer vehicleType;

    @ApiModelProperty("标准吨位 单位:吨")
    private Double standardTonnage;

    @ApiModelProperty("发动机号")
    private String engineNo;

    @ApiModelProperty("底盘号")
    @NotBlank
    private String chassisNo;

    @ApiModelProperty("运营商ID")
    private Long operatorId;

    @ApiModelProperty("责任驾驶员一")
    private String responsibleDriverFirst;

    @ApiModelProperty("责任驾驶员一 电话")
    private String responsibleDriverFirstMobile;

    @ApiModelProperty("责任驾驶员二")
    private String responsibleDriverSecond;

    @ApiModelProperty("责任驾驶员二 电话")
    private String responsibleDriverSecondMobile;

    @ApiModelProperty("百公里油耗 单位: L/km")
    private Double fuelConsumptionPer;

    @ApiModelProperty("限速值 公里/小时")
    private Double limitedSpeed;

    @ApiModelProperty("标准油量 L")
    private Double standardOilQuantity;

    @ApiModelProperty("车身长度 cm")
    private Double vehicleLength;

    @ApiModelProperty("保养时间")
    private LocalDateTime serviceTime;

    @ApiModelProperty("保养时间周期 天")
    private Integer serviceTimeInterval;

    @ApiModelProperty("保养里程 km")
    private Double serviceCycle;

    @ApiModelProperty("保养时间周期 天")
    private Integer serviceCycleInterval;

    @ApiModelProperty("服务费开始时间")
    private LocalDateTime serviceFeeStart;

    @ApiModelProperty("服务费结束时间")
    private LocalDateTime serviceFeeEnd;

    @ApiModelProperty("燃油级别")
    private String fuelLevel;

    @ApiModelProperty("道路运证编号")
    private String roadTransportationNum;

    @ApiModelProperty("排放标准")
    private String effluentDischargeStandard;

    @ApiModelProperty("使用年限")
    private Integer usefulLife;

    @ApiModelProperty("自重 吨")
    private Double selfWeight;

    @ApiModelProperty("使用企业ID")
    private Long useCompanyId;

    @ApiModelProperty("使用企业名称")
    private String useCompanyName;

    @ApiModelProperty("车辆状态")
    private Integer vehicleStatus;

    @ApiModelProperty("附件")
    private String appendix;
}
