package cn.iocoder.yudao.module.asset.controller.admin.vehiclemodel.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.DecimalMin;
import java.math.BigDecimal;

/**
 * 车型参数 Base VO
 *
 * @author 芋道源码
 */
@Data
public class VehicleModelBaseVO {

    @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "帕力安牌")
    @NotBlank(message = "品牌不能为空")
    private String brand;

    @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "XDQ504LXCFCEV01")
    @NotBlank(message = "型号不能为空")
    private String model;

    @Schema(description = "型号label", example = "4.5T冷链车")
    private String modelLabel;

    @Schema(description = "仪表盘氢气单位", example = "%、MPa、Kg")
    private String hydrogenUnit;

    @Schema(description = "氢瓶容量(L)", example = "165")
    @Min(value = 0, message = "氢瓶容量不能为负数")
    private Integer hydrogenCapacity;

    @Schema(description = "电续航里程(KM)", example = "300")
    @Min(value = 0, message = "电续航里程不能为负数")
    private Integer electricityMileage;

    @Schema(description = "储电量(kwh)", example = "80.00")
    @DecimalMin(value = "0.0", message = "储电量不能为负数")
    private BigDecimal reserveElectricity;

    @Schema(description = "氢续航里程(KM)", example = "400")
    @Min(value = 0, message = "氢续航里程不能为负数")
    private Integer hydrogenMileage;

    @Schema(description = "燃料种类", example = "氢、电、柴油")
    private String fuelType;

    @Schema(description = "轮胎尺寸", example = "225/70R19.5")
    private String tireSize;

    @Schema(description = "轮胎数量", example = "6")
    @Min(value = 1, message = "轮胎数量必须大于0")
    private Integer tireNumber;

    @Schema(description = "车辆尺寸_长", example = "5995")
    private String truckSize_x;

    @Schema(description = "车辆尺寸_宽", example = "2260")
    private String truckSize_y;

    @Schema(description = "车辆尺寸_高", example = "3320")
    private String truckSize_z;

    @Schema(description = "电堆厂家", example = "上海重塑")
    private String onlineSpreadEnterprise;

    @Schema(description = "电池厂家", example = "宁德时代")
    private String batteryFactory;

    @Schema(description = "冷机厂家", example = "开山")
    private String refrigeratorFactory;

    @Schema(description = "车辆类型", example = "轻型箱式货车")
    private String vehicleType;

    @Schema(description = "车牌颜色", example = "绿牌")
    private String plateColor;

    @Schema(description = "电池类型", example = "磷酸铁锂")
    private String batteryType;

    @Schema(description = "供氢系统厂家", example = "北京亿华通")
    private String hydrogenFactory;

}
