Skip to main content

ahri_tre_protocol/
catalogue.rs

1//! Safe nested catalogue records with reusable Datastore-bound references.
2use crate::refs::ObjectRef;
3use ahri_tre_types::{KeyRole, NcName};
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct DatasetSummary {
8    pub dataset_id: ObjectRef,
9}
10
11#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
12pub struct DatasetVariableLinkSummary {
13    pub dataset_id: ObjectRef,
14    pub variable_id: ObjectRef,
15    pub row_role: KeyRole,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub struct VariableSummary {
20    pub variable_id: ObjectRef,
21    pub domain_id: ObjectRef,
22    pub name: NcName,
23    pub value_type_id: ObjectRef,
24    pub value_format: Option<String>,
25    pub vocabulary_id: Option<ObjectRef>,
26    pub key_role: KeyRole,
27    pub description: Option<String>,
28    pub note: Option<String>,
29    pub ontology_namespace: Option<String>,
30    pub ontology_class: Option<String>,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
34pub struct ValueTypeSummary {
35    pub value_type_id: ObjectRef,
36    pub value_type: String,
37    pub description: Option<String>,
38}
39
40#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
41pub struct VocabularySummary {
42    pub vocabulary_id: ObjectRef,
43    pub domain_id: ObjectRef,
44    pub name: NcName,
45    pub description: Option<String>,
46}
47
48#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
49pub struct VocabularyItemSummary {
50    pub vocabulary_item_id: ObjectRef,
51    pub vocabulary_id: ObjectRef,
52    pub value: i32,
53    pub code: String,
54    pub description: Option<String>,
55}