e034b46
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct AppChatSettings {
pub enabled: bool,
pub topic_prefix: String,
pub room_group_id: String,
pub user_group_id: String,
pub user_view_group_id: String,
pub live_group_id: String,
pub dedup_ttl_seconds: u64,
pub idempotency_ttl_seconds: u64,
pub upload_ttl_seconds: u64,
pub presence_ttl_seconds: u64,
pub unread_ttl_seconds: u64,
}
impl Default for AppChatSettings {
fn default() -> Self {
Self {
enabled: true,
topic_prefix: "chat".to_string(),
room_group_id: "chat.room.v1".to_string(),
user_group_id: "chat.user.v1".to_string(),
user_view_group_id: "chat.user.view.v1".to_string(),
live_group_id: "chat.live.v1".to_string(),
dedup_ttl_seconds: 24 * 3600,
idempotency_ttl_seconds: 24 * 3600,
upload_ttl_seconds: 3600,
presence_ttl_seconds: 120,
unread_ttl_seconds: 30 * 24 * 3600,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct GatewaySettings {
pub ws_heartbeat_interval_seconds: u64,
pub ws_idle_timeout_seconds: u64,
pub ws_auth_timeout_seconds: u64,
pub max_connections_per_user: usize,
pub subscriber_id: String,
pub topic_prefix: String,
pub upload_presign_ttl_seconds: u64,
pub typing_debounce_seconds: u64,
}
impl Default for GatewaySettings {
fn default() -> Self {
Self {
ws_heartbeat_interval_seconds: 30,
ws_idle_timeout_seconds: 120,
ws_auth_timeout_seconds: 10,
max_connections_per_user: 8,
subscriber_id: "chat.gateway".to_string(),
topic_prefix: "chat".to_string(),
upload_presign_ttl_seconds: 900,
typing_debounce_seconds: 2,
}
}
}