package com.qaup.collision.websocket.message;

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

/**
 * 位置更新消息负载
 * 对应前端JSON格式: position_update
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PositionUpdatePayload {
    
    /**
     * 对象ID（车辆ID、航班号等）
     */
    @JsonProperty("object_id")
    private String objectId;
    
    /**
     * 对象类型（基于MovingObjectType枚举）
     */
    @JsonProperty("object_type")
    private String objectType;
    
    /**
     * 位置信息
     */
    @JsonProperty("position")
    private Position position;
    
    /**
     * 航向角（度）
     */
    @JsonProperty("heading")
    private Double heading;
    
    /**
     * 速度（米/秒）
     */
    @JsonProperty("speed")
    private Double speed;
    
    /**
     * 时间戳（微秒级）
     */
    @JsonProperty("timestamp")
    private Long timestamp;
    
    /**
     * 位置坐标类
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Position {
        
        /**
         * 纬度
         */
        @JsonProperty("latitude")
        private Double latitude;
        
        /**
         * 经度
         */
        @JsonProperty("longitude")
        private Double longitude;
    }
} 