watch-party-2/src/rooms.rs

30 lines
552 B
Rust
Raw Normal View History

2023-04-11 22:59:23 +00:00
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,
}