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 = "1")
    @NotNull(message = "品牌不能为空")
    private Integer brand;

    @Schema(description = "车型（字典）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "车型不能为空")
    private Integer model;

    @Schema(description = "车型编号", example = "HFC1043K1")
    private String modelCode;

    @Schema(description = "车型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "江淮骏铃V6")
    @NotBlank(message = "车型名称不能为空")
    private String modelName;

    @Schema(description = "车辆公告型号", example = "HFC1043K1R8T")
    private String noticeModel;

    @Schema(description = "仪表盘氢气单位（字典）", example = "1")
    private Integer 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 = "1")
    private Integer 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×2100×2850")
    private String truckSize;

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

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

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

}
