package com.sckw.transport.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @author system
 * @desc 生成轨迹请求
 * @date 2025-12-02
 */
@Data
@Schema(description = "生成轨迹请求")
public class GenerateTraceReq implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 日期（格式：yyyy-MM-dd）
     */
    @Schema(description = "日期（格式：yyyy-MM-dd）", example = "2025-11-18", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "日期不能为空")
    private String date;

    /**
     * 运单号
     */
    @Schema(description = "运单号", example = "T88565469682136456969", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "运单号不能为空")
    private String wayOrderNo;

    /**
     * 车牌号
     */
    @Schema(description = "车牌号", example = "川A888528", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "车牌号不能为空")
    private String truckNo;
    /**
     * 当前位置（经纬度，格式：经度,纬度）
     */
    @Schema(description = "当前位置（经纬度，格式：经度,纬度）", example = "104.065735,30.659462", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "当前位置不能为空")
    private String currentLocation;

    /**
     * 当前详细地址
     */
    @Schema(description = "当前详细地址")
    private String currentDetailAddress;
    /**
     * 异常位置详细地址
     */
    @Schema(description = "异常位置详细地址")
    private String exceptionLocation;
    /**
     * 异常类型（1-车辆偏航，2-急刹车，3-超速，4-异常停车）
     */
    @Schema(description = "异常类型（1-车辆偏航，2-急刹车，3-超速，4-异常停车）")
    private List<Integer> exceptionType;
}
