package com.sckw.transport.model.vo;

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.math.BigDecimal;

/**
 * 地图车辆展示VO
 * @author system
 */
@Data
@Schema(description = "地图车辆展示信息")
public class MapVehicleVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "商品信息")
    private String goodsInfo;

    @Schema(description = "装货重量/任务量")
    private String loadWeight;

    @Schema(description = "定位位置")
    private String location;

    @Schema(description = "定位时间（yyyy-MM-dd HH:mm:ss）")
    private String locationTime;

    @Schema(description = "车牌号")
    private String truckNo;

    @Schema(description = "车辆ID")
    private Long truckId;
    @Schema(description = "能源类型")
    private String energyType;
    @Schema(description = "能源类型描述")
    private String energyTypeDesc;
    @Schema(description = "司机id")
    private Long driverId;

    @Schema(description = "司机姓名")
    private String driverName;

    @Schema(description = "司机手机号")
    private String driverPhone;
    @Schema(description = "运单ID")
    private Long wayOrderId;

    @Schema(description = "运单号")
    private String wayOrderNo;

    @Schema(description = "物流订单ID")
    private Long logisticOrderId;

    @Schema(description = "物流订单号")
    private String logisticOrderNo;

    @Schema(description = "托运单位")
    private String consignUnit;

    @Schema(description = "承运单位")
    private String carrierUnit;

    @Schema(description = "经度")
    private String longitude;

    @Schema(description = "纬度")
    private String latitude;

    @Schema(description = "定位状态（1-在线，0-离线）")
    private Integer locationStatus;

    @Schema(description = "定位状态描述")
    private String locationStatusDesc;

    @Schema(description = "运单状态")
    private Integer status;

    @Schema(description = "运单状态描述")
    private String statusDesc;

    @Schema(description = "装货量")
    private BigDecimal loadAmount;

    @Schema(description = "任务量")
    private BigDecimal entrustAmount;

    @Schema(description = "单位")
    private String unit;

    @Schema(description = "任务开始时间（yyyy-MM-dd HH:mm:ss）")
    private String taskStartTime;

    @Schema(description = "任务耗时（分钟）")
    private Long taskDuration;

    @Schema(description = "异常数量")
    private Integer exceptionCount;
    @Schema(description = "装货地址")
    private String loadAddress;
    @Schema(description = "卸货地址")
    private String unloadAddress;

    /**
     * 装货地址经度
     */
    @Schema(description = "装货地址经度")
    private String startLng;

    /**
     * 装货地址纬度
     */
    @Schema(description = "装货地址纬度")
    private String startLat;

    /**
     * 卸货地址经度
     */
    @Schema(description = "卸货地址经度")
    private String endLng;

    /**
     * 卸货地址纬度
     */
    @Schema(description = "卸货地址纬度")
    private String endLat;
}
