package com.qaup.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 轨迹统计信息VO
 *
 * @author qaup
 * @date 2025-01-17
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TrajectoryStatistics {

    /** 总距离(公里) */
    private BigDecimal totalDistance;

    /** 平均速度(km/h) */
    private BigDecimal averageSpeed;

    /** 最大速度(km/h) */
    private BigDecimal maxSpeed;

    /** 最小速度(km/h) */
    private BigDecimal minSpeed;

    /** 行驶时长(秒) */
    private Long durationSeconds;

    /** 行驶时长(格式化) */
    private String durationFormatted;

    /** 轨迹点数量 */
    private Integer pointCount;

    /** 首个轨迹点时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstPointTime;

    /** 最后轨迹点时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastPointTime;

    /** 停车次数 */
    private Integer stopCount;

    /** 停车总时长(秒) */
    private Long totalStopDuration;

    /** 最高海拔(米) */
    private BigDecimal maxAltitude;

    /** 最低海拔(米) */
    private BigDecimal minAltitude;

    /** 平均海拔(米) */
    private BigDecimal averageAltitude;
}
