Skip to main content

cognee_database/entities/
edge.rs

1use sea_orm::entity::prelude::*;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel, Serialize, Deserialize)]
5#[sea_orm(table_name = "edges")]
6pub struct Model {
7    #[sea_orm(primary_key, auto_increment = false)]
8    pub id: String,
9    pub slug: String,
10    pub user_id: String,
11    #[sea_orm(indexed)]
12    pub data_id: String,
13    #[sea_orm(indexed)]
14    pub dataset_id: String,
15    pub source_node_id: String,
16    pub destination_node_id: String,
17    #[sea_orm(column_type = "Text")]
18    pub relationship_name: String,
19    #[sea_orm(column_type = "Text", nullable)]
20    pub label: Option<String>,
21    #[sea_orm(column_type = "Json", nullable)]
22    pub attributes: Option<Json>,
23    pub created_at: DateTimeUtc,
24}
25
26#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
27pub enum Relation {
28    #[sea_orm(
29        belongs_to = "super::node::Entity",
30        from = "Column::SourceNodeId",
31        to = "super::node::Column::Id"
32    )]
33    SourceNode,
34    #[sea_orm(
35        belongs_to = "super::node::Entity",
36        from = "Column::DestinationNodeId",
37        to = "super::node::Column::Id"
38    )]
39    DestinationNode,
40    #[sea_orm(
41        belongs_to = "super::dataset::Entity",
42        from = "Column::DatasetId",
43        to = "super::dataset::Column::Id"
44    )]
45    Dataset,
46}
47
48impl ActiveModelBehavior for ActiveModel {}