// 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>,
}

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

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

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

#[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 MesslokationWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Messlokation>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Messwert {
    pub ablesedatum: Option<String>,
    pub abrechnungszeitraum: Option<String>,
    pub ausfuehrungszeitpunkt: Option<String>,
    pub beginn: Option<String>,
    pub einheit: Option<String>,
    pub ende: Option<String>,
    pub leistungsperiode: Option<String>,
    pub messwert_qualifier: Option<String>,
    pub nutzungszeitpunkt: Option<String>,
    pub status_energiemenge: Option<String>,
    pub status_energiemenge_grund: Option<String>,
    pub status_ersatzwert: Option<String>,
    pub status_ersatzwert_grund: Option<String>,
    pub status_korrektur: Option<String>,
    pub status_korrektur_grund: Option<String>,
    pub status_messwertqualitaet: Option<String>,
    pub status_messwertqualitaet_grund: Option<String>,
    pub status_plausibilisierung: Option<String>,
    pub status_plausibilisierung_grund: Option<String>,
    pub status_verbrauch: Option<String>,
    pub status_verbrauch_grund: Option<String>,
    pub wert: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Nachricht {
    pub dokumentennummer: Option<String>,
    pub dokumenttyp: Option<String>,
    pub erstellungsdatum: Option<String>,
    pub nachrichtenfunktion: Option<String>,
    pub uns_kennung: Option<String>,
}

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

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Position {
    pub positionsnummer: Option<String>,
    pub produkt_identifikation: Option<PositionProduktIdentifikation>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Prozessdaten {}

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