use serde::{Deserialize, Serialize};
use super::agent::AgentId;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct TeamId(pub String);
impl TeamId {
pub fn new(id: impl Into<String>) -> Self {
Self(id.into())
}
}
impl std::fmt::Display for TeamId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Team {
pub id: TeamId,
pub name: String,
pub members: Vec<AgentId>,
pub description: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TeamMessage {
pub from: AgentId,
pub to: AgentId,
pub content: String,
pub timestamp: u64,
}