use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Serialize, utoipa::ToSchema)] pub struct UsageEventResponse { pub id: String, pub media_id: Option, pub user_id: Option, pub event_type: String, pub timestamp: DateTime, pub duration_secs: Option, } impl From for UsageEventResponse { fn from(e: pinakes_core::analytics::UsageEvent) -> Self { Self { id: e.id.to_string(), media_id: e.media_id.map(|m| m.0.to_string()), user_id: e.user_id.map(|u| u.0.to_string()), event_type: e.event_type.to_string(), timestamp: e.timestamp, duration_secs: e.duration_secs, } } } #[derive(Debug, Deserialize, utoipa::ToSchema)] pub struct RecordUsageEventRequest { pub media_id: Option, pub event_type: String, pub duration_secs: Option, #[schema(value_type = Option)] pub context: Option, }