use std::{ collections::HashMap, sync::{Arc, Mutex}, }; use axum::extract::ws::WebSocket; use miette::Result; use once_cell::sync::Lazy; use serde::Serialize; use uuid::Uuid; use crate::sources::MediaSource; // TODO: How do we store the active rooms? #[derive(Serialize)] pub struct Room { pub id: Uuid, pub playlist: Vec, // TODO: Currently playing information #[serde(skip)] pub members: Vec, } pub struct Member { pub id: Uuid, pub nickname: Option, pub socket: WebSocket, }