use geo::geometry::Point;
use time::OffsetDateTime;
pub struct RawPosition {
pub coordinates: Point,
pub time: OffsetDateTime,
pub speed: Option<f64>,
pub precision: Option<f64>,
pub altitude: Option<f64>,
}
impl RawPosition {
pub fn basic(coordinates: Point, time: OffsetDateTime) -> Self {
Self {
coordinates,
time,
speed: None,
precision: None,
altitude: None,
}
}
}
pub struct DevicePosition {
pub device_id: String,
pub pos: RawPosition,
pub route_name: Option<String>,
pub tracker: Option<String>,
}
impl DevicePosition {
pub fn basic(device_id: String, coordinates: Point, time: OffsetDateTime) -> Self {
Self {
device_id,
pos: RawPosition::basic(coordinates, time),
route_name: None,
tracker: None,
}
}
}