Skip to main content

cognee_database/traits/
dataset_config_db.rs

1//! `DatasetConfigDb` trait — CRUD operations for dataset schema configuration.
2
3use async_trait::async_trait;
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6use uuid::Uuid;
7
8use crate::types::DatabaseError;
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct DatasetConfiguration {
12    pub id: Uuid,
13    pub dataset_id: Uuid,
14    pub graph_schema: Option<serde_json::Value>,
15    pub custom_prompt: Option<String>,
16    pub created_at: DateTime<Utc>,
17    pub updated_at: Option<DateTime<Utc>>,
18}
19
20#[derive(Debug, Clone, Default)]
21pub struct DatasetConfigurationPatch {
22    pub graph_schema: Option<serde_json::Value>,
23    pub custom_prompt: Option<String>,
24}
25
26#[async_trait]
27pub trait DatasetConfigDb: Send + Sync + 'static {
28    async fn get_by_dataset_id(
29        &self,
30        dataset_id: Uuid,
31    ) -> Result<Option<DatasetConfiguration>, DatabaseError>;
32
33    async fn upsert(
34        &self,
35        dataset_id: Uuid,
36        patch: DatasetConfigurationPatch,
37    ) -> Result<DatasetConfiguration, DatabaseError>;
38}