From bf7b8cd9bae65a8539f308eacef61428d2377149 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Tue, 7 Nov 2023 12:00:21 +0100 Subject: [PATCH] Add 'PunkteKategorie' to model --- src/model/data_form.rs | 5 +++- src/model/mod.rs | 60 ++++++++++++++++++++++++++++++++++++++ src/model/unterformular.rs | 5 +++- 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/model/data_form.rs b/src/model/data_form.rs index baacec2..fa94852 100644 --- a/src/model/data_form.rs +++ b/src/model/data_form.rs @@ -34,7 +34,7 @@ use crate::model::requirements::{Requirement, Requires}; use crate::model::{ apply_profile_to_form_entry, apply_profile_to_form_field, Ansichten, Comparable, Entries, Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory, - PlausibilityRules, RefEntries, Script, Sortable, + PlausibilityRules, PunkteKategorien, RefEntries, Script, Sortable, }; use crate::model::{Haeufigkeiten, Ordner}; use crate::profile::Profile; @@ -166,6 +166,9 @@ pub struct DataForm { #[serde(rename = "MenuCategory")] #[serde(skip_serializing_if = "Option::is_none")] menu_category: Option, + #[serde(rename = "PunkteKategorien")] + #[serde(skip_serializing_if = "Option::is_none")] + punkte_kategorien: Option, #[serde(rename = "Ansichten")] #[serde(skip_serializing_if = "Option::is_none")] ansichten: Option, diff --git a/src/model/mod.rs b/src/model/mod.rs index eae9980..78d2977 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -135,6 +135,66 @@ pub struct MenuCategory { column: String, } +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct PunkteKategorien { + #[serde(rename = "PunkteKategorie", default)] + punkte_kategorie: Vec, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct PunkteKategorie { + #[serde(rename = "Name")] + name: String, + #[serde(rename = "Beschreibung")] + beschreibung: String, + #[serde(rename = "MaxLeerwerte")] + max_leerwerte: u16, + #[serde(rename = "Berechnung")] + berechnung: String, + #[serde(rename = "Felder")] + #[serde(skip_serializing_if = "Option::is_none")] + felder: Option, + #[serde(rename = "Vergleichswerttabellen")] + vergleichswerttabellen: String, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct Felder { + #[serde(rename = "Feld", default)] + feld: Vec, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct Feld { + #[serde(rename = "DataFormEntryName")] + data_form_entry_name: String, + #[serde(rename = "ManuellePunkte")] + manuelle_punkte: bool, + #[serde(rename = "Werte")] + #[serde(skip_serializing_if = "Option::is_none")] + werte: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct FeldWerte { + #[serde(rename = "Wert", default)] + wert: Vec, +} + +#[derive(Serialize, Deserialize, Debug)] +#[serde(deny_unknown_fields)] +pub struct FeldWert { + #[serde(rename = "Wert")] + wert: String, + #[serde(rename = "Punkte")] + punkte: String, +} + #[derive(Serialize, Deserialize, Debug)] #[serde(deny_unknown_fields)] pub struct Filter { diff --git a/src/model/unterformular.rs b/src/model/unterformular.rs index 1ca3cf7..fd96e47 100644 --- a/src/model/unterformular.rs +++ b/src/model/unterformular.rs @@ -34,7 +34,7 @@ use crate::model::requirements::{Requirement, Requires}; use crate::model::{ apply_profile_to_form_entry, apply_profile_to_form_field, Ansichten, Comparable, Entries, Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory, - PlausibilityRules, RefEntries, Script, Sortable, + PlausibilityRules, PunkteKategorien, RefEntries, Script, Sortable, }; use crate::model::{Haeufigkeiten, Ordner}; use crate::profile::Profile; @@ -169,6 +169,9 @@ pub struct Unterformular { #[serde(rename = "MenuCategory")] #[serde(skip_serializing_if = "Option::is_none")] menu_category: Option, + #[serde(rename = "PunkteKategorien")] + #[serde(skip_serializing_if = "Option::is_none")] + punkte_kategorien: Option, #[serde(rename = "Ansichten")] #[serde(skip_serializing_if = "Option::is_none")] ansichten: Option,