cognee_http_server/dto/
datasets.rs1use chrono::{DateTime, Utc};
4use serde::{Deserialize, Serialize};
5use serde_json::Value;
6use std::collections::HashMap;
7use utoipa::{IntoParams, ToSchema};
8use uuid::Uuid;
9
10#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
12#[serde(rename_all = "camelCase")]
13pub struct DatasetDTO {
14 pub id: Uuid,
15 pub name: String,
16 pub created_at: DateTime<Utc>,
17 pub updated_at: Option<DateTime<Utc>>,
18 pub owner_id: Uuid,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
23#[serde(rename_all = "camelCase")]
24pub struct DataDTO {
25 pub id: Uuid,
26 pub name: String,
27 pub created_at: DateTime<Utc>,
28 pub updated_at: Option<DateTime<Utc>>,
29 pub extension: String,
30 pub mime_type: String,
31 pub raw_data_location: String,
32 pub dataset_id: Option<Uuid>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
37#[serde(rename_all = "camelCase")]
38pub struct GraphDTO {
39 pub nodes: Vec<GraphNodeDTO>,
40 pub edges: Vec<GraphEdgeDTO>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
44#[serde(rename_all = "camelCase")]
45pub struct GraphNodeDTO {
46 pub id: Uuid,
47 pub label: String,
48 pub r#type: String,
49 pub properties: serde_json::Map<String, Value>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
53#[serde(rename_all = "camelCase")]
54pub struct GraphEdgeDTO {
55 pub source: Uuid,
56 pub target: Uuid,
57 pub label: String,
58}
59
60#[derive(Debug, Deserialize, ToSchema)]
63#[serde(rename_all = "camelCase")]
64pub struct DatasetCreationPayload {
65 pub name: String,
66}
67
68#[derive(Debug, Deserialize, ToSchema)]
70#[serde(rename_all = "camelCase")]
71pub struct DatasetSchemaPayloadDTO {
72 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub graph_schema: Option<Value>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub custom_prompt: Option<String>,
79}
80
81#[derive(Debug, Serialize, ToSchema)]
84pub struct DatasetSchemaResponseDTO {
85 pub graph_schema: Option<Value>,
86 pub custom_prompt: Option<String>,
87}
88
89#[derive(Debug, Deserialize, IntoParams)]
91pub struct DatasetStatusQuery {
92 #[serde(rename = "dataset", default)]
95 pub dataset: Vec<Uuid>,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
100pub enum PipelineRunStatus {
101 #[serde(rename = "DATASET_PROCESSING_INITIATED")]
102 DatasetProcessingInitiated,
103 #[serde(rename = "DATASET_PROCESSING_STARTED")]
104 DatasetProcessingStarted,
105 #[serde(rename = "DATASET_PROCESSING_COMPLETED")]
106 DatasetProcessingCompleted,
107 #[serde(rename = "DATASET_PROCESSING_ERRORED")]
108 DatasetProcessingErrored,
109}
110
111pub type DatasetStatusResponseDTO = HashMap<Uuid, PipelineRunStatus>;
113
114#[derive(Debug, Serialize, ToSchema)]
116pub struct ErrorMessageDTO {
117 pub message: String,
118}