feagi_api/v1/
analytics_dtos.rs1use serde::{Deserialize, Serialize};
9use std::collections::HashMap;
10use utoipa::ToSchema;
11
12#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
14#[schema(example = json!({
15 "burst_engine_active": true,
16 "brain_readiness": true,
17 "neuron_count": 1200000,
18 "cortical_area_count": 52,
19 "burst_count": 12345
20}))]
21pub struct SystemHealthResponse {
22 pub burst_engine_active: bool,
24
25 pub brain_readiness: bool,
27
28 pub neuron_count: usize,
30
31 pub cortical_area_count: usize,
33
34 pub burst_count: u64,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
40#[schema(example = json!({
41 "cortical_id": "v1",
42 "neuron_count": 45000,
43 "synapse_count": 2250000,
44 "density": 0.85,
45 "populated": true
46}))]
47pub struct CorticalAreaStatsResponse {
48 pub cortical_id: String,
50
51 pub neuron_count: usize,
53
54 pub synapse_count: usize,
56
57 pub density: f32,
59
60 pub populated: bool,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
66#[schema(example = json!({
67 "source_area": "v1",
68 "target_area": "v2",
69 "synapse_count": 125000,
70 "avg_weight": 0.75,
71 "excitatory_count": 100000,
72 "inhibitory_count": 25000
73}))]
74pub struct ConnectivityStatsResponse {
75 pub source_area: String,
77
78 pub target_area: String,
80
81 pub synapse_count: usize,
83
84 pub avg_weight: f32,
86
87 pub excitatory_count: usize,
89
90 pub inhibitory_count: usize,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
96#[schema(example = json!({
97 "total_neurons": 1200000,
98 "total_synapses": 60000000,
99 "total_cortical_areas": 52,
100 "populated_areas": 45,
101 "avg_density": 0.82,
102 "per_area_stats": {}
103}))]
104pub struct ConnectomeAnalyticsResponse {
105 pub total_neurons: usize,
107
108 pub total_synapses: usize,
110
111 pub total_cortical_areas: usize,
113
114 pub populated_areas: usize,
116
117 pub avg_density: f32,
119
120 pub per_area_stats: HashMap<String, CorticalAreaStatsResponse>,
122}
123
124#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
126pub struct PopulatedAreasResponse {
127 pub areas: Vec<PopulatedAreaInfo>,
129
130 pub total_count: usize,
132}
133
134#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
136#[schema(example = json!({
137 "cortical_id": "v1",
138 "neuron_count": 45000
139}))]
140pub struct PopulatedAreaInfo {
141 pub cortical_id: String,
143
144 pub neuron_count: usize,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
150#[schema(example = json!({
151 "cortical_id": "v1",
152 "density": 0.85
153}))]
154pub struct NeuronDensityResponse {
155 pub cortical_id: String,
157
158 pub density: f32,
160}