use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Serialize, Deserialize)] pub struct DirectMediaSource { pub video_url: String, pub tracks: Vec, } #[derive(Serialize, Deserialize)] pub struct DirectMediaTrack { pub name: String, pub url: String, } #[derive(Serialize, Deserialize)] pub struct YouTubeMediaSource { pub video_id: String, } #[derive(Serialize, Deserialize)] #[serde(tag = "type", content = "data")] pub enum MediaSource { Direct(DirectMediaSource), YouTube(YouTubeMediaSource), }