//! HTTP handler for the desktop overview aggregates. use axum::{ extract::{Query, State}, Json, }; use serde::Deserialize; use crate::{model::Overview, Result}; use super::ControlService; #[derive(Debug, Default, Deserialize)] pub struct OverviewRange { start_ms: Option, end_ms: Option, model_hashes: Option, provider_ids: Option, } pub async fn get( State(service): State, Query(range): Query, ) -> Result> { Ok(Json( service .overview( range.start_ms, range.end_ms, range.model_hashes.as_deref(), range.provider_ids.as_deref(), ) .await?, )) }