use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; use crate::event::{AgentInfo, RoomInfo}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AiAgentJoinedService { pub room: RoomInfo, pub agent: AgentInfo, pub joined_at: DateTime, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AiAgentLeftService { pub room: RoomInfo, pub agent: AgentInfo, pub left_at: DateTime, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct RoomAiEntry { pub agent_session: Uuid, pub name: String, pub agent_kind: String, pub model_version: Option, pub enabled: bool, pub auto_reply: bool, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct RoomAiListService { pub room: RoomInfo, pub agents: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AiAgentStatusChangedService { pub room: RoomInfo, pub agent: AgentInfo, pub old_status: String, pub new_status: String, pub changed_at: DateTime, }