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

import com.alibaba.excel.annotation.ExcelProperty;
import com.ningdatech.carapi.common.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author PoffyZhang
 * @since 2022-10-09
 */
@Data
@ApiModel(value = "VehicleBaseExportDTO", description = "车辆档案-车辆基本信息-导出")
@NoArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@AllArgsConstructor
public class VehicleBaseExportDTO extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    @ExcelProperty("ID")
    private Long id;

    @ApiModelProperty("车牌号")
    @ExcelProperty("车牌号")
    private String carPlate;

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

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

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

    @ApiModelProperty("驾驶员ID")
    @ExcelProperty("驾驶员ID")
    private Long driverId;

    @ApiModelProperty("所属企业名称")
    @ExcelProperty("所属企业名称")
    private String companyName;

    @ApiModelProperty("行政区域id")
    @ExcelProperty("行政区域id")
    private Long regionId;

    @ApiModelProperty("行政区域名称")
    @ExcelProperty("行政区域名称")
    private String regionName;

    @ApiModelProperty("车辆类型")
    @ExcelProperty("车辆类型")
    private Integer vehicleType;

    @ApiModelProperty("车辆类型名")
    @ExcelProperty("车辆类型名")
    private String vehicleTypeName;

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

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

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

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

    @ApiModelProperty("运营商名")
    @ExcelProperty("运营商名")
    private String operatorName;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @ApiModelProperty("审核状态 1.审核中 2.审核通过 3.审核不通过")
    @ExcelProperty("审核状态 1.审核中 2.审核通过 3.审核不通过")
    private Integer auditState;

    @ApiModelProperty("审核时间")
    @ExcelProperty("审核时间")
    private LocalDateTime auditTime;

    @ApiModelProperty("审核人")
    @ExcelProperty("审核人")
    private Long auditBy;

    @ApiModelProperty("审核意见")
    @ExcelProperty("审核意见")
    private String audiMind;

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

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

    @ApiModelProperty("车辆状态 0离线 1在线 2异常")
    @ExcelProperty("车辆状态 0离线 1在线 2异常")
    private Integer status;

    @ApiModelProperty("车辆是否行驶 0没有行驶 1行驶中")
    @ExcelProperty("车辆是否行驶 0没有行驶 1行驶中")
    private Integer moving;

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

    @ApiModelProperty("车辆状态")
    @ExcelProperty("车辆状态")
    private String vehicleStatusName;
}
