knowledge_base_models/
reference.rs1use crate::{ReferenceId, deserialize_optional_non_null};
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Serialize)]
5#[serde(deny_unknown_fields)]
6pub struct Reference {
7 pub id: ReferenceId,
8 pub url: String,
9 pub title: String,
10 #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
11 pub publisher: Option<String>,
12 #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
13 pub publication_date: Option<String>,
14 #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
15 pub source_language: Option<String>,
16 pub retrieved_at: String,
17 #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
18 pub archive_url: Option<String>,
19}