use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Agent {
pub id: Uuid,
pub name: String,
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub active: bool,
#[serde(default)]
pub axoniac_tenant_id: Option<Uuid>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Session {
pub id: Uuid,
pub agent_id: Uuid,
pub status: String,
#[serde(default)]
pub result: Option<serde_json::Value>,
#[serde(default)]
pub error: Option<String>,
#[serde(default)]
pub hook_event: Option<String>,
#[serde(default)]
pub hook_payload: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HooksResponse {
pub configured: bool,
#[serde(default)]
pub hooks: Vec<serde_json::Value>,
#[serde(default)]
pub event_names: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Integration {
pub id: Uuid,
pub agent_id: Uuid,
pub platform: String,
#[serde(default)]
pub enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentTask {
pub id: Uuid,
pub agent_id: Uuid,
pub name: String,
#[serde(default)]
pub schedule: Option<String>,
#[serde(default)]
pub enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProvisionResult {
pub agent_id: Uuid,
pub content_hash: String,
}