Skip to content
Clone
179d50d
50 lines 1.3 KB Rust
use std::sync::Arc;
use config::AppConfig;
use export::database::AppDatabase;
#[derive(Clone)]
pub struct ChatService {
pub(crate) database: Arc<AppDatabase>,
pub(crate) media: crate::services::media::Media,
pub(crate) audience: crate::services::audience::Audience,
pub(crate) settings: ChatSettings,
pub(crate) participants: crate::services::presence::Participants,
pub(crate) space: space::services::service::SpaceService,
}
impl ChatService {
pub fn new(
database: Arc<AppDatabase>,
media: crate::services::media::Media,
audience: crate::services::audience::Audience,
settings: ChatSettings,
participants: crate::services::presence::Participants,
space: space::services::service::SpaceService,
) -> Self {
Self {
database,
media,
audience,
settings,
participants,
space,
}
}
}
#[derive(Clone)]
pub struct ChatSettings {
pub chat: config::chat::ChatConfig,
pub web: config::web::WebConfig,
pub livekit: config::livekit::LiveKitConfig,
}
impl ChatSettings {
pub fn from_config(config: &AppConfig) -> Self {
Self {
chat: config.chat.clone(),
web: config.web.clone(),
livekit: config.livekit.clone(),
}
}
}