package com.sckw.fleet.model.dto;

import jakarta.validation.constraints.*;
import lombok.Data;

import java.util.regex.Matcher;

/**
 * @author zk
 * @desc 车辆信息
 * @date 2023/7/12 0012
 */
@Data
public class KwfTruckDto {

    /**
     * 车辆信息主键ID
     */
    private Long id;

    /**
     * 车牌号
     */
    @NotBlank(message = "车牌号不能为空!")
    @Size(max=8, message = "车牌号长度不能大于8个字符！")
    private String truckNo;

    /**
     * 车辆类型（牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他）
     */
    @Positive(message = "车辆类型格式不正确!")
    private String type;

    /**
     * 能源类型（柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他）
     */
    @Positive(message = "能源类型格式不正确!")
    private String energyType;

    /**
     * 使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
     */
    @Positive(message = "使用性质格式不正确!")
    private String useType;

    /**
     * 外廓尺寸
     */
    @Size(max=20, message = "外廓尺寸长度不能大于20个字符！")
    private String spec;

    /**
     * 标准荷载（净重）
     */
    //@Pattern(regexp = "^1[3456789]\\d{9}$", message = "标准荷载格式不正确！")
    @NotNull(message = "标准荷载不能为空!")
    private Double actualWeight;

    /**
     * 车辆总质量(毛重)
     */
    //@Digits(integer=1, fraction=0)
    private Double grossWeight;

    /**
     * 皮重
     */
    private Double tareWeight;

    /**
     * 车辆颜色
     */
    @Positive(message = "车辆颜色格式不正确!")
    private String color;

    /**
     * 环保等级（国标）
     */
    @Positive(message = "环保等级格式不正确!")
    private String eev;

    /**
     * 挂车号
     */
    @Size(max=7, message = "挂车号长度不能大于7个字符！")
    private String trailerNo;

    /**
     * 车队id
     */
    private Long fleetId;

    /**
     * 备注
     */
    @Size(max=200, message = "remark长度不能大于200个字符！")
    private String remark;

    /**
     * 车辆行驶证信息
     */
    private KwfTruckLicenseDto truckLicense;

    /**
     * 车辆道路运输许可证
     */
    private KwfTransportLicenseDto transportLicense;

    public static boolean matchs(String regular, String str){
        java.util.regex.Pattern p = java.util.regex.Pattern.compile(regular);
        Matcher m = p.matcher(str);
        boolean isMatch = m.matches();
        return isMatch;
    }

//    public static void main(String[] args) {
//        String regular = "^[0-9]+(.[0-9]{2})?$";
//        String str = "1.2";
//        boolean bool = matchs(regular, str);
//        System.out.println(bool);
//    }
}
