use serde::{Deserialize, Serialize};
use crate::{
endpoint::ResourceEndpoint,
fields::common::{Descriptor, DocumentDates, Language},
};
pub type TrainingsEndpoint<'c> = ResourceEndpoint<'c, TrainingFields>;
#[derive(Debug, Serialize, Deserialize)]
pub struct TrainingFields {
pub id: Option<i64>,
pub title: Option<String>,
pub status: Option<String>,
pub cost: Option<String>,
pub body: Option<String>,
pub event_url: Option<String>,
pub how_to_register: Option<String>,
pub source: Option<Vec<Source>>,
pub language: Option<Vec<Language>>,
pub theme: Option<Vec<Descriptor>>,
#[serde(rename = "type")]
pub training_fields_type: Option<Vec<Descriptor>>,
pub format: Option<Vec<Descriptor>>,
pub training_language: Option<Vec<Language>>,
pub url: Option<String>,
pub url_alias: Option<String>,
#[serde(rename = "body-html")]
pub body_html: Option<String>,
pub date: Option<DocumentDates>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Source {
pub href: Option<String>,
pub id: Option<i64>,
pub name: Option<String>,
pub shortname: Option<String>,
pub longname: Option<String>,
pub spanish_name: Option<String>,
pub homepage: Option<String>,
#[serde(rename = "type")]
pub source_type: Option<Descriptor>,
}