// 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 DeklarationslisteDaten {
    pub deklarationsliste_daten_edifact: Option<crate::generated::companions::DeklarationslisteDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeklarationslisteDatenZuordnung {
    pub deklarationsliste_daten_zuordnung_edifact: Option<crate::generated::companions::DeklarationslisteDatenZuordnungEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Freitext {
    pub freitext_edifact: Option<crate::generated::companions::FreitextEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GemeindeDaten {
    pub gemeinderabatt_prozent: Option<String>,
    pub gemeinde_daten_edifact: Option<crate::generated::companions::GemeindeDatenEdifact>,
}

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

impl GeschaeftspartnerWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Geschaeftspartner) -> Self {
        Self { core: Some(core), geschaeftspartner_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct KommunikationseinrichtungDaten {
    pub kommunikationseinrichtung_daten_edifact: Option<crate::generated::companions::KommunikationseinrichtungDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct KonzessionDaten {
    pub konzession_daten_edifact: Option<crate::generated::companions::KonzessionDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LastprofilDaten {
    pub lastprofil_daten_edifact: Option<crate::generated::companions::LastprofilDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LastprofilDatenZuordnung {
    pub lastprofil_daten_zuordnung_edifact: Option<crate::generated::companions::LastprofilDatenZuordnungEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarktlokationWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Marktlokation>,
    pub marktlokation_edifact: Option<crate::generated::companions::MarktlokationEdifact>,
}

impl MarktlokationWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Marktlokation) -> Self {
        Self { core: Some(core), marktlokation_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MarktlokationZuordnung {
    pub marktlokation_zuordnung_edifact: Option<crate::generated::companions::MarktlokationZuordnungEdifact>,
}

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

impl MarktteilnehmerWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Marktteilnehmer) -> Self {
        Self { core: Some(core) }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MengenumwerterDaten {
    pub mengenumwerter_daten_edifact: Option<crate::generated::companions::MengenumwerterDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessdatenregistriergeraetDaten {
    pub messdatenregistriergeraet_daten_edifact: Option<crate::generated::companions::MessdatenregistriergeraetDatenEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MesslokationWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Messlokation>,
    pub messlokation_edifact: Option<crate::generated::companions::MesslokationEdifact>,
}

impl MesslokationWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Messlokation) -> Self {
        Self { core: Some(core), messlokation_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MesslokationZuordnung {
    pub messlokation_zuordnung_edifact: Option<crate::generated::companions::MesslokationZuordnungEdifact>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessproduktDatenWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Messlokation>,
    pub messprodukt_daten_edifact: Option<crate::generated::companions::MessproduktDatenEdifact>,
}

impl MessproduktDatenWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Messlokation) -> Self {
        Self { core: Some(core), messprodukt_daten_edifact: None }
    }
}

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

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ObisDatenMarktlokationWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Zaehlwerk>,
    pub obis_daten_marktlokation_edifact: Option<crate::generated::companions::ObisDatenMarktlokationEdifact>,
}

impl ObisDatenMarktlokationWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Zaehlwerk) -> Self {
        Self { core: Some(core), obis_daten_marktlokation_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ObisDatenZaehlerWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Zaehlwerk>,
    pub obis_daten_zaehler_edifact: Option<crate::generated::companions::ObisDatenZaehlerEdifact>,
}

impl ObisDatenZaehlerWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Zaehlwerk) -> Self {
        Self { core: Some(core), obis_daten_zaehler_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ObisDatenZaehlerZuordnung {
    pub obis_daten_zaehler_zuordnung_edifact: Option<crate::generated::companions::ObisDatenZaehlerZuordnungEdifact>,
}

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

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

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Prozessdaten {
    pub ablesedatum: Option<String>,
    pub abrechnungsintervall: Option<String>,
    pub aenderung_zum: Option<String>,
    pub antwort_codeliste_code: Option<String>,
    pub antwort_dritter_codeliste_code: Option<String>,
    pub antwort_dritter_pruefschritt: Option<String>,
    pub antwort_dritter_status_code: Option<String>,
    pub antwort_ebd_codeliste: Option<String>,
    pub antwort_pruefschritt: Option<String>,
    pub antwort_status_code: Option<String>,
    pub befristung_grund: Option<String>,
    pub befristung_status_code: Option<String>,
    pub bilanzierungsbeginn: Option<String>,
    pub bilanzierungsende: Option<String>,
    pub bilanzkreiszuordnung_status: Option<String>,
    pub datum_naechste_bearbeitung: Option<String>,
    pub ende_zum: Option<String>,
    pub geraetenummer: Option<String>,
    pub gueltig_ab: Option<String>,
    pub gueltig_bis: Option<String>,
    pub gueltigkeitsbeginn: Option<String>,
    pub identifikationsformat: Option<String>,
    pub identifikationslogik_code: Option<String>,
    pub identifikationslogik_wert: Option<String>,
    pub kuendigungsdatum: Option<String>,
    pub kuendigungsdatum_qualifier: Option<String>,
    pub kuendigungsfrist: Option<String>,
    pub kuendigungstermin: Option<String>,
    pub lieferbeginn_in_bearbeitung: Option<String>,
    pub lieferdatum_geplant: Option<String>,
    pub marktlokation_ref: Option<String>,
    pub naechste_netznutzungsabrechnung: Option<String>,
    pub netznutzungsabrechnungsintervall: Option<String>,
    pub pruefidentifikator: Option<String>,
    pub rechnungsperiode_beginn: Option<String>,
    pub status_code: Option<String>,
    pub termin_netznutzungsabrechnung: Option<String>,
    pub transaktionsgrund: Option<String>,
    pub transaktionsnummer: Option<String>,
    pub turnusablesung: Option<String>,
    pub vereinbarung_code: Option<String>,
    pub vorgang_id: Option<String>,
    pub zustelldatum: Option<String>,
    pub produkt_identifikation: Option<ProzessdatenProduktIdentifikation>,
    pub referenz: Option<ProzessdatenReferenz>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SmartmeterGatewayDatenWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Zaehler>,
    pub smartmeter_gateway_daten_edifact: Option<crate::generated::companions::SmartmeterGatewayDatenEdifact>,
}

impl SmartmeterGatewayDatenWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Zaehler) -> Self {
        Self { core: Some(core), smartmeter_gateway_daten_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ZaehlerWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Zaehler>,
    pub zaehler_edifact: Option<crate::generated::companions::ZaehlerEdifact>,
}

impl ZaehlerWrapped {
    /// Create a wrapped entity from a core BO4E type, with companion fields defaulted.
    pub fn with_core(core: bo4e_german::Zaehler) -> Self {
        Self { core: Some(core), zaehler_edifact: None }
    }
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ZaehlerZuordnung {
    pub zaehler_zuordnung_edifact: Option<crate::generated::companions::ZaehlerZuordnungEdifact>,
}

