from datetime import datetime
from pydantic import BaseModel
from ..core.gps_point import GPSPoint


class ObjectLocation(BaseModel):
    object_id: str
    pixel: tuple[float, float]
    gps: GPSPoint
    class_name: str
    confidence: float


class FrameResult(BaseModel):
    frame_id: int
    gps_center: GPSPoint
    altitude: float
    heading: float
    confidence: float
    timestamp: datetime
    refined: bool = False
    objects: list[ObjectLocation] = []
    updated_at: datetime

