// Auto-generated by automapper-generator. Do not edit.

#![allow(unused_imports)]

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AnsprechpartnerKontakt {
    pub funktion_code: Option<String>,
    pub name: Option<String>,
    pub nummer: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Ansprechpartner {
    pub kommunikationsadresse: Option<String>,
    pub kommunikationstyp: Option<String>,
    pub kontakt: Option<AnsprechpartnerKontakt>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BetreiberWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Geschaeftspartner>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarktteilnehmerWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Marktteilnehmer>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Nachricht {
    pub beschreibungsformat: Option<String>,
    pub dokumentennummer: Option<String>,
    pub dokumenttyp: Option<String>,
    pub erstellungsdatum: Option<String>,
    pub freitext1: Option<String>,
    pub freitext2: Option<String>,
    pub freitext3: Option<String>,
    pub freitext4: Option<String>,
    pub freitext5: Option<String>,
    pub freitext_code: Option<String>,
    pub freitext_funktion: Option<String>,
    pub freitext_qualifier: Option<String>,
    pub produkt_leistung_code: Option<String>,
    pub sperrdatum: Option<String>,
    pub uns_kennung: Option<String>,
    pub vertragsenddatum: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Preis {
    pub einzelpreisbasis_menge: Option<String>,
    pub mass_einheit: Option<String>,
    pub preis_betrag: Option<String>,
    pub preis_qualifier: Option<String>,
    pub preis_spezifikation: Option<String>,
    pub preis_typ: Option<String>,
    pub unverbindlich_masseinheit: Option<String>,
    pub unverbindlich_menge_max: Option<String>,
    pub unverbindlich_menge_min: Option<String>,
    pub verbindlich_masseinheit: Option<String>,
    pub verbindlich_menge: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Referenz {
    pub qualifier: Option<String>,
    pub referenz: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangObisIdentifikation {
    pub id: Option<String>,
    pub typ: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangProduktIdentifikation {
    pub funktion: Option<String>,
    pub id: Option<String>,
    pub typ: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangZusatzProduktIdentifikation {
    pub id: Option<String>,
    pub typ: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Vorgang {
    pub artikel_nummer: Option<String>,
    pub artikel_nummer_typ: Option<String>,
    pub beschreibungsformat: Option<String>,
    pub datum_bis_wert: Option<String>,
    pub datum_qualifier: Option<String>,
    pub datum_wert: Option<String>,
    pub freitext1: Option<String>,
    pub freitext2: Option<String>,
    pub freitext3: Option<String>,
    pub freitext4: Option<String>,
    pub freitext5: Option<String>,
    pub freitext_code: Option<String>,
    pub freitext_funktion: Option<String>,
    pub freitext_qualifier: Option<String>,
    pub handlung_code: Option<String>,
    pub ident_nummer: Option<String>,
    pub ident_qualifier: Option<String>,
    pub positionsnummer: Option<String>,
    pub produkt_leistung_code: Option<String>,
    pub obis_identifikation: Option<VorgangObisIdentifikation>,
    pub produkt_identifikation: Option<VorgangProduktIdentifikation>,
    pub zusatz_produkt_identifikation: Option<VorgangZusatzProduktIdentifikation>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangReferenz {
    pub referenz: Option<String>,
    pub versionsnummer: Option<String>,
    pub zeilennummer: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangZuordnungMerkmal {
    pub code: Option<String>,
    pub codepflege: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VorgangZuordnung {
    pub dimension: Option<String>,
    pub klassentyp: Option<String>,
    pub merkmal_codeliste_code: Option<String>,
    pub merkmal_codeliste_code2: Option<String>,
    pub merkmal_daten_wert: Option<String>,
    pub merkmal_daten_wert2: Option<String>,
    pub merkmal_wert: Option<String>,
    pub merkmal_wert2: Option<String>,
    pub merkmal_wert3: Option<String>,
    pub merkmal_wert4: Option<String>,
    pub oberer_schwellwert: Option<String>,
    pub unterer_schwellwert: Option<String>,
    pub merkmal: Option<VorgangZuordnungMerkmal>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Waehrung {
    pub waehrung_code: Option<String>,
    pub waehrung_qualifier: Option<String>,
    pub waehrung_typ: Option<String>,
}
