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 VehicleLocationPlaybackVO {

    /** 车辆ID */
    private Long vehicleId;

    /** 车牌号 */
    private String licensePlate;

    /** 车辆类型 */
    private String vehicleType;

    /** 回放序列号 */
    private Long sequenceNumber;

    /** 经度 */
    private BigDecimal longitude;

    /** 纬度 */
    private BigDecimal latitude;

    /** 海拔高度(米) */
    private BigDecimal altitude;

    /** 速度(km/h) */
    private BigDecimal speed;

    /** 朝向角度(度) */
    private BigDecimal heading;

    /** 位置时间戳 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date timestamp;

    /** 数据质量 */
    private String dataQuality;

    /** 与上一点的时间间隔(毫秒) */
    private Long intervalMs;

    /** 累计行驶距离(米) */
    private BigDecimal cumulativeDistance;

    /** 累计行驶时间(秒) */
    private Long cumulativeTime;

    /** 回放进度百分比 */
    private BigDecimal progressPercentage;

    /** 是否为关键帧(起点、终点、转向点等) */
    private Boolean isKeyFrame;

    /** 关键帧类型 */
    private String keyFrameType;

    /** 回放建议延迟(毫秒) */
    private Long suggestedDelay;
}
