Skip to main content

feagi_api/v1/
visualization_dtos.rs

1// Copyright 2025 Neuraville Inc.
2// Licensed under the Apache License, Version 2.0
3
4//! Visualization API DTOs
5//!
6//! Request/response types for visualization client management
7
8use serde::{Deserialize, Serialize};
9use std::collections::HashMap;
10use utoipa::ToSchema;
11
12/// Visualization client registration request
13#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
14pub struct VisualizationClientRequest {
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub client_id: Option<String>,
17
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub metadata: Option<HashMap<String, serde_json::Value>>,
20}
21
22/// Visualization client registration response
23#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
24pub struct VisualizationClientResponse {
25    pub client_id: String,
26    pub success: bool,
27    pub message: String,
28}
29
30/// Visualization heartbeat request
31#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
32pub struct VisualizationHeartbeatRequest {
33    pub client_id: String,
34}
35
36/// Visualization status response
37#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
38pub struct VisualizationStatusResponse {
39    pub enabled: bool,
40    pub active_clients: usize,
41    pub fq_sampler_enabled: bool,
42    pub message: String,
43}
44
45/// Success response
46#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
47pub struct VisualizationSuccessResponse {
48    pub message: String,
49    pub success: bool,
50}