// 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 Abweichung {
    pub aperak_nachrichtennummer: Option<String>,
    pub datenaustauschreferenz: Option<String>,
    pub ebd_referenz: Option<String>,
    pub empfangsbestaetigung_ref: Option<String>,
    pub freitext: Option<String>,
    pub freitext_funktion: Option<String>,
    pub freitext_qualifier: Option<String>,
    pub freitext_referenz: Option<String>,
    pub nachrichtennummer: Option<String>,
    pub pruefschritt_code: Option<String>,
    pub referenz_code: Option<String>,
    pub referenz_funktion: Option<String>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Dokument {
    pub dokumentennummer: Option<String>,
    pub dokumenttyp: Option<String>,
    pub faelliger_betrag: 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 Nachricht {
    pub dokumentennummer: Option<String>,
    pub dokumenttyp: Option<String>,
    pub erstellungsdatum: Option<String>,
    pub pruefidentifikator: Option<String>,
    pub waehrung_code: Option<String>,
    pub waehrung_qualifier: Option<String>,
    pub waehrungsverwendung: Option<String>,
}

