30 lines
552 B
Rust
30 lines
552 B
Rust
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<MediaSource>,
|
|
// TODO: Currently playing information
|
|
#[serde(skip)]
|
|
pub members: Vec<Member>,
|
|
}
|
|
|
|
pub struct Member {
|
|
pub id: Uuid,
|
|
pub nickname: Option<String>,
|
|
pub socket: WebSocket,
|
|
}
|