use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use utoipa::ToSchema;
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct FCLResponse {
pub timestep: u64,
pub total_neurons: usize,
pub global_fcl: Vec<u64>,
pub cortical_areas: HashMap<String, Vec<u64>>,
pub default_window_size: u32,
pub active_cortical_count: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct FireQueueResponse {
pub timestep: u64,
pub total_fired: usize,
pub cortical_areas: HashMap<String, Vec<u64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct FCLStatusResponse {
pub available: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct FireLedgerConfigResponse {
pub default_window_size: u32,
pub areas: HashMap<String, u32>,
pub total_configured_areas: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct BurstEngineStats {
pub burst_count: u64,
pub frequency_hz: f64,
pub active: bool,
pub paused: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct BurstEngineStatus {
pub active: bool,
pub paused: bool,
pub burst_count: u64,
pub frequency_hz: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct BurstEngineControlRequest {
pub action: String,
}