package com.yeejoin.equipmanage.common.entity.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.dto.CommonFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;


@Data
public class CarMessage {

        private static final long serialVersionUID = 1L;

        @ApiModelProperty(value = "id")
        private Long id;

        @ApiModelProperty(value = "名称")
        private String name;

        @ApiModelProperty(value = "车牌号")
        private String carNum;

        @ApiModelProperty(value = "车辆类型")
        private Long equipmentId;

        @ApiModelProperty(value = "车辆状态")
        private String carState;

        @ApiModelProperty(value = "品牌")
        private String brand;

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

        @ApiModelProperty(value = "规格型号")
        private String standard;

        @ApiModelProperty(value = "底盘品牌")
        private String chassisBrand;

        @ApiModelProperty(value = "厂商id")
        private Long manufacturerId;

        @ApiModelProperty(value = "底盘国别")
        private String chassisCountry;

        @ApiModelProperty(value = "国别")
        private String country;

        @ApiModelProperty(value = "进口国产")
        private Boolean isImport;

        @ApiModelProperty(value = "二维码")
        private String qrCode;

        @ApiModelProperty(value = "全部二维码含类型标识03#qrCode")
        private String fullQrCode;

        @ApiModelProperty(value = "保养周期")
        private BigDecimal maintenanceCycle;

        @ApiModelProperty(value = "3c认证")
        private Boolean cccAuth;

        @ApiModelProperty(value = "负责人")
        private Long creatorId;

        @ApiModelProperty(value = "组织机构")
        private String orgCode;

        @ApiModelProperty(value = "公司名")
        private String companyName;

        @ApiModelProperty(value = "部门code")
        private String departmentOrgcode;

        @ApiModelProperty(value = "部门名")
        private String departmentName;

        @ApiModelProperty(value = "物联编码")
        private String iotCode;

        @ApiModelProperty(value = "所属单位id(来源于平台)")
        private String agencyId;

        @ApiModelProperty(value = "所属队伍id(来源于平台)")
        private String teamId;

        @ApiModelProperty(value = "队伍名称(冗余字段来源于平台)")
        private String teamName;

        @ApiModelProperty(value = "机构/部门名称")
        private String bizOrgName;

        @ApiModelProperty(value = "机构编码")
        private String bizOrgCode;

        @ApiModelProperty(value = "图片")
        @TableField(exist = false)
        private List<CommonFile> img;

        @ApiModelProperty(value = "视频")
        @TableField(exist = false)
        private List<UploadFile> video;

        @ApiModelProperty(value = "证书")
        @TableField(exist = false)
        private List<CommonFile> certification;

        @ApiModelProperty(value = "说明")
        @TableField(exist = false)
        private List<UploadFile> instruction;

        @TableField(exist = false)
        private Equipment equipment;

        @TableField(exist = false)
        private String manufacturerName;

        @TableField(exist = false)
        private String countryName;

        @TableField(exist = false)
        private String chassisCountryName;

        @TableField(exist = false)
        private ManufacturerInfo manufacturerInfo;

        @TableField(exist = false)
        private List<CarProperty> carPropertyList;

        @TableField(exist = false)
        private List<Journal> journals;

        @TableField(exist = false)
        private List<EquipmentOnCarAppVO> EquipmentsOnCar;

        @TableField(exist = false)
        @ApiModelProperty(value = "扩展字段")
        private String ext;

        @TableField(exist = false)
        private String unitName;

        @TableField(exist = false)
        private Unit unit;

        @ApiModelProperty(value = "证书")
        @TableField(exist = false)
        private String iotStatus;


        @TableField(exist = false)
        private Long categoryId;

        @TableField(exist = false)
        private String importStr;

        @TableField(exist = false)
        private Integer totalTravel;

        @TableField(exist = false)
        private double longitude;

        @TableField(exist = false)
        private double latitude;

        @TableField(exist = false)
        private Integer speed;


        @ApiModelProperty(value = "配备方式")
        private String deployment;

        @ApiModelProperty(value = "配备日期")
        private String deployDate;

        @ApiModelProperty(value = "配备日期区间")
        @TableField(typeHandler = FastjsonTypeHandler.class )
        private List<String> deployDateRange;

        @ApiModelProperty(value = "排量")
        private String displacement;

        @ApiModelProperty(value = "车辆产权单位")
        private String ownership;

        @ApiModelProperty(value = "编号")
        private String code;

        @ApiModelProperty(value = "扩展字段1")
        private String extra1;

        @ApiModelProperty(value = "扩展字段2")
        private String extra2;

        @ApiModelProperty(value = "扩展字段3")
        private String extra3;

        @ApiModelProperty(value = "扩展字段4")
        private String extra4;

        @TableField(exist = false)
        private String iotMeasurement;

        @TableField(exist = false)
        private String iotDeviceName;
        // 2023年11月6日 11点16分添加
        @ApiModelProperty(value = "司机")
        private String driver;
        // 2023年11月6日 11点16分添加
        @ApiModelProperty(value = "联系电话")
        private String phone;
        // 2023年11月6日 11点16分添加
        @ApiModelProperty(value = "速度阈值")
        private Double maxSpeed;

}
