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

#[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 KontaktKontakt {
    pub name: Option<String>,
    pub nummer: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Kontakt {
    pub kommunikationsart: Option<String>,
    pub kommunikationsnummer: Option<String>,
    pub kontakt: Option<KontaktKontakt>,
}

#[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 MarktlokationWrapped {
    #[serde(flatten)]
    pub core: Option<bo4e_german::Marktlokation>,
    pub marktlokation_edifact: Option<crate::generated::companions::MarktlokationEdifact>,
}

#[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 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>,
}

#[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>,
}

#[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>,
}

#[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>,
}

#[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>,
}

#[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>,
}

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