45 lines
1.0 KiB
Rust
45 lines
1.0 KiB
Rust
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<Utc>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct AiAgentLeftService {
|
|
pub room: RoomInfo,
|
|
pub agent: AgentInfo,
|
|
pub left_at: DateTime<Utc>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct RoomAiEntry {
|
|
pub agent_session: Uuid,
|
|
pub name: String,
|
|
pub agent_kind: String,
|
|
pub model_version: Option<Uuid>,
|
|
pub enabled: bool,
|
|
pub auto_reply: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct RoomAiListService {
|
|
pub room: RoomInfo,
|
|
pub agents: Vec<RoomAiEntry>,
|
|
}
|
|
|
|
#[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<Utc>,
|
|
}
|