// 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>,
    pub geschaeftspartner_edifact: Option<crate::generated::companions::GeschaeftspartnerEdifact>,
}

impl BetreiberWrapped {
    /// 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 Freitext {
    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 sendungsposition: Option<String>,
    pub text_funktion: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Lieferschein {
    pub dateiname: Option<String>,
    pub lieferschein_datum_bis: Option<String>,
    pub lieferschein_datum_von: Option<String>,
    pub lieferschein_periode: Option<String>,
    pub masseinheit: Option<String>,
    pub menge: Option<String>,
    pub menge_qualifier: Option<String>,
    pub produktbeschreibung: Option<String>,
}

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

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) }
    }
}

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

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Status {
    pub aag_qualifier: Option<String>,
    pub aav_qualifier: Option<String>,
    pub ace_qualifier: Option<String>,
    pub acw_qualifier: Option<String>,
    pub ady_qualifier: Option<String>,
    pub aenderungsdatum: Option<String>,
    pub agi_qualifier: Option<String>,
    pub ave_qualifier: Option<String>,
    pub ebd_nummer: Option<String>,
    pub eingangsdatum: Option<String>,
    pub entsperrtermin: Option<String>,
    pub fertigstellungsdatum: Option<String>,
    pub geplantes_lieferdatum: Option<String>,
    pub lieferdatum: Option<String>,
    pub pruefidentifikator: Option<String>,
    pub pruefschritt_code: Option<String>,
    pub pruefschritt_code1: Option<String>,
    pub pruefschritt_code2: Option<String>,
    pub pruefschritt_code3: Option<String>,
    pub pruefschritt_code4: Option<String>,
    pub pruefschritt_code5: Option<String>,
    pub referenz: Option<String>,
    pub sperrtermin: Option<String>,
    pub status_code: Option<String>,
    pub status_kategorie: Option<String>,
    pub statusaenderung_zeitpunkt: Option<String>,
    pub tn_qualifier: Option<String>,
    pub transaktionsnummer: Option<String>,
    pub z17_qualifier: Option<String>,
    pub z45_qualifier: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StatusZ03 {
    pub ebd_nummer: Option<String>,
    pub pruefschritt_code: Option<String>,
    pub status_code: Option<String>,
    pub status_kategorie: Option<String>,
}

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

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StatusZ13 {
    pub ebd_nummer: Option<String>,
    pub pruefschritt_code: Option<String>,
    pub status_code: Option<String>,
    pub status_kategorie: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Vorgang {
    pub loc_qualifier: Option<String>,
    pub meldepunkt_id: Option<String>,
    pub pruefidentifikator: Option<String>,
    pub vorgangsnummer: Option<String>,
    pub zeitreihen_version: Option<String>,
}

