use std::collections::HashSet; use crate::database::schema::Schema; use serde::{Deserialize, Serialize}; use serde_json::Value; #[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(default)] pub struct Type { pub id: String, pub r#type: String, pub name: String, pub module: String, pub source: String, #[serde(default)] pub historical: bool, #[serde(default)] pub sensitive: bool, #[serde(default)] pub ownable: bool, pub longevity: Option, #[serde(default)] pub hierarchy: Vec, #[serde(default)] pub variations: HashSet, #[serde(default)] pub relationship: bool, #[serde(default)] pub fields: Vec, pub grouped_fields: Option, #[serde(default)] pub lookup_fields: Vec, #[serde(default)] pub null_fields: Vec, #[serde(default)] pub default_fields: Vec, pub field_types: Option, #[serde(default)] pub schemas: Vec, }