edc_web_components/models/
dataset_extra_fields.rs1use edc_connector_client::types::ExtraTokenFields;
2use edc_federated_catalog_client::models::{Creator, Thumbnail};
3use serde::Deserialize;
4use serde_with::{OneOrMany, formats::PreferMany, serde_as};
5
6#[serde_as]
7#[derive(Deserialize, Debug, Clone)]
8pub struct DatasetExtraFields {
9 #[serde(rename = "name", alias = "edc:name")]
10 pub name: String,
11 #[serde(rename = "contenttype", alias = "edc:contenttype")]
12 pub content_type: String,
13 #[serde(alias = "dct:title", default)]
14 pub title: Option<String>,
15 #[serde(alias = "http://www.w3.org/2000/01/rdf-schema#comment", default)]
16 pub description: Option<String>,
17 #[serde(alias = "dcat:version", default)]
18 pub version: Option<String>,
19 #[serde(alias = "dct:creator", default)]
20 pub creator: Option<Creator>,
21 #[serde(alias = "http://xmlns.com/foaf/0.1/thumbnail", default)]
22 pub thumbnail: Option<Thumbnail>,
23 #[serde(alias = "dcat:keyword", default)]
24 #[serde_as(deserialize_as = "OneOrMany<_, PreferMany>")]
25 pub keywords: Vec<String>,
26 #[serde(alias = "dcat:landingPage", default)]
27 pub landing_page: Option<String>,
28 #[serde(alias = "dct:type", alias = "http://purl.org/dc/terms/type", default)]
29 #[serde_as(deserialize_as = "OneOrMany<_, PreferMany>")]
30 pub dcterm_types: Vec<String>,
31}
32
33impl ExtraTokenFields for DatasetExtraFields {}