use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; /// Real-time voice/video channel participant state. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)] pub struct VoiceParticipant { pub id: Uuid, pub channel_id: Uuid, pub user_id: Uuid, pub session_id: Option, pub deafened: bool, pub muted: bool, pub self_deafened: bool, pub self_muted: bool, pub self_video: bool, pub streaming: bool, pub speaking: bool, pub joined_at: DateTime, pub left_at: Option>, }