package com.prolog.rdc.tms.model.vo.fleetManagement;

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 车辆资料新增VO
 * 
 * @author Eton Woo
 * @date 2022/03/16
 */
@Data
@ApiModel("车辆资料新增VO")
public class VehicleAddVO implements Serializable {

	private static final long serialVersionUID = -8018397495999764399L;

	@ApiModelProperty(value = "车辆编码", required = true)
	private String code;
	
	@ApiModelProperty(value = "车牌号", required = true)
	private String plateNumber;
	
	@ApiModelProperty(value = "车辆类型：数据字典VEHICLE_TYPE: 1自有、2挂靠、3临时", required = true)
	private Integer type;
	
	@ApiModelProperty(value = "隶属机构ID")
	private Long affiliationId;
	
	@ApiModelProperty(value = "隶属机构编码")
	private String affiliationCode;
	
	@ApiModelProperty(value = "隶属机构名称")
	private String affiliationName;
	
	@ApiModelProperty(value = "车型ID", required = true)
	private Long vehicleTypeId;
	
	@ApiModelProperty(value = "车型编码", required = true)
	private String vehicleTypeCode;
	
	@ApiModelProperty(value = "车型名称", required = true)
	private String vehicleTypeName;
	
	@ApiModelProperty(value = "车辆设备关联新增")
	private List<VehicleDeviceLinkAddVO> vehicleDeviceLinks = new ArrayList<VehicleDeviceLinkAddVO>();
	
	@ApiModelProperty(value = "备注")
	private String memo;

	@ApiModelProperty(value = "所属组织ID")
	private Long organizationId;

	@ApiModelProperty(value = "所属组织编码")
	private String organizationCode;

	@ApiModelProperty(value = "所属组织名称")
	private String organizationName;

	@ApiModelProperty(value = "所属部门ID")
	private String departmentId;

	@ApiModelProperty(value = "所属部门编码")
	private String departmentCode;

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

	@ApiModelProperty(value = "字符属性扩展1")
	private String extStr1;

	@ApiModelProperty(value = "字符属性扩展2")
	private String extStr2;

	@ApiModelProperty(value = "字符属性扩展3")
	private String extStr3;

	@ApiModelProperty(value = "字符属性扩展4")
	private String extStr4;

	@ApiModelProperty(value = "字符属性扩展5")
	private String extStr5;

	@ApiModelProperty(value = "数值属性扩展1")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "数值属性扩展2")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "数值属性扩展3")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "数值属性扩展4")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "数值属性扩展5")
	private BigDecimal extNum5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展1")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展2")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展3")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展4")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展5")
	private Date extDate5;
	
	@ApiModelProperty(value = "车辆司机关联新增")
	private List<VehicleDriverLinkAddVO> vehicleDriverLinks = new ArrayList<VehicleDriverLinkAddVO>();
	
	@ApiModelProperty(value = "车辆证件关联新增")
	private List<VehiclePaperLinkAddVO> vehiclePaperLinks = new ArrayList<VehiclePaperLinkAddVO>();

	@ApiModelProperty(value = "里程管理 数据字典MILEAGE_MANAGEMENT 0：否 1：是 ")
	private Integer mileageManagement;

	@ApiModelProperty(value = "车辆容器关联新增")
	private List<VehicleContainerLinkVO> vehicleContainerLinks;
}
