27 lines
681 B
Rust
27 lines
681 B
Rust
|
|
//! DTOs for the "Places" (photo map) feature.
|
||
|
|
|
||
|
|
use serde::Serialize;
|
||
|
|
use utoipa::ToSchema;
|
||
|
|
|
||
|
|
/// A geographic bounding box in decimal degrees.
|
||
|
|
#[derive(Debug, Clone, Copy)]
|
||
|
|
pub struct GeoBounds {
|
||
|
|
pub west: f64,
|
||
|
|
pub south: f64,
|
||
|
|
pub east: f64,
|
||
|
|
pub north: f64,
|
||
|
|
}
|
||
|
|
|
||
|
|
/// A clustered group of geotagged photos within one aggregation cell.
|
||
|
|
#[derive(Debug, Clone, Serialize, ToSchema)]
|
||
|
|
pub struct GeoCluster {
|
||
|
|
/// Cluster centroid longitude.
|
||
|
|
pub lng: f64,
|
||
|
|
/// Cluster centroid latitude.
|
||
|
|
pub lat: f64,
|
||
|
|
/// Number of photos in the cluster.
|
||
|
|
pub count: i64,
|
||
|
|
/// A representative photo id, for the cluster thumbnail.
|
||
|
|
pub sample_file_id: String,
|
||
|
|
}
|