reinhardt_admin/types/
responses.rs1use crate::types::models::{ColumnInfo, FilterInfo, ModelInfo};
4use serde::{Deserialize, Serialize};
5use std::collections::HashMap;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct DashboardResponse {
10 pub site_name: String,
12 pub url_prefix: String,
14 pub models: Vec<ModelInfo>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub csrf_token: Option<String>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct ListResponse {
24 pub model_name: String,
26 pub count: u64,
28 pub page: u64,
30 pub page_size: u64,
32 pub total_pages: u64,
34 pub results: Vec<HashMap<String, serde_json::Value>>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub available_filters: Option<Vec<FilterInfo>>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub columns: Option<Vec<ColumnInfo>>,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct DetailResponse {
47 pub model_name: String,
49 pub data: HashMap<String, serde_json::Value>,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct MutationResponse {
56 pub success: bool,
58 pub message: String,
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub affected: Option<u64>,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub data: Option<HashMap<String, serde_json::Value>>,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70pub struct BulkDeleteResponse {
71 pub success: bool,
73 pub deleted: u64,
75 pub message: String,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct ImportResponse {
82 pub success: bool,
84 pub imported: u64,
86 pub updated: u64,
88 pub skipped: u64,
90 pub failed: u64,
92 pub message: String,
94 #[serde(skip_serializing_if = "Option::is_none")]
96 pub errors: Option<Vec<String>>,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize)]
101pub struct ExportResponse {
102 #[serde(with = "serde_bytes")]
104 pub data: Vec<u8>,
105 pub filename: String,
107 pub content_type: String,
109}
110
111#[derive(Debug, Clone, Serialize, Deserialize)]
113pub struct FieldsResponse {
114 pub model_name: String,
116 pub fields: Vec<crate::types::models::FieldInfo>,
118 #[serde(skip_serializing_if = "Option::is_none")]
121 pub values: Option<HashMap<String, serde_json::Value>>,
122}