use std::sync::Arc;
use axum::Json;
use axum::http::HeaderMap;
use chrono::Utc;
use systemprompt_models::api::cloud::BridgeProfileUsage;
use super::bridge_error::{BridgeError, authenticate_bridge};
use crate::error::ApiHttpError;
use crate::services::middleware::JwtContextExtractor;
pub async fn handle(
jwt_extractor: Arc<JwtContextExtractor>,
ctx: systemprompt_runtime::AppContext,
headers: HeaderMap,
) -> Result<Json<BridgeProfileUsage>, ApiHttpError> {
let (claims, _user) = authenticate_bridge(&jwt_extractor, &headers).await?;
let usage = ctx
.analytics_service()
.profile_usage()
.get_profile_usage(&claims.user_id, Utc::now())
.await
.map_err(|e| BridgeError::internal("profile usage lookup failed", e))?;
Ok(Json(usage))
}