feagi_api/v1/
mapping_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 "src_cortical_area": "v1",
16 "dst_cortical_area": "v2",
17 "mapping_type": "one_to_many",
18 "mapping_data": {
19 "type": "topological",
20 "parameters": {}
21 }
22}))]
23pub struct MappingInfo {
24 pub src_cortical_area: String,
26
27 pub dst_cortical_area: String,
29
30 pub mapping_type: String,
32
33 pub mapping_data: serde_json::Value,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
39pub struct CreateMappingRequest {
40 pub src_cortical_area: String,
42
43 pub dst_cortical_area: String,
45
46 pub mapping_type: String,
48
49 #[serde(default)]
51 pub mapping_data: Option<serde_json::Value>,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
56pub struct MappingListResponse {
57 pub mappings: Vec<MappingInfo>,
59
60 pub total_count: usize,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
66#[schema(example = json!({
67 "cortical_area_id": "v1",
68 "total_synapses": 1000000,
69 "active_synapses": 45000,
70 "inactive_synapses": 955000,
71 "total_neurons": 10000
72}))]
73pub struct SynapseStats {
74 pub cortical_area_id: String,
76
77 pub total_synapses: usize,
79
80 pub active_synapses: usize,
82
83 pub inactive_synapses: usize,
85
86 pub total_neurons: usize,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
92pub struct ConnectomeStatsResponse {
93 pub total_cortical_areas: usize,
95
96 pub total_mappings: usize,
98
99 pub total_synapses: usize,
101
102 pub per_area_stats: HashMap<String, SynapseStats>,
104}