/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.transport.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

import java.io.Serial;
import java.time.LocalDate;

/**
 * 车辆管理实体类
 *
 * @author Chill
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_vehicle")
@Schema(description = "车辆管理")
public class TransportVehicle extends TenantEntity {

	@Serial
	private static final long serialVersionUID = 1L;

	/**
	 * 所属组织
	 */
	@Schema(description = "所属组织")
	private String organizationName;
	/**
	 * 车牌号
	 */
	@Schema(description = "车牌号")
	private String plateNo;
	/**
	 * 车牌颜色
	 */
	@Schema(description = "车牌颜色")
	private String plateColor;
	/**
	 * 车辆类型
	 */
	@Schema(description = "车辆类型")
	private String vehicleType;
	/**
	 * 外廓长度，毫米
	 */
	@Schema(description = "外廓长度，毫米")
	private Integer outerLength;
	/**
	 * 外廓宽度，毫米
	 */
	@Schema(description = "外廓宽度，毫米")
	private Integer outerWidth;
	/**
	 * 外廓高度，毫米
	 */
	@Schema(description = "外廓高度，毫米")
	private Integer outerHeight;
	/**
	 * 核定载质量，KG
	 */
	@Schema(description = "核定载质量，KG")
	private Integer approvedLoadKg;
	/**
	 * 准牵引总质量，KG
	 */
	@Schema(description = "准牵引总质量，KG")
	private Integer tractionMassKg;
	/**
	 * 业务关系
	 */
	@Schema(description = "业务关系")
	private String businessRelation;
	/**
	 * 能源类型
	 */
	@Schema(description = "能源类型")
	private String energyType;
	/**
	 * 强制报废日期
	 */
	@Schema(description = "强制报废日期")
	private LocalDate compulsoryScrapDate;
	/**
	 * 强制报废长期有效
	 */
	@Schema(description = "强制报废长期有效")
	private Integer compulsoryScrapLongTerm;
	/**
	 * 海关备案号
	 */
	@Schema(description = "海关备案号")
	private String customsRecordNo;
	/**
	 * 行驶证档案编号
	 */
	@Schema(description = "行驶证档案编号")
	private String drivingLicenseNo;
	/**
	 * 行驶证有效期起
	 */
	@Schema(description = "行驶证有效期起")
	private LocalDate drivingLicenseStartDate;
	/**
	 * 行驶证有效期止
	 */
	@Schema(description = "行驶证有效期止")
	private LocalDate drivingLicenseEndDate;
	/**
	 * 行驶证长期有效
	 */
	@Schema(description = "行驶证长期有效")
	private Integer drivingLicenseLongTerm;
	/**
	 * 行驶证主页正面
	 */
	@Schema(description = "行驶证主页正面")
	private String drivingLicenseImage;
	/**
	 * 行驶证主页反面
	 */
	@Schema(description = "行驶证主页反面")
	private String drivingLicenseMainBack;
	/**
	 * 行驶证副页正面
	 */
	@Schema(description = "行驶证副页正面")
	private String drivingLicenseViceFront;
	/**
	 * 行驶证副页反面
	 */
	@Schema(description = "行驶证副页反面")
	private String drivingLicenseViceBack;
	/**
	 * 道路运输证号
	 */
	@Schema(description = "道路运输证号")
	private String roadTransportCertNo;
	/**
	 * 道路运输证有效期起
	 */
	@Schema(description = "道路运输证有效期起")
	private LocalDate roadTransportCertStartDate;
	/**
	 * 道路运输证有效期止
	 */
	@Schema(description = "道路运输证有效期止")
	private LocalDate roadTransportCertEndDate;
	/**
	 * 道路运输证长期有效
	 */
	@Schema(description = "道路运输证长期有效")
	private Integer roadTransportCertLongTerm;
	/**
	 * 道路运输证图片
	 */
	@Schema(description = "道路运输证图片")
	private String roadTransportCertImage;
	/**
	 * 道路运输年审有效期
	 */
	@Schema(description = "道路运输年审有效期")
	private LocalDate annualReviewEndDate;
	/**
	 * 道路运输年审长期有效
	 */
	@Schema(description = "道路运输年审长期有效")
	private Integer annualReviewLongTerm;
	/**
	 * 机动车登记编号
	 */
	@Schema(description = "机动车登记编号")
	private String registrationNo;
	/**
	 * 机动车登记日期
	 */
	@Schema(description = "机动车登记日期")
	private LocalDate registrationDate;
	/**
	 * 机动车登记本图片
	 */
	@Schema(description = "机动车登记本图片")
	private String registrationImage;
	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;
	/** 认证状态：0认证中 1认证通过 2认证驳回 */
	@Schema(description = "认证状态：0认证中 1认证通过 2认证驳回")
	private Integer certificationStatus;
	/** 认证驳回原因 */
	@Schema(description = "认证驳回原因")
	private String certificationRejectReason;

}
