Server

<back to all web services

CreateCustomers

Requires Authentication
The following routes are available for this service:
POST/Customers/Create
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class CreateCustomersResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $customersCreated=0,
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['customersCreated'])) $this->customersCreated = $o['customersCreated'];
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->customersCreated)) $o['customersCreated'] = $this->customersCreated;
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class CustomerAddress implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="AdresseGuid")
        /** @var string|null */
        public ?string $AdresseGuid=null,

        // @DataMember(Name="IstPrimaer")
        /** @var bool|null */
        public ?bool $IstPrimaer=null,

        // @DataMember(Name="AdressTypBezeichnung")
        /** @var string|null */
        public ?string $AdressTypBezeichnung=null,

        // @DataMember(Name="AdressTyp")
        /** @var string|null */
        public ?string $AdressTyp=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['AdresseGuid'])) $this->AdresseGuid = $o['AdresseGuid'];
        if (isset($o['IstPrimaer'])) $this->IstPrimaer = $o['IstPrimaer'];
        if (isset($o['AdressTypBezeichnung'])) $this->AdressTypBezeichnung = $o['AdressTypBezeichnung'];
        if (isset($o['AdressTyp'])) $this->AdressTyp = $o['AdressTyp'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->AdresseGuid)) $o['AdresseGuid'] = $this->AdresseGuid;
        if (isset($this->IstPrimaer)) $o['IstPrimaer'] = $this->IstPrimaer;
        if (isset($this->AdressTypBezeichnung)) $o['AdressTypBezeichnung'] = $this->AdressTypBezeichnung;
        if (isset($this->AdressTyp)) $o['AdressTyp'] = $this->AdressTyp;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class CustomerObjekt implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="ZeitraumVon")
        /** @var DateTime */
        public DateTime $ZeitraumVon=new DateTime(),

        // @DataMember(Name="ZeitraumBis")
        /** @var DateTime|null */
        public ?DateTime $ZeitraumBis=null,

        // @DataMember(Name="IstKunde")
        /** @var bool|null */
        public ?bool $IstKunde=null,

        // @DataMember(Name="IstEigentümer")
        /** @var bool|null */
        public ?bool $IstEigent_mer=null,

        // @DataMember(Name="IstEigentümerPseudo")
        /** @var bool|null */
        public ?bool $IstEigent_merPseudo=null,

        // @DataMember(Name="ObjektGuid")
        /** @var string|null */
        public ?string $ObjektGuid=null,

        // @DataMember(Name="KundeGuid")
        /** @var string|null */
        public ?string $KundeGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['ZeitraumVon'])) $this->ZeitraumVon = JsonConverters::from('DateTime', $o['ZeitraumVon']);
        if (isset($o['ZeitraumBis'])) $this->ZeitraumBis = JsonConverters::from('DateTime', $o['ZeitraumBis']);
        if (isset($o['IstKunde'])) $this->IstKunde = $o['IstKunde'];
        if (isset($o['IstEigent_mer'])) $this->IstEigent_mer = $o['IstEigent_mer'];
        if (isset($o['IstEigent_merPseudo'])) $this->IstEigent_merPseudo = $o['IstEigent_merPseudo'];
        if (isset($o['ObjektGuid'])) $this->ObjektGuid = $o['ObjektGuid'];
        if (isset($o['KundeGuid'])) $this->KundeGuid = $o['KundeGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->ZeitraumVon)) $o['ZeitraumVon'] = JsonConverters::to('DateTime', $this->ZeitraumVon);
        if (isset($this->ZeitraumBis)) $o['ZeitraumBis'] = JsonConverters::to('DateTime', $this->ZeitraumBis);
        if (isset($this->IstKunde)) $o['IstKunde'] = $this->IstKunde;
        if (isset($this->IstEigent_mer)) $o['IstEigent_mer'] = $this->IstEigent_mer;
        if (isset($this->IstEigent_merPseudo)) $o['IstEigent_merPseudo'] = $this->IstEigent_merPseudo;
        if (isset($this->ObjektGuid)) $o['ObjektGuid'] = $this->ObjektGuid;
        if (isset($this->KundeGuid)) $o['KundeGuid'] = $this->KundeGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Customer implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Name1")
        /** @var string|null */
        public ?string $Name1=null,

        // @DataMember(Name="Name2")
        /** @var string|null */
        public ?string $Name2=null,

        // @DataMember(Name="Name3")
        /** @var string|null */
        public ?string $Name3=null,

        // @DataMember(Name="Kundennummer")
        /** @var string|null */
        public ?string $Kundennummer=null,

        // @DataMember(Name="Anrede")
        /** @var string|null */
        public ?string $Anrede=null,

        // @DataMember(Name="KundenAdressen")
        /** @var array<CustomerAddress>|null */
        public ?array $KundenAdressen=null,

        // @DataMember(Name="KundenObjekte")
        /** @var array<CustomerObjekt>|null */
        public ?array $KundenObjekte=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Name1'])) $this->Name1 = $o['Name1'];
        if (isset($o['Name2'])) $this->Name2 = $o['Name2'];
        if (isset($o['Name3'])) $this->Name3 = $o['Name3'];
        if (isset($o['Kundennummer'])) $this->Kundennummer = $o['Kundennummer'];
        if (isset($o['Anrede'])) $this->Anrede = $o['Anrede'];
        if (isset($o['KundenAdressen'])) $this->KundenAdressen = JsonConverters::fromArray('CustomerAddress', $o['KundenAdressen']);
        if (isset($o['KundenObjekte'])) $this->KundenObjekte = JsonConverters::fromArray('CustomerObjekt', $o['KundenObjekte']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Name1)) $o['Name1'] = $this->Name1;
        if (isset($this->Name2)) $o['Name2'] = $this->Name2;
        if (isset($this->Name3)) $o['Name3'] = $this->Name3;
        if (isset($this->Kundennummer)) $o['Kundennummer'] = $this->Kundennummer;
        if (isset($this->Anrede)) $o['Anrede'] = $this->Anrede;
        if (isset($this->KundenAdressen)) $o['KundenAdressen'] = JsonConverters::toArray('CustomerAddress', $this->KundenAdressen);
        if (isset($this->KundenObjekte)) $o['KundenObjekte'] = JsonConverters::toArray('CustomerObjekt', $this->KundenObjekte);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Objekt implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Objektnummer")
        /** @var string|null */
        public ?string $Objektnummer=null,

        // @DataMember(Name="IstAbgeschlossen")
        /** @var string|null */
        public ?string $IstAbgeschlossen=null,

        // @DataMember(Name="Uvi")
        /** @var string|null */
        public ?string $Uvi=null,

        // @DataMember(Name="IsUviDisabled")
        /** @var string|null */
        public ?string $IsUviDisabled=null,

        // @DataMember(Name="AbgeschlossenDatum")
        /** @var DateTime|null */
        public ?DateTime $AbgeschlossenDatum=null,

        // @DataMember(Name="AdressGuid")
        /** @var string|null */
        public ?string $AdressGuid=null,

        // @DataMember(Name="AnmerkungKundenportal")
        /** @var string|null */
        public ?string $AnmerkungKundenportal=null,

        // @DataMember(Name="KundenportalMarkedDone")
        /** @var bool|null */
        public ?bool $KundenportalMarkedDone=null,

        // @DataMember(Name="MarkedDoneAt")
        /** @var DateTime|null */
        public ?DateTime $MarkedDoneAt=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Objektnummer'])) $this->Objektnummer = $o['Objektnummer'];
        if (isset($o['IstAbgeschlossen'])) $this->IstAbgeschlossen = $o['IstAbgeschlossen'];
        if (isset($o['Uvi'])) $this->Uvi = $o['Uvi'];
        if (isset($o['IsUviDisabled'])) $this->IsUviDisabled = $o['IsUviDisabled'];
        if (isset($o['AbgeschlossenDatum'])) $this->AbgeschlossenDatum = JsonConverters::from('DateTime', $o['AbgeschlossenDatum']);
        if (isset($o['AdressGuid'])) $this->AdressGuid = $o['AdressGuid'];
        if (isset($o['AnmerkungKundenportal'])) $this->AnmerkungKundenportal = $o['AnmerkungKundenportal'];
        if (isset($o['KundenportalMarkedDone'])) $this->KundenportalMarkedDone = $o['KundenportalMarkedDone'];
        if (isset($o['MarkedDoneAt'])) $this->MarkedDoneAt = JsonConverters::from('DateTime', $o['MarkedDoneAt']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Objektnummer)) $o['Objektnummer'] = $this->Objektnummer;
        if (isset($this->IstAbgeschlossen)) $o['IstAbgeschlossen'] = $this->IstAbgeschlossen;
        if (isset($this->Uvi)) $o['Uvi'] = $this->Uvi;
        if (isset($this->IsUviDisabled)) $o['IsUviDisabled'] = $this->IsUviDisabled;
        if (isset($this->AbgeschlossenDatum)) $o['AbgeschlossenDatum'] = JsonConverters::to('DateTime', $this->AbgeschlossenDatum);
        if (isset($this->AdressGuid)) $o['AdressGuid'] = $this->AdressGuid;
        if (isset($this->AnmerkungKundenportal)) $o['AnmerkungKundenportal'] = $this->AnmerkungKundenportal;
        if (isset($this->KundenportalMarkedDone)) $o['KundenportalMarkedDone'] = $this->KundenportalMarkedDone;
        if (isset($this->MarkedDoneAt)) $o['MarkedDoneAt'] = JsonConverters::to('DateTime', $this->MarkedDoneAt);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Address implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Straße")
        /** @var string|null */
        public ?string $Stra_e=null,

        // @DataMember(Name="Straße2")
        /** @var string|null */
        public ?string $Stra_e2=null,

        // @DataMember(Name="Hausnummer")
        /** @var string|null */
        public ?string $Hausnummer=null,

        // @DataMember(Name="Postleitzahl")
        /** @var string|null */
        public ?string $Postleitzahl=null,

        // @DataMember(Name="Ort")
        /** @var string|null */
        public ?string $Ort=null,

        // @DataMember(Name="Postfach")
        /** @var string|null */
        public ?string $Postfach=null,

        // @DataMember(Name="Adresszusatz")
        /** @var string|null */
        public ?string $Adresszusatz=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Stra_e'])) $this->Stra_e = $o['Stra_e'];
        if (isset($o['Stra_e2'])) $this->Stra_e2 = $o['Stra_e2'];
        if (isset($o['Hausnummer'])) $this->Hausnummer = $o['Hausnummer'];
        if (isset($o['Postleitzahl'])) $this->Postleitzahl = $o['Postleitzahl'];
        if (isset($o['Ort'])) $this->Ort = $o['Ort'];
        if (isset($o['Postfach'])) $this->Postfach = $o['Postfach'];
        if (isset($o['Adresszusatz'])) $this->Adresszusatz = $o['Adresszusatz'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Stra_e)) $o['Stra_e'] = $this->Stra_e;
        if (isset($this->Stra_e2)) $o['Stra_e2'] = $this->Stra_e2;
        if (isset($this->Hausnummer)) $o['Hausnummer'] = $this->Hausnummer;
        if (isset($this->Postleitzahl)) $o['Postleitzahl'] = $this->Postleitzahl;
        if (isset($this->Ort)) $o['Ort'] = $this->Ort;
        if (isset($this->Postfach)) $o['Postfach'] = $this->Postfach;
        if (isset($this->Adresszusatz)) $o['Adresszusatz'] = $this->Adresszusatz;
        return empty($o) ? new class(){} : $o;
    }
}

enum NutzerType : string
{
    case Leerstand = 'Leerstand';
    case Gewerblich = 'Gewerblich';
    case Privat = 'Privat';
    case AllgemeineNutzung = 'AllgemeineNutzung';
}

// @DataContract
class Nutzer implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var string|null */
        public ?string $name1=null,

        // @DataMember
        /** @var string|null */
        public ?string $name2=null,

        // @DataMember
        /** @var string|null */
        public ?string $name3=null,

        // @DataMember
        /** @var string|null */
        public ?string $name4=null,

        // @DataMember
        // @ApiMember(IsRequired=true)
        /** @var NutzerType|null */
        public ?NutzerType $nutzerType=null,

        // @DataMember
        /** @var string|null */
        public ?string $nutzeinheitNumberExternal=null,

        // @DataMember
        // @ApiMember(IsRequired=true)
        /** @var int */
        public int $nutzerInNutzeinheitSequence=0,

        // @DataMember
        // @ApiMember(IsRequired=true)
        /** @var DateTime */
        public DateTime $rangeFrom=new DateTime(),

        // @DataMember
        /** @var DateTime|null */
        public ?DateTime $rangeTo=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember(Name="IstUvi")
        /** @var string|null */
        public ?string $IstUvi=null,

        // @DataMember(Name="EigentuemerBewohnt")
        /** @var string|null */
        public ?string $EigentuemerBewohnt=null,

        // @DataMember(Name="Email")
        /** @var string|null */
        public ?string $Email=null,

        // @DataMember(Name="Mobil")
        /** @var string|null */
        public ?string $Mobil=null,

        // @DataMember
        /** @var string|null */
        public ?string $title=null,

        // @DataMember
        // @ApiMember(IsRequired=true, ParameterType="body")
        /** @var string */
        public string $salutation=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['name1'])) $this->name1 = $o['name1'];
        if (isset($o['name2'])) $this->name2 = $o['name2'];
        if (isset($o['name3'])) $this->name3 = $o['name3'];
        if (isset($o['name4'])) $this->name4 = $o['name4'];
        if (isset($o['nutzerType'])) $this->nutzerType = JsonConverters::from('NutzerType', $o['nutzerType']);
        if (isset($o['nutzeinheitNumberExternal'])) $this->nutzeinheitNumberExternal = $o['nutzeinheitNumberExternal'];
        if (isset($o['nutzerInNutzeinheitSequence'])) $this->nutzerInNutzeinheitSequence = $o['nutzerInNutzeinheitSequence'];
        if (isset($o['rangeFrom'])) $this->rangeFrom = JsonConverters::from('DateTime', $o['rangeFrom']);
        if (isset($o['rangeTo'])) $this->rangeTo = JsonConverters::from('DateTime', $o['rangeTo']);
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['IstUvi'])) $this->IstUvi = $o['IstUvi'];
        if (isset($o['EigentuemerBewohnt'])) $this->EigentuemerBewohnt = $o['EigentuemerBewohnt'];
        if (isset($o['Email'])) $this->Email = $o['Email'];
        if (isset($o['Mobil'])) $this->Mobil = $o['Mobil'];
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['salutation'])) $this->salutation = $o['salutation'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->name1)) $o['name1'] = $this->name1;
        if (isset($this->name2)) $o['name2'] = $this->name2;
        if (isset($this->name3)) $o['name3'] = $this->name3;
        if (isset($this->name4)) $o['name4'] = $this->name4;
        if (isset($this->nutzerType)) $o['nutzerType'] = JsonConverters::to('NutzerType', $this->nutzerType);
        if (isset($this->nutzeinheitNumberExternal)) $o['nutzeinheitNumberExternal'] = $this->nutzeinheitNumberExternal;
        if (isset($this->nutzerInNutzeinheitSequence)) $o['nutzerInNutzeinheitSequence'] = $this->nutzerInNutzeinheitSequence;
        if (isset($this->rangeFrom)) $o['rangeFrom'] = JsonConverters::to('DateTime', $this->rangeFrom);
        if (isset($this->rangeTo)) $o['rangeTo'] = JsonConverters::to('DateTime', $this->rangeTo);
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->IstUvi)) $o['IstUvi'] = $this->IstUvi;
        if (isset($this->EigentuemerBewohnt)) $o['EigentuemerBewohnt'] = $this->EigentuemerBewohnt;
        if (isset($this->Email)) $o['Email'] = $this->Email;
        if (isset($this->Mobil)) $o['Mobil'] = $this->Mobil;
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->salutation)) $o['salutation'] = $this->salutation;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzerCoOwnership implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="ShareValue")
        /** @var float|null */
        public ?float $ShareValue=null,

        // @DataMember(Name="Von")
        /** @var DateTime */
        public DateTime $Von=new DateTime(),

        // @DataMember(Name="Bis")
        /** @var DateTime|null */
        public ?DateTime $Bis=null,

        // @DataMember(Name="NutzerGuid")
        /** @var string|null */
        public ?string $NutzerGuid=null,

        // @DataMember(Name="IsCreatedByApp")
        /** @var bool|null */
        public ?bool $IsCreatedByApp=null,

        // @DataMember(Name="IsDeleted")
        /** @var bool|null */
        public ?bool $IsDeleted=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['ShareValue'])) $this->ShareValue = $o['ShareValue'];
        if (isset($o['Von'])) $this->Von = JsonConverters::from('DateTime', $o['Von']);
        if (isset($o['Bis'])) $this->Bis = JsonConverters::from('DateTime', $o['Bis']);
        if (isset($o['NutzerGuid'])) $this->NutzerGuid = $o['NutzerGuid'];
        if (isset($o['IsCreatedByApp'])) $this->IsCreatedByApp = $o['IsCreatedByApp'];
        if (isset($o['IsDeleted'])) $this->IsDeleted = $o['IsDeleted'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->ShareValue)) $o['ShareValue'] = $this->ShareValue;
        if (isset($this->Von)) $o['Von'] = JsonConverters::to('DateTime', $this->Von);
        if (isset($this->Bis)) $o['Bis'] = JsonConverters::to('DateTime', $this->Bis);
        if (isset($this->NutzerGuid)) $o['NutzerGuid'] = $this->NutzerGuid;
        if (isset($this->IsCreatedByApp)) $o['IsCreatedByApp'] = $this->IsCreatedByApp;
        if (isset($this->IsDeleted)) $o['IsDeleted'] = $this->IsDeleted;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzerPersonen implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Personen")
        /** @var int|null */
        public ?int $Personen=null,

        // @DataMember(Name="Von")
        /** @var DateTime */
        public DateTime $Von=new DateTime(),

        // @DataMember(Name="Bis")
        /** @var DateTime|null */
        public ?DateTime $Bis=null,

        // @DataMember(Name="NutzerGuid")
        /** @var string|null */
        public ?string $NutzerGuid=null,

        // @DataMember(Name="IsCreatedByApp")
        /** @var bool|null */
        public ?bool $IsCreatedByApp=null,

        // @DataMember(Name="IsDeleted")
        /** @var bool|null */
        public ?bool $IsDeleted=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Personen'])) $this->Personen = $o['Personen'];
        if (isset($o['Von'])) $this->Von = JsonConverters::from('DateTime', $o['Von']);
        if (isset($o['Bis'])) $this->Bis = JsonConverters::from('DateTime', $o['Bis']);
        if (isset($o['NutzerGuid'])) $this->NutzerGuid = $o['NutzerGuid'];
        if (isset($o['IsCreatedByApp'])) $this->IsCreatedByApp = $o['IsCreatedByApp'];
        if (isset($o['IsDeleted'])) $this->IsDeleted = $o['IsDeleted'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Personen)) $o['Personen'] = $this->Personen;
        if (isset($this->Von)) $o['Von'] = JsonConverters::to('DateTime', $this->Von);
        if (isset($this->Bis)) $o['Bis'] = JsonConverters::to('DateTime', $this->Bis);
        if (isset($this->NutzerGuid)) $o['NutzerGuid'] = $this->NutzerGuid;
        if (isset($this->IsCreatedByApp)) $o['IsCreatedByApp'] = $this->IsCreatedByApp;
        if (isset($this->IsDeleted)) $o['IsDeleted'] = $this->IsDeleted;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzerQuadratmeter implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Quadratmeter_Hzg")
        /** @var float|null */
        public ?float $Quadratmeter_Hzg=null,

        // @DataMember(Name="Quadratmeter_Ww")
        /** @var float|null */
        public ?float $Quadratmeter_Ww=null,

        // @DataMember(Name="Quadratmeter_Nk")
        /** @var float|null */
        public ?float $Quadratmeter_Nk=null,

        // @DataMember(Name="Von")
        /** @var DateTime */
        public DateTime $Von=new DateTime(),

        // @DataMember(Name="Bis")
        /** @var DateTime|null */
        public ?DateTime $Bis=null,

        // @DataMember(Name="NutzerGuid")
        /** @var string|null */
        public ?string $NutzerGuid=null,

        // @DataMember(Name="IsCreatedByApp")
        /** @var bool|null */
        public ?bool $IsCreatedByApp=null,

        // @DataMember(Name="IsDeleted")
        /** @var bool|null */
        public ?bool $IsDeleted=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Quadratmeter_Hzg'])) $this->Quadratmeter_Hzg = $o['Quadratmeter_Hzg'];
        if (isset($o['Quadratmeter_Ww'])) $this->Quadratmeter_Ww = $o['Quadratmeter_Ww'];
        if (isset($o['Quadratmeter_Nk'])) $this->Quadratmeter_Nk = $o['Quadratmeter_Nk'];
        if (isset($o['Von'])) $this->Von = JsonConverters::from('DateTime', $o['Von']);
        if (isset($o['Bis'])) $this->Bis = JsonConverters::from('DateTime', $o['Bis']);
        if (isset($o['NutzerGuid'])) $this->NutzerGuid = $o['NutzerGuid'];
        if (isset($o['IsCreatedByApp'])) $this->IsCreatedByApp = $o['IsCreatedByApp'];
        if (isset($o['IsDeleted'])) $this->IsDeleted = $o['IsDeleted'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Quadratmeter_Hzg)) $o['Quadratmeter_Hzg'] = $this->Quadratmeter_Hzg;
        if (isset($this->Quadratmeter_Ww)) $o['Quadratmeter_Ww'] = $this->Quadratmeter_Ww;
        if (isset($this->Quadratmeter_Nk)) $o['Quadratmeter_Nk'] = $this->Quadratmeter_Nk;
        if (isset($this->Von)) $o['Von'] = JsonConverters::to('DateTime', $this->Von);
        if (isset($this->Bis)) $o['Bis'] = JsonConverters::to('DateTime', $this->Bis);
        if (isset($this->NutzerGuid)) $o['NutzerGuid'] = $this->NutzerGuid;
        if (isset($this->IsCreatedByApp)) $o['IsCreatedByApp'] = $this->IsCreatedByApp;
        if (isset($this->IsDeleted)) $o['IsDeleted'] = $this->IsDeleted;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class OwnerNutzeinheit implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Name1")
        /** @var string|null */
        public ?string $Name1=null,

        // @DataMember(Name="Name2")
        /** @var string|null */
        public ?string $Name2=null,

        // @DataMember(Name="Name3")
        /** @var string|null */
        public ?string $Name3=null,

        // @DataMember(Name="Name4")
        /** @var string|null */
        public ?string $Name4=null,

        // @DataMember(Name="ZeitraumVon")
        /** @var DateTime */
        public DateTime $ZeitraumVon=new DateTime(),

        // @DataMember(Name="ZeitraumBis")
        /** @var DateTime|null */
        public ?DateTime $ZeitraumBis=null,

        // @DataMember(Name="Titel")
        /** @var string|null */
        public ?string $Titel=null,

        // @DataMember(Name="Anrede")
        /** @var string|null */
        public ?string $Anrede=null,

        // @DataMember(Name="AdressGuid")
        /** @var string|null */
        public ?string $AdressGuid=null,

        // @DataMember(Name="NutzeinheitGuid")
        /** @var string|null */
        public ?string $NutzeinheitGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Name1'])) $this->Name1 = $o['Name1'];
        if (isset($o['Name2'])) $this->Name2 = $o['Name2'];
        if (isset($o['Name3'])) $this->Name3 = $o['Name3'];
        if (isset($o['Name4'])) $this->Name4 = $o['Name4'];
        if (isset($o['ZeitraumVon'])) $this->ZeitraumVon = JsonConverters::from('DateTime', $o['ZeitraumVon']);
        if (isset($o['ZeitraumBis'])) $this->ZeitraumBis = JsonConverters::from('DateTime', $o['ZeitraumBis']);
        if (isset($o['Titel'])) $this->Titel = $o['Titel'];
        if (isset($o['Anrede'])) $this->Anrede = $o['Anrede'];
        if (isset($o['AdressGuid'])) $this->AdressGuid = $o['AdressGuid'];
        if (isset($o['NutzeinheitGuid'])) $this->NutzeinheitGuid = $o['NutzeinheitGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Name1)) $o['Name1'] = $this->Name1;
        if (isset($this->Name2)) $o['Name2'] = $this->Name2;
        if (isset($this->Name3)) $o['Name3'] = $this->Name3;
        if (isset($this->Name4)) $o['Name4'] = $this->Name4;
        if (isset($this->ZeitraumVon)) $o['ZeitraumVon'] = JsonConverters::to('DateTime', $this->ZeitraumVon);
        if (isset($this->ZeitraumBis)) $o['ZeitraumBis'] = JsonConverters::to('DateTime', $this->ZeitraumBis);
        if (isset($this->Titel)) $o['Titel'] = $this->Titel;
        if (isset($this->Anrede)) $o['Anrede'] = $this->Anrede;
        if (isset($this->AdressGuid)) $o['AdressGuid'] = $this->AdressGuid;
        if (isset($this->NutzeinheitGuid)) $o['NutzeinheitGuid'] = $this->NutzeinheitGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Nutzeinheit implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Nummer")
        /** @var string|null */
        public ?string $Nummer=null,

        // @DataMember(Name="Lage")
        /** @var string|null */
        public ?string $Lage=null,

        // @DataMember(Name="ObjektGuid")
        /** @var string|null */
        public ?string $ObjektGuid=null,

        // @DataMember(Name="AdressGuid")
        /** @var string|null */
        public ?string $AdressGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Nummer'])) $this->Nummer = $o['Nummer'];
        if (isset($o['Lage'])) $this->Lage = $o['Lage'];
        if (isset($o['ObjektGuid'])) $this->ObjektGuid = $o['ObjektGuid'];
        if (isset($o['AdressGuid'])) $this->AdressGuid = $o['AdressGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Nummer)) $o['Nummer'] = $this->Nummer;
        if (isset($this->Lage)) $o['Lage'] = $this->Lage;
        if (isset($this->ObjektGuid)) $o['ObjektGuid'] = $this->ObjektGuid;
        if (isset($this->AdressGuid)) $o['AdressGuid'] = $this->AdressGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BillingInformation implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Von")
        /** @var DateTime */
        public DateTime $Von=new DateTime(),

        // @DataMember(Name="Bis")
        /** @var DateTime */
        public DateTime $Bis=new DateTime(),

        // @DataMember(Name="IstAbgeschlossen")
        /** @var bool|null */
        public ?bool $IstAbgeschlossen=null,

        // @DataMember(Name="HatNebenkosten")
        /** @var bool|null */
        public ?bool $HatNebenkosten=null,

        // @DataMember(Name="ObjektGuid")
        /** @var string|null */
        public ?string $ObjektGuid=null,

        // @DataMember(Name="AnmerkungKundenportal")
        /** @var string|null */
        public ?string $AnmerkungKundenportal=null,

        // @DataMember(Name="KundenportalMarkedDone")
        /** @var bool|null */
        public ?bool $KundenportalMarkedDone=null,

        // @DataMember(Name="MarkedDoneAt")
        /** @var DateTime|null */
        public ?DateTime $MarkedDoneAt=null,

        // @DataMember(Name="KundenportalMarkedClosed")
        /** @var bool|null */
        public ?bool $KundenportalMarkedClosed=null,

        // @DataMember(Name="MarkedClosedAt")
        /** @var DateTime|null */
        public ?DateTime $MarkedClosedAt=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Von'])) $this->Von = JsonConverters::from('DateTime', $o['Von']);
        if (isset($o['Bis'])) $this->Bis = JsonConverters::from('DateTime', $o['Bis']);
        if (isset($o['IstAbgeschlossen'])) $this->IstAbgeschlossen = $o['IstAbgeschlossen'];
        if (isset($o['HatNebenkosten'])) $this->HatNebenkosten = $o['HatNebenkosten'];
        if (isset($o['ObjektGuid'])) $this->ObjektGuid = $o['ObjektGuid'];
        if (isset($o['AnmerkungKundenportal'])) $this->AnmerkungKundenportal = $o['AnmerkungKundenportal'];
        if (isset($o['KundenportalMarkedDone'])) $this->KundenportalMarkedDone = $o['KundenportalMarkedDone'];
        if (isset($o['MarkedDoneAt'])) $this->MarkedDoneAt = JsonConverters::from('DateTime', $o['MarkedDoneAt']);
        if (isset($o['KundenportalMarkedClosed'])) $this->KundenportalMarkedClosed = $o['KundenportalMarkedClosed'];
        if (isset($o['MarkedClosedAt'])) $this->MarkedClosedAt = JsonConverters::from('DateTime', $o['MarkedClosedAt']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Von)) $o['Von'] = JsonConverters::to('DateTime', $this->Von);
        if (isset($this->Bis)) $o['Bis'] = JsonConverters::to('DateTime', $this->Bis);
        if (isset($this->IstAbgeschlossen)) $o['IstAbgeschlossen'] = $this->IstAbgeschlossen;
        if (isset($this->HatNebenkosten)) $o['HatNebenkosten'] = $this->HatNebenkosten;
        if (isset($this->ObjektGuid)) $o['ObjektGuid'] = $this->ObjektGuid;
        if (isset($this->AnmerkungKundenportal)) $o['AnmerkungKundenportal'] = $this->AnmerkungKundenportal;
        if (isset($this->KundenportalMarkedDone)) $o['KundenportalMarkedDone'] = $this->KundenportalMarkedDone;
        if (isset($this->MarkedDoneAt)) $o['MarkedDoneAt'] = JsonConverters::to('DateTime', $this->MarkedDoneAt);
        if (isset($this->KundenportalMarkedClosed)) $o['KundenportalMarkedClosed'] = $this->KundenportalMarkedClosed;
        if (isset($this->MarkedClosedAt)) $o['MarkedClosedAt'] = JsonConverters::to('DateTime', $this->MarkedClosedAt);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Direktkosten implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var string|null */
        public ?string $label=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $date=new DateTime(),

        // @DataMember
        /** @var float */
        public float $brutto=0.0,

        // @DataMember
        /** @var float */
        public float $salesTax=0.0,

        // @DataMember
        /** @var float */
        public float $quantity=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $type=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember
        /** @var string */
        public string $nutzerGuid='',

        // @DataMember
        /** @var BillingInformation|null */
        public ?BillingInformation $billingInformation=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['label'])) $this->label = $o['label'];
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
        if (isset($o['brutto'])) $this->brutto = $o['brutto'];
        if (isset($o['salesTax'])) $this->salesTax = $o['salesTax'];
        if (isset($o['quantity'])) $this->quantity = $o['quantity'];
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['nutzerGuid'])) $this->nutzerGuid = $o['nutzerGuid'];
        if (isset($o['billingInformation'])) $this->billingInformation = JsonConverters::from('BillingInformation', $o['billingInformation']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->label)) $o['label'] = $this->label;
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        if (isset($this->brutto)) $o['brutto'] = $this->brutto;
        if (isset($this->salesTax)) $o['salesTax'] = $this->salesTax;
        if (isset($this->quantity)) $o['quantity'] = $this->quantity;
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->nutzerGuid)) $o['nutzerGuid'] = $this->nutzerGuid;
        if (isset($this->billingInformation)) $o['billingInformation'] = JsonConverters::to('BillingInformation', $this->billingInformation);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Prepayment implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Von")
        /** @var DateTime */
        public DateTime $Von=new DateTime(),

        // @DataMember(Name="Bis")
        /** @var DateTime */
        public DateTime $Bis=new DateTime(),

        // @DataMember(Name="VZ Nebenkosten")
        /** @var float|null */
        public ?float $VZ_Nebenkosten=null,

        // @DataMember(Name="VZ Heizkosten")
        /** @var float|null */
        public ?float $VZ_Heizkosten=null,

        // @DataMember(Name="VZ Warmwasser")
        /** @var float|null */
        public ?float $VZ_Warmwasser=null,

        // @DataMember(Name="IstGeloescht")
        /** @var bool|null */
        public ?bool $IstGeloescht=null,

        // @DataMember(Name="IstErzeugtVonApp")
        /** @var bool|null */
        public ?bool $IstErzeugtVonApp=null,

        // @DataMember(Name="ObjektGuid")
        /** @var string|null */
        public ?string $ObjektGuid=null,

        // @DataMember(Name="NutzerGuid")
        /** @var string|null */
        public ?string $NutzerGuid=null,

        // @DataMember(Name="BillingInformationGuid")
        /** @var string|null */
        public ?string $BillingInformationGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Von'])) $this->Von = JsonConverters::from('DateTime', $o['Von']);
        if (isset($o['Bis'])) $this->Bis = JsonConverters::from('DateTime', $o['Bis']);
        if (isset($o['VZ_Nebenkosten'])) $this->VZ_Nebenkosten = $o['VZ_Nebenkosten'];
        if (isset($o['VZ_Heizkosten'])) $this->VZ_Heizkosten = $o['VZ_Heizkosten'];
        if (isset($o['VZ_Warmwasser'])) $this->VZ_Warmwasser = $o['VZ_Warmwasser'];
        if (isset($o['IstGeloescht'])) $this->IstGeloescht = $o['IstGeloescht'];
        if (isset($o['IstErzeugtVonApp'])) $this->IstErzeugtVonApp = $o['IstErzeugtVonApp'];
        if (isset($o['ObjektGuid'])) $this->ObjektGuid = $o['ObjektGuid'];
        if (isset($o['NutzerGuid'])) $this->NutzerGuid = $o['NutzerGuid'];
        if (isset($o['BillingInformationGuid'])) $this->BillingInformationGuid = $o['BillingInformationGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Von)) $o['Von'] = JsonConverters::to('DateTime', $this->Von);
        if (isset($this->Bis)) $o['Bis'] = JsonConverters::to('DateTime', $this->Bis);
        if (isset($this->VZ_Nebenkosten)) $o['VZ_Nebenkosten'] = $this->VZ_Nebenkosten;
        if (isset($this->VZ_Heizkosten)) $o['VZ_Heizkosten'] = $this->VZ_Heizkosten;
        if (isset($this->VZ_Warmwasser)) $o['VZ_Warmwasser'] = $this->VZ_Warmwasser;
        if (isset($this->IstGeloescht)) $o['IstGeloescht'] = $this->IstGeloescht;
        if (isset($this->IstErzeugtVonApp)) $o['IstErzeugtVonApp'] = $this->IstErzeugtVonApp;
        if (isset($this->ObjektGuid)) $o['ObjektGuid'] = $this->ObjektGuid;
        if (isset($this->NutzerGuid)) $o['NutzerGuid'] = $this->NutzerGuid;
        if (isset($this->BillingInformationGuid)) $o['BillingInformationGuid'] = $this->BillingInformationGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class EnergieVerwerter implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Bezeichnung")
        /** @var string|null */
        public ?string $Bezeichnung=null,

        // @DataMember(Name="Wirkungsgrad")
        /** @var float|null */
        public ?float $Wirkungsgrad=null,

        // @DataMember(Name="Einbau")
        /** @var DateTime */
        public DateTime $Einbau=new DateTime(),

        // @DataMember(Name="Ausbau")
        /** @var DateTime|null */
        public ?DateTime $Ausbau=null,

        // @DataMember(Name="Baujahr")
        /** @var int|null */
        public ?int $Baujahr=null,

        // @DataMember(Name="Temperatur")
        /** @var int|null */
        public ?int $Temperatur=null,

        // @DataMember(Name="EigenstGewerbLieferung")
        /** @var bool|null */
        public ?bool $EigenstGewerbLieferung=null,

        // @DataMember(Name="Brennwert")
        /** @var bool|null */
        public ?bool $Brennwert=null,

        // @DataMember(Name="ObjektGuid")
        /** @var string|null */
        public ?string $ObjektGuid=null,

        // @DataMember(Name="BrennstoffMediumGuid")
        /** @var string|null */
        public ?string $BrennstoffMediumGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
        if (isset($o['Wirkungsgrad'])) $this->Wirkungsgrad = $o['Wirkungsgrad'];
        if (isset($o['Einbau'])) $this->Einbau = JsonConverters::from('DateTime', $o['Einbau']);
        if (isset($o['Ausbau'])) $this->Ausbau = JsonConverters::from('DateTime', $o['Ausbau']);
        if (isset($o['Baujahr'])) $this->Baujahr = $o['Baujahr'];
        if (isset($o['Temperatur'])) $this->Temperatur = $o['Temperatur'];
        if (isset($o['EigenstGewerbLieferung'])) $this->EigenstGewerbLieferung = $o['EigenstGewerbLieferung'];
        if (isset($o['Brennwert'])) $this->Brennwert = $o['Brennwert'];
        if (isset($o['ObjektGuid'])) $this->ObjektGuid = $o['ObjektGuid'];
        if (isset($o['BrennstoffMediumGuid'])) $this->BrennstoffMediumGuid = $o['BrennstoffMediumGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
        if (isset($this->Wirkungsgrad)) $o['Wirkungsgrad'] = $this->Wirkungsgrad;
        if (isset($this->Einbau)) $o['Einbau'] = JsonConverters::to('DateTime', $this->Einbau);
        if (isset($this->Ausbau)) $o['Ausbau'] = JsonConverters::to('DateTime', $this->Ausbau);
        if (isset($this->Baujahr)) $o['Baujahr'] = $this->Baujahr;
        if (isset($this->Temperatur)) $o['Temperatur'] = $this->Temperatur;
        if (isset($this->EigenstGewerbLieferung)) $o['EigenstGewerbLieferung'] = $this->EigenstGewerbLieferung;
        if (isset($this->Brennwert)) $o['Brennwert'] = $this->Brennwert;
        if (isset($this->ObjektGuid)) $o['ObjektGuid'] = $this->ObjektGuid;
        if (isset($this->BrennstoffMediumGuid)) $o['BrennstoffMediumGuid'] = $this->BrennstoffMediumGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Brennstofflieferung implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var DateTime */
        public DateTime $deliveryDate=new DateTime(),

        // @DataMember
        /** @var float|null */
        public ?float $salexTax=null,

        // @DataMember
        /** @var float|null */
        public ?float $emisionsTax=null,

        // @DataMember
        /** @var float|null */
        public ?float $c02Taxes=null,

        // @DataMember
        /** @var float|null */
        public ?float $customsTax=null,

        // @DataMember
        /** @var float|null */
        public ?float $otherCharges=null,

        // @DataMember
        /** @var float|null */
        public ?float $c02Price=null,

        // @DataMember
        /** @var float|null */
        public ?float $c02Tons=null,

        // @DataMember
        /** @var float|null */
        public ?float $quantity=null,

        // @DataMember
        /** @var float|null */
        public ?float $amount=null,

        // @DataMember
        /** @var float|null */
        public ?float $startMeterReadingValue=null,

        // @DataMember
        /** @var float|null */
        public ?float $endMeterReadingValue=null,

        // @DataMember
        /** @var float */
        public float $heizwert=0.0,

        // @DataMember
        /** @var bool|null */
        public ?bool $brennwert=null,

        // @DataMember
        /** @var string|null */
        public ?string $energyReliefAmountDescription=null,

        // @DataMember
        /** @var float|null */
        public ?float $energyReliefAmount=null,

        // @DataMember
        /** @var string|null */
        public ?string $electricityReliefAmountDescription=null,

        // @DataMember
        /** @var float|null */
        public ?float $electricityReliefAmount=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2EmissionsFactor=null,

        // @DataMember
        /** @var string|null */
        public ?string $cO2Text=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $cO2Active=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $cO2PriceKnd=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2PriceLandlord=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2PriceRenter=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2Area=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isForCommercialUse=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isRenovationRequired=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isHeatingPadsImproved=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2KWh=null,

        // @DataMember
        /** @var float|null */
        public ?float $includedCO2SalesTax=null,

        // @DataMember
        /** @var float|null */
        public ?float $cO2Costs=null,

        // @DataMember
        /** @var float|null */
        public ?float $totalC02Weight=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $noTotalDeductionC02Costs=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember
        /** @var string */
        public string $brennstoffMediumGuid='',

        // @DataMember
        /** @var BillingInformation|null */
        public ?BillingInformation $billingInformation=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['deliveryDate'])) $this->deliveryDate = JsonConverters::from('DateTime', $o['deliveryDate']);
        if (isset($o['salexTax'])) $this->salexTax = $o['salexTax'];
        if (isset($o['emisionsTax'])) $this->emisionsTax = $o['emisionsTax'];
        if (isset($o['c02Taxes'])) $this->c02Taxes = $o['c02Taxes'];
        if (isset($o['customsTax'])) $this->customsTax = $o['customsTax'];
        if (isset($o['otherCharges'])) $this->otherCharges = $o['otherCharges'];
        if (isset($o['c02Price'])) $this->c02Price = $o['c02Price'];
        if (isset($o['c02Tons'])) $this->c02Tons = $o['c02Tons'];
        if (isset($o['quantity'])) $this->quantity = $o['quantity'];
        if (isset($o['amount'])) $this->amount = $o['amount'];
        if (isset($o['startMeterReadingValue'])) $this->startMeterReadingValue = $o['startMeterReadingValue'];
        if (isset($o['endMeterReadingValue'])) $this->endMeterReadingValue = $o['endMeterReadingValue'];
        if (isset($o['heizwert'])) $this->heizwert = $o['heizwert'];
        if (isset($o['brennwert'])) $this->brennwert = $o['brennwert'];
        if (isset($o['energyReliefAmountDescription'])) $this->energyReliefAmountDescription = $o['energyReliefAmountDescription'];
        if (isset($o['energyReliefAmount'])) $this->energyReliefAmount = $o['energyReliefAmount'];
        if (isset($o['electricityReliefAmountDescription'])) $this->electricityReliefAmountDescription = $o['electricityReliefAmountDescription'];
        if (isset($o['electricityReliefAmount'])) $this->electricityReliefAmount = $o['electricityReliefAmount'];
        if (isset($o['cO2EmissionsFactor'])) $this->cO2EmissionsFactor = $o['cO2EmissionsFactor'];
        if (isset($o['cO2Text'])) $this->cO2Text = $o['cO2Text'];
        if (isset($o['cO2Active'])) $this->cO2Active = $o['cO2Active'];
        if (isset($o['cO2PriceKnd'])) $this->cO2PriceKnd = $o['cO2PriceKnd'];
        if (isset($o['cO2PriceLandlord'])) $this->cO2PriceLandlord = $o['cO2PriceLandlord'];
        if (isset($o['cO2PriceRenter'])) $this->cO2PriceRenter = $o['cO2PriceRenter'];
        if (isset($o['cO2Area'])) $this->cO2Area = $o['cO2Area'];
        if (isset($o['isForCommercialUse'])) $this->isForCommercialUse = $o['isForCommercialUse'];
        if (isset($o['isRenovationRequired'])) $this->isRenovationRequired = $o['isRenovationRequired'];
        if (isset($o['isHeatingPadsImproved'])) $this->isHeatingPadsImproved = $o['isHeatingPadsImproved'];
        if (isset($o['cO2KWh'])) $this->cO2KWh = $o['cO2KWh'];
        if (isset($o['includedCO2SalesTax'])) $this->includedCO2SalesTax = $o['includedCO2SalesTax'];
        if (isset($o['cO2Costs'])) $this->cO2Costs = $o['cO2Costs'];
        if (isset($o['totalC02Weight'])) $this->totalC02Weight = $o['totalC02Weight'];
        if (isset($o['noTotalDeductionC02Costs'])) $this->noTotalDeductionC02Costs = $o['noTotalDeductionC02Costs'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['brennstoffMediumGuid'])) $this->brennstoffMediumGuid = $o['brennstoffMediumGuid'];
        if (isset($o['billingInformation'])) $this->billingInformation = JsonConverters::from('BillingInformation', $o['billingInformation']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->deliveryDate)) $o['deliveryDate'] = JsonConverters::to('DateTime', $this->deliveryDate);
        if (isset($this->salexTax)) $o['salexTax'] = $this->salexTax;
        if (isset($this->emisionsTax)) $o['emisionsTax'] = $this->emisionsTax;
        if (isset($this->c02Taxes)) $o['c02Taxes'] = $this->c02Taxes;
        if (isset($this->customsTax)) $o['customsTax'] = $this->customsTax;
        if (isset($this->otherCharges)) $o['otherCharges'] = $this->otherCharges;
        if (isset($this->c02Price)) $o['c02Price'] = $this->c02Price;
        if (isset($this->c02Tons)) $o['c02Tons'] = $this->c02Tons;
        if (isset($this->quantity)) $o['quantity'] = $this->quantity;
        if (isset($this->amount)) $o['amount'] = $this->amount;
        if (isset($this->startMeterReadingValue)) $o['startMeterReadingValue'] = $this->startMeterReadingValue;
        if (isset($this->endMeterReadingValue)) $o['endMeterReadingValue'] = $this->endMeterReadingValue;
        if (isset($this->heizwert)) $o['heizwert'] = $this->heizwert;
        if (isset($this->brennwert)) $o['brennwert'] = $this->brennwert;
        if (isset($this->energyReliefAmountDescription)) $o['energyReliefAmountDescription'] = $this->energyReliefAmountDescription;
        if (isset($this->energyReliefAmount)) $o['energyReliefAmount'] = $this->energyReliefAmount;
        if (isset($this->electricityReliefAmountDescription)) $o['electricityReliefAmountDescription'] = $this->electricityReliefAmountDescription;
        if (isset($this->electricityReliefAmount)) $o['electricityReliefAmount'] = $this->electricityReliefAmount;
        if (isset($this->cO2EmissionsFactor)) $o['cO2EmissionsFactor'] = $this->cO2EmissionsFactor;
        if (isset($this->cO2Text)) $o['cO2Text'] = $this->cO2Text;
        if (isset($this->cO2Active)) $o['cO2Active'] = $this->cO2Active;
        if (isset($this->cO2PriceKnd)) $o['cO2PriceKnd'] = $this->cO2PriceKnd;
        if (isset($this->cO2PriceLandlord)) $o['cO2PriceLandlord'] = $this->cO2PriceLandlord;
        if (isset($this->cO2PriceRenter)) $o['cO2PriceRenter'] = $this->cO2PriceRenter;
        if (isset($this->cO2Area)) $o['cO2Area'] = $this->cO2Area;
        if (isset($this->isForCommercialUse)) $o['isForCommercialUse'] = $this->isForCommercialUse;
        if (isset($this->isRenovationRequired)) $o['isRenovationRequired'] = $this->isRenovationRequired;
        if (isset($this->isHeatingPadsImproved)) $o['isHeatingPadsImproved'] = $this->isHeatingPadsImproved;
        if (isset($this->cO2KWh)) $o['cO2KWh'] = $this->cO2KWh;
        if (isset($this->includedCO2SalesTax)) $o['includedCO2SalesTax'] = $this->includedCO2SalesTax;
        if (isset($this->cO2Costs)) $o['cO2Costs'] = $this->cO2Costs;
        if (isset($this->totalC02Weight)) $o['totalC02Weight'] = $this->totalC02Weight;
        if (isset($this->noTotalDeductionC02Costs)) $o['noTotalDeductionC02Costs'] = $this->noTotalDeductionC02Costs;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->brennstoffMediumGuid)) $o['brennstoffMediumGuid'] = $this->brennstoffMediumGuid;
        if (isset($this->billingInformation)) $o['billingInformation'] = JsonConverters::to('BillingInformation', $this->billingInformation);
        return empty($o) ? new class(){} : $o;
    }
}

enum NebenkostenTargetAllocation : string
{
    case Null = 'Null';
    case AlleNutzer = 'AlleNutzer';
    case ZugeordneteNutzer = 'ZugeordneteNutzer';
    case ZugeordneteNutzeinheiten = 'ZugeordneteNutzeinheiten';
    case ZugeordneteNutzerDiff = 'ZugeordneteNutzerDiff';
    case ZugeordneteNutzeinheitenDiff = 'ZugeordneteNutzeinheitenDiff';
}

enum NebenkostenTargetAllocationIn : string
{
    case Nebenkosten = 'Nebenkosten';
    case Heizkosten = 'Heizkosten';
    case Warmwasserkosten = 'Warmwasserkosten';
}

// @DataContract
class NebenkostenNutzeinheit implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float|null */
        public ?float $relativeAmount=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember
        /** @var string */
        public string $nutzeinheitGuid=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['relativeAmount'])) $this->relativeAmount = $o['relativeAmount'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['nutzeinheitGuid'])) $this->nutzeinheitGuid = $o['nutzeinheitGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->relativeAmount)) $o['relativeAmount'] = $this->relativeAmount;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->nutzeinheitGuid)) $o['nutzeinheitGuid'] = $this->nutzeinheitGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NebenkostenNutzer implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float|null */
        public ?float $relativeAmount=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember
        /** @var string */
        public string $nutzerGuid=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['relativeAmount'])) $this->relativeAmount = $o['relativeAmount'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['nutzerGuid'])) $this->nutzerGuid = $o['nutzerGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->relativeAmount)) $o['relativeAmount'] = $this->relativeAmount;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->nutzerGuid)) $o['nutzerGuid'] = $this->nutzerGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Nebenkosten implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var int */
        public int $number=0,

        // @DataMember
        /** @var DateTime */
        public DateTime $from=new DateTime(),

        // @DataMember
        /** @var DateTime */
        public DateTime $to=new DateTime(),

        // @DataMember
        /** @var NebenkostenTargetAllocation|null */
        public ?NebenkostenTargetAllocation $targetAllocation=null,

        // @DataMember
        /** @var NebenkostenTargetAllocationIn|null */
        public ?NebenkostenTargetAllocationIn $targetAllocationIn=null,

        // @DataMember
        /** @var string|null */
        public ?string $nebenkostenKind=null,

        /** @description Freitext */
        // @DataMember
        // @ApiMember(Description="Freitext")
        /** @var string|null */
        public ?string $kostenart=null,

        // @DataMember
        /** @var float|null */
        public ?float $brutto=null,

        // @DataMember
        /** @var float|null */
        public ?float $bruttoLastYear=null,

        // @DataMember
        /** @var float|null */
        public ?float $salesTax=null,

        // @DataMember
        /** @var string|null */
        public ?string $haushaltsnahediensteLabel=null,

        // @DataMember
        /** @var float|null */
        public ?float $haushaltsnahediensteBrutto=null,

        /** @description Freitext */
        // @DataMember
        // @ApiMember(Description="Freitext")
        /** @var string|null */
        public ?string $kostenartUnit=null,

        // @DataMember
        /** @var string|null */
        public ?string $reduzierungsartType=null,

        // @DataMember
        /** @var string|null */
        public ?string $comment=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null,

        // @DataMember
        /** @var array<NebenkostenNutzeinheit>|null */
        public ?array $nebenkostenNutzeinheiten=null,

        // @DataMember
        /** @var array<NebenkostenNutzer>|null */
        public ?array $nebenkostenNutzer=null,

        // @DataMember
        /** @var BillingInformation|null */
        public ?BillingInformation $billingInformation=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['number'])) $this->number = $o['number'];
        if (isset($o['from'])) $this->from = JsonConverters::from('DateTime', $o['from']);
        if (isset($o['to'])) $this->to = JsonConverters::from('DateTime', $o['to']);
        if (isset($o['targetAllocation'])) $this->targetAllocation = JsonConverters::from('NebenkostenTargetAllocation', $o['targetAllocation']);
        if (isset($o['targetAllocationIn'])) $this->targetAllocationIn = JsonConverters::from('NebenkostenTargetAllocationIn', $o['targetAllocationIn']);
        if (isset($o['nebenkostenKind'])) $this->nebenkostenKind = $o['nebenkostenKind'];
        if (isset($o['kostenart'])) $this->kostenart = $o['kostenart'];
        if (isset($o['brutto'])) $this->brutto = $o['brutto'];
        if (isset($o['bruttoLastYear'])) $this->bruttoLastYear = $o['bruttoLastYear'];
        if (isset($o['salesTax'])) $this->salesTax = $o['salesTax'];
        if (isset($o['haushaltsnahediensteLabel'])) $this->haushaltsnahediensteLabel = $o['haushaltsnahediensteLabel'];
        if (isset($o['haushaltsnahediensteBrutto'])) $this->haushaltsnahediensteBrutto = $o['haushaltsnahediensteBrutto'];
        if (isset($o['kostenartUnit'])) $this->kostenartUnit = $o['kostenartUnit'];
        if (isset($o['reduzierungsartType'])) $this->reduzierungsartType = $o['reduzierungsartType'];
        if (isset($o['comment'])) $this->comment = $o['comment'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
        if (isset($o['nebenkostenNutzeinheiten'])) $this->nebenkostenNutzeinheiten = JsonConverters::fromArray('NebenkostenNutzeinheit', $o['nebenkostenNutzeinheiten']);
        if (isset($o['nebenkostenNutzer'])) $this->nebenkostenNutzer = JsonConverters::fromArray('NebenkostenNutzer', $o['nebenkostenNutzer']);
        if (isset($o['billingInformation'])) $this->billingInformation = JsonConverters::from('BillingInformation', $o['billingInformation']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->number)) $o['number'] = $this->number;
        if (isset($this->from)) $o['from'] = JsonConverters::to('DateTime', $this->from);
        if (isset($this->to)) $o['to'] = JsonConverters::to('DateTime', $this->to);
        if (isset($this->targetAllocation)) $o['targetAllocation'] = JsonConverters::to('NebenkostenTargetAllocation', $this->targetAllocation);
        if (isset($this->targetAllocationIn)) $o['targetAllocationIn'] = JsonConverters::to('NebenkostenTargetAllocationIn', $this->targetAllocationIn);
        if (isset($this->nebenkostenKind)) $o['nebenkostenKind'] = $this->nebenkostenKind;
        if (isset($this->kostenart)) $o['kostenart'] = $this->kostenart;
        if (isset($this->brutto)) $o['brutto'] = $this->brutto;
        if (isset($this->bruttoLastYear)) $o['bruttoLastYear'] = $this->bruttoLastYear;
        if (isset($this->salesTax)) $o['salesTax'] = $this->salesTax;
        if (isset($this->haushaltsnahediensteLabel)) $o['haushaltsnahediensteLabel'] = $this->haushaltsnahediensteLabel;
        if (isset($this->haushaltsnahediensteBrutto)) $o['haushaltsnahediensteBrutto'] = $this->haushaltsnahediensteBrutto;
        if (isset($this->kostenartUnit)) $o['kostenartUnit'] = $this->kostenartUnit;
        if (isset($this->reduzierungsartType)) $o['reduzierungsartType'] = $this->reduzierungsartType;
        if (isset($this->comment)) $o['comment'] = $this->comment;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        if (isset($this->nebenkostenNutzeinheiten)) $o['nebenkostenNutzeinheiten'] = JsonConverters::toArray('NebenkostenNutzeinheit', $this->nebenkostenNutzeinheiten);
        if (isset($this->nebenkostenNutzer)) $o['nebenkostenNutzer'] = JsonConverters::toArray('NebenkostenNutzer', $this->nebenkostenNutzer);
        if (isset($this->billingInformation)) $o['billingInformation'] = JsonConverters::to('BillingInformation', $this->billingInformation);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Heizbetriebskosten implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var DateTime */
        public DateTime $from=new DateTime(),

        // @DataMember
        /** @var DateTime */
        public DateTime $to=new DateTime(),

        // @DataMember
        /** @var float */
        public float $salesTax=0.0,

        // @DataMember
        /** @var float|null */
        public ?float $haushatlsnahediensteBrutto=null,

        // @DataMember
        /** @var float|null */
        public ?float $brutto=null,

        // @DataMember
        /** @var string|null */
        public ?string $haushatlsnahediensteLabel=null,

        // @DataMember
        /** @var string|null */
        public ?string $description=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isDeleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $isCreatedByApp=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['from'])) $this->from = JsonConverters::from('DateTime', $o['from']);
        if (isset($o['to'])) $this->to = JsonConverters::from('DateTime', $o['to']);
        if (isset($o['salesTax'])) $this->salesTax = $o['salesTax'];
        if (isset($o['haushatlsnahediensteBrutto'])) $this->haushatlsnahediensteBrutto = $o['haushatlsnahediensteBrutto'];
        if (isset($o['brutto'])) $this->brutto = $o['brutto'];
        if (isset($o['haushatlsnahediensteLabel'])) $this->haushatlsnahediensteLabel = $o['haushatlsnahediensteLabel'];
        if (isset($o['description'])) $this->description = $o['description'];
        if (isset($o['isDeleted'])) $this->isDeleted = $o['isDeleted'];
        if (isset($o['isCreatedByApp'])) $this->isCreatedByApp = $o['isCreatedByApp'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->from)) $o['from'] = JsonConverters::to('DateTime', $this->from);
        if (isset($this->to)) $o['to'] = JsonConverters::to('DateTime', $this->to);
        if (isset($this->salesTax)) $o['salesTax'] = $this->salesTax;
        if (isset($this->haushatlsnahediensteBrutto)) $o['haushatlsnahediensteBrutto'] = $this->haushatlsnahediensteBrutto;
        if (isset($this->brutto)) $o['brutto'] = $this->brutto;
        if (isset($this->haushatlsnahediensteLabel)) $o['haushatlsnahediensteLabel'] = $this->haushatlsnahediensteLabel;
        if (isset($this->description)) $o['description'] = $this->description;
        if (isset($this->isDeleted)) $o['isDeleted'] = $this->isDeleted;
        if (isset($this->isCreatedByApp)) $o['isCreatedByApp'] = $this->isCreatedByApp;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzeinheitDevice implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="ZuordnungVon")
        /** @var DateTime */
        public DateTime $ZuordnungVon=new DateTime(),

        // @DataMember(Name="ZuordnungBis")
        /** @var DateTime|null */
        public ?DateTime $ZuordnungBis=null,

        // @DataMember(Name="Raum")
        /** @var string|null */
        public ?string $Raum=null,

        // @DataMember(Name="LaufendeNummer")
        /** @var string|null */
        public ?string $LaufendeNummer=null,

        // @DataMember(Name="gemietet")
        /** @var bool|null */
        public ?bool $gemietet=null,

        // @DataMember(Name="gewartet")
        /** @var bool|null */
        public ?bool $gewartet=null,

        // @DataMember(Name="DeviceGuid")
        /** @var string|null */
        public ?string $DeviceGuid=null,

        // @DataMember(Name="NutzeinheitGuid")
        /** @var string|null */
        public ?string $NutzeinheitGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['ZuordnungVon'])) $this->ZuordnungVon = JsonConverters::from('DateTime', $o['ZuordnungVon']);
        if (isset($o['ZuordnungBis'])) $this->ZuordnungBis = JsonConverters::from('DateTime', $o['ZuordnungBis']);
        if (isset($o['Raum'])) $this->Raum = $o['Raum'];
        if (isset($o['LaufendeNummer'])) $this->LaufendeNummer = $o['LaufendeNummer'];
        if (isset($o['gemietet'])) $this->gemietet = $o['gemietet'];
        if (isset($o['gewartet'])) $this->gewartet = $o['gewartet'];
        if (isset($o['DeviceGuid'])) $this->DeviceGuid = $o['DeviceGuid'];
        if (isset($o['NutzeinheitGuid'])) $this->NutzeinheitGuid = $o['NutzeinheitGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->ZuordnungVon)) $o['ZuordnungVon'] = JsonConverters::to('DateTime', $this->ZuordnungVon);
        if (isset($this->ZuordnungBis)) $o['ZuordnungBis'] = JsonConverters::to('DateTime', $this->ZuordnungBis);
        if (isset($this->Raum)) $o['Raum'] = $this->Raum;
        if (isset($this->LaufendeNummer)) $o['LaufendeNummer'] = $this->LaufendeNummer;
        if (isset($this->gemietet)) $o['gemietet'] = $this->gemietet;
        if (isset($this->gewartet)) $o['gewartet'] = $this->gewartet;
        if (isset($this->DeviceGuid)) $o['DeviceGuid'] = $this->DeviceGuid;
        if (isset($this->NutzeinheitGuid)) $o['NutzeinheitGuid'] = $this->NutzeinheitGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Device implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string|null */
        public ?string $Guid=null,

        // @DataMember(Name="Geraetenummer")
        /** @var string|null */
        public ?string $Geraetenummer=null,

        // @DataMember(Name="Bezeichnung")
        /** @var string|null */
        public ?string $Bezeichnung=null,

        // @DataMember(Name="Beschreibung")
        /** @var string|null */
        public ?string $Beschreibung=null,

        // @DataMember(Name="Einbaudatum")
        /** @var DateTime */
        public DateTime $Einbaudatum=new DateTime(),

        // @DataMember(Name="Ausbaudatum")
        /** @var DateTime|null */
        public ?DateTime $Ausbaudatum=null,

        // @DataMember(Name="Eichdatum")
        /** @var DateTime|null */
        public ?DateTime $Eichdatum=null,

        // @DataMember(Name="Einheit")
        /** @var string|null */
        public ?string $Einheit=null,

        // @DataMember(Name="Memo")
        /** @var string|null */
        public ?string $Memo=null,

        // @DataMember(Name="DeviceCatalogGuid")
        /** @var string|null */
        public ?string $DeviceCatalogGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Geraetenummer'])) $this->Geraetenummer = $o['Geraetenummer'];
        if (isset($o['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
        if (isset($o['Beschreibung'])) $this->Beschreibung = $o['Beschreibung'];
        if (isset($o['Einbaudatum'])) $this->Einbaudatum = JsonConverters::from('DateTime', $o['Einbaudatum']);
        if (isset($o['Ausbaudatum'])) $this->Ausbaudatum = JsonConverters::from('DateTime', $o['Ausbaudatum']);
        if (isset($o['Eichdatum'])) $this->Eichdatum = JsonConverters::from('DateTime', $o['Eichdatum']);
        if (isset($o['Einheit'])) $this->Einheit = $o['Einheit'];
        if (isset($o['Memo'])) $this->Memo = $o['Memo'];
        if (isset($o['DeviceCatalogGuid'])) $this->DeviceCatalogGuid = $o['DeviceCatalogGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->Geraetenummer)) $o['Geraetenummer'] = $this->Geraetenummer;
        if (isset($this->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
        if (isset($this->Beschreibung)) $o['Beschreibung'] = $this->Beschreibung;
        if (isset($this->Einbaudatum)) $o['Einbaudatum'] = JsonConverters::to('DateTime', $this->Einbaudatum);
        if (isset($this->Ausbaudatum)) $o['Ausbaudatum'] = JsonConverters::to('DateTime', $this->Ausbaudatum);
        if (isset($this->Eichdatum)) $o['Eichdatum'] = JsonConverters::to('DateTime', $this->Eichdatum);
        if (isset($this->Einheit)) $o['Einheit'] = $this->Einheit;
        if (isset($this->Memo)) $o['Memo'] = $this->Memo;
        if (isset($this->DeviceCatalogGuid)) $o['DeviceCatalogGuid'] = $this->DeviceCatalogGuid;
        return empty($o) ? new class(){} : $o;
    }
}

enum DeviceReadingKind : string
{
    case ZA = 'ZA';
    case HA = 'HA';
    case MO = 'MO';
    case EB = 'EB';
    case AB = 'AB';
}

// @DataContract
class DeviceConsumption implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string */
        public string $guid='',

        // @DataMember
        /** @var float|null */
        public ?float $deviceReading=null,

        // @DataMember
        /** @var DateTime|null */
        public ?DateTime $deviceReadingDate=null,

        // @DataMember
        /** @var DeviceReadingKind|null */
        public ?DeviceReadingKind $deviceReadingKind=null,

        // @DataMember
        /** @var DateTime|null */
        public ?DateTime $changeDate=null,

        // @DataMember
        /** @var string|null */
        public ?string $note=null,

        // @DataMember
        /** @var string|null */
        public ?string $ampouleColour=null,

        // @DataMember
        /** @var string|null */
        public ?string $deviceGuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['deviceReading'])) $this->deviceReading = $o['deviceReading'];
        if (isset($o['deviceReadingDate'])) $this->deviceReadingDate = JsonConverters::from('DateTime', $o['deviceReadingDate']);
        if (isset($o['deviceReadingKind'])) $this->deviceReadingKind = JsonConverters::from('DeviceReadingKind', $o['deviceReadingKind']);
        if (isset($o['changeDate'])) $this->changeDate = JsonConverters::from('DateTime', $o['changeDate']);
        if (isset($o['note'])) $this->note = $o['note'];
        if (isset($o['ampouleColour'])) $this->ampouleColour = $o['ampouleColour'];
        if (isset($o['deviceGuid'])) $this->deviceGuid = $o['deviceGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->deviceReading)) $o['deviceReading'] = $this->deviceReading;
        if (isset($this->deviceReadingDate)) $o['deviceReadingDate'] = JsonConverters::to('DateTime', $this->deviceReadingDate);
        if (isset($this->deviceReadingKind)) $o['deviceReadingKind'] = JsonConverters::to('DeviceReadingKind', $this->deviceReadingKind);
        if (isset($this->changeDate)) $o['changeDate'] = JsonConverters::to('DateTime', $this->changeDate);
        if (isset($this->note)) $o['note'] = $this->note;
        if (isset($this->ampouleColour)) $o['ampouleColour'] = $this->ampouleColour;
        if (isset($this->deviceGuid)) $o['deviceGuid'] = $this->deviceGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class CreateCustomers implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Kunden")
        /** @var array<Customer>|null */
        public ?array $Kunden=null,

        // @DataMember(Name="Objekte")
        /** @var array<Objekt>|null */
        public ?array $Objekte=null,

        // @DataMember(Name="Adressen")
        /** @var array<Address>|null */
        public ?array $Adressen=null,

        // @DataMember(Name="Nutzer")
        /** @var array<Nutzer>|null */
        public ?array $Nutzer=null,

        // @DataMember(Name="NutzerCoOwnership")
        /** @var array<NutzerCoOwnership>|null */
        public ?array $NutzerCoOwnership=null,

        // @DataMember(Name="NutzerPersonen")
        /** @var array<NutzerPersonen>|null */
        public ?array $NutzerPersonen=null,

        // @DataMember(Name="NutzerQuadratmeter")
        /** @var array<NutzerQuadratmeter>|null */
        public ?array $NutzerQuadratmeter=null,

        // @DataMember(Name="EigentuemerNutzeinheit")
        /** @var array<OwnerNutzeinheit>|null */
        public ?array $EigentuemerNutzeinheit=null,

        // @DataMember(Name="Nutzeinheiten")
        /** @var array<Nutzeinheit>|null */
        public ?array $Nutzeinheiten=null,

        // @DataMember(Name="Direktkosten")
        /** @var array<Direktkosten>|null */
        public ?array $Direktkosten=null,

        // @DataMember(Name="Prepayments")
        /** @var array<Prepayment>|null */
        public ?array $Prepayments=null,

        // @DataMember(Name="EnergieVerwerter")
        /** @var array<EnergieVerwerter>|null */
        public ?array $EnergieVerwerter=null,

        // @DataMember(Name="Brennstofflieferungen")
        /** @var array<Brennstofflieferung>|null */
        public ?array $Brennstofflieferungen=null,

        // @DataMember(Name="Nebenkosten")
        /** @var array<Nebenkosten>|null */
        public ?array $Nebenkosten=null,

        // @DataMember(Name="Heizbetriebskosten")
        /** @var array<Heizbetriebskosten>|null */
        public ?array $Heizbetriebskosten=null,

        // @DataMember(Name="NutzeinheitGeraete")
        /** @var array<NutzeinheitDevice>|null */
        public ?array $NutzeinheitGeraete=null,

        // @DataMember(Name="Geraete")
        /** @var array<Device>|null */
        public ?array $Geraete=null,

        // @DataMember(Name="Geraeteverbraeuche")
        /** @var array<DeviceConsumption>|null */
        public ?array $Geraeteverbraeuche=null,

        // @DataMember(Name="BillingInformations")
        /** @var array<BillingInformation>|null */
        public ?array $BillingInformations=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Kunden'])) $this->Kunden = JsonConverters::fromArray('Customer', $o['Kunden']);
        if (isset($o['Objekte'])) $this->Objekte = JsonConverters::fromArray('Objekt', $o['Objekte']);
        if (isset($o['Adressen'])) $this->Adressen = JsonConverters::fromArray('Address', $o['Adressen']);
        if (isset($o['Nutzer'])) $this->Nutzer = JsonConverters::fromArray('Nutzer', $o['Nutzer']);
        if (isset($o['NutzerCoOwnership'])) $this->NutzerCoOwnership = JsonConverters::fromArray('NutzerCoOwnership', $o['NutzerCoOwnership']);
        if (isset($o['NutzerPersonen'])) $this->NutzerPersonen = JsonConverters::fromArray('NutzerPersonen', $o['NutzerPersonen']);
        if (isset($o['NutzerQuadratmeter'])) $this->NutzerQuadratmeter = JsonConverters::fromArray('NutzerQuadratmeter', $o['NutzerQuadratmeter']);
        if (isset($o['EigentuemerNutzeinheit'])) $this->EigentuemerNutzeinheit = JsonConverters::fromArray('OwnerNutzeinheit', $o['EigentuemerNutzeinheit']);
        if (isset($o['Nutzeinheiten'])) $this->Nutzeinheiten = JsonConverters::fromArray('Nutzeinheit', $o['Nutzeinheiten']);
        if (isset($o['Direktkosten'])) $this->Direktkosten = JsonConverters::fromArray('Direktkosten', $o['Direktkosten']);
        if (isset($o['Prepayments'])) $this->Prepayments = JsonConverters::fromArray('Prepayment', $o['Prepayments']);
        if (isset($o['EnergieVerwerter'])) $this->EnergieVerwerter = JsonConverters::fromArray('EnergieVerwerter', $o['EnergieVerwerter']);
        if (isset($o['Brennstofflieferungen'])) $this->Brennstofflieferungen = JsonConverters::fromArray('Brennstofflieferung', $o['Brennstofflieferungen']);
        if (isset($o['Nebenkosten'])) $this->Nebenkosten = JsonConverters::fromArray('Nebenkosten', $o['Nebenkosten']);
        if (isset($o['Heizbetriebskosten'])) $this->Heizbetriebskosten = JsonConverters::fromArray('Heizbetriebskosten', $o['Heizbetriebskosten']);
        if (isset($o['NutzeinheitGeraete'])) $this->NutzeinheitGeraete = JsonConverters::fromArray('NutzeinheitDevice', $o['NutzeinheitGeraete']);
        if (isset($o['Geraete'])) $this->Geraete = JsonConverters::fromArray('Device', $o['Geraete']);
        if (isset($o['Geraeteverbraeuche'])) $this->Geraeteverbraeuche = JsonConverters::fromArray('DeviceConsumption', $o['Geraeteverbraeuche']);
        if (isset($o['BillingInformations'])) $this->BillingInformations = JsonConverters::fromArray('BillingInformation', $o['BillingInformations']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Kunden)) $o['Kunden'] = JsonConverters::toArray('Customer', $this->Kunden);
        if (isset($this->Objekte)) $o['Objekte'] = JsonConverters::toArray('Objekt', $this->Objekte);
        if (isset($this->Adressen)) $o['Adressen'] = JsonConverters::toArray('Address', $this->Adressen);
        if (isset($this->Nutzer)) $o['Nutzer'] = JsonConverters::toArray('Nutzer', $this->Nutzer);
        if (isset($this->NutzerCoOwnership)) $o['NutzerCoOwnership'] = JsonConverters::toArray('NutzerCoOwnership', $this->NutzerCoOwnership);
        if (isset($this->NutzerPersonen)) $o['NutzerPersonen'] = JsonConverters::toArray('NutzerPersonen', $this->NutzerPersonen);
        if (isset($this->NutzerQuadratmeter)) $o['NutzerQuadratmeter'] = JsonConverters::toArray('NutzerQuadratmeter', $this->NutzerQuadratmeter);
        if (isset($this->EigentuemerNutzeinheit)) $o['EigentuemerNutzeinheit'] = JsonConverters::toArray('OwnerNutzeinheit', $this->EigentuemerNutzeinheit);
        if (isset($this->Nutzeinheiten)) $o['Nutzeinheiten'] = JsonConverters::toArray('Nutzeinheit', $this->Nutzeinheiten);
        if (isset($this->Direktkosten)) $o['Direktkosten'] = JsonConverters::toArray('Direktkosten', $this->Direktkosten);
        if (isset($this->Prepayments)) $o['Prepayments'] = JsonConverters::toArray('Prepayment', $this->Prepayments);
        if (isset($this->EnergieVerwerter)) $o['EnergieVerwerter'] = JsonConverters::toArray('EnergieVerwerter', $this->EnergieVerwerter);
        if (isset($this->Brennstofflieferungen)) $o['Brennstofflieferungen'] = JsonConverters::toArray('Brennstofflieferung', $this->Brennstofflieferungen);
        if (isset($this->Nebenkosten)) $o['Nebenkosten'] = JsonConverters::toArray('Nebenkosten', $this->Nebenkosten);
        if (isset($this->Heizbetriebskosten)) $o['Heizbetriebskosten'] = JsonConverters::toArray('Heizbetriebskosten', $this->Heizbetriebskosten);
        if (isset($this->NutzeinheitGeraete)) $o['NutzeinheitGeraete'] = JsonConverters::toArray('NutzeinheitDevice', $this->NutzeinheitGeraete);
        if (isset($this->Geraete)) $o['Geraete'] = JsonConverters::toArray('Device', $this->Geraete);
        if (isset($this->Geraeteverbraeuche)) $o['Geraeteverbraeuche'] = JsonConverters::toArray('DeviceConsumption', $this->Geraeteverbraeuche);
        if (isset($this->BillingInformations)) $o['BillingInformations'] = JsonConverters::toArray('BillingInformation', $this->BillingInformations);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BillingInformation implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var string|null */
        public ?string $guid=null,

        // @DataMember
        /** @var DateTime */
        public DateTime $from=new DateTime(),

        // @DataMember
        /** @var DateTime */
        public DateTime $to=new DateTime(),

        // @DataMember
        /** @var bool|null */
        public ?bool $isCompleted=null,

        // @DataMember
        /** @var bool|null */
        public ?bool $hasNebenkosten=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['guid'])) $this->guid = $o['guid'];
        if (isset($o['from'])) $this->from = JsonConverters::from('DateTime', $o['from']);
        if (isset($o['to'])) $this->to = JsonConverters::from('DateTime', $o['to']);
        if (isset($o['isCompleted'])) $this->isCompleted = $o['isCompleted'];
        if (isset($o['hasNebenkosten'])) $this->hasNebenkosten = $o['hasNebenkosten'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->guid)) $o['guid'] = $this->guid;
        if (isset($this->from)) $o['from'] = JsonConverters::to('DateTime', $this->from);
        if (isset($this->to)) $o['to'] = JsonConverters::to('DateTime', $this->to);
        if (isset($this->isCompleted)) $o['isCompleted'] = $this->isCompleted;
        if (isset($this->hasNebenkosten)) $o['hasNebenkosten'] = $this->hasNebenkosten;
        return empty($o) ? new class(){} : $o;
    }
}

PHP CreateCustomers DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Customers/Create HTTP/1.1 
Host: eca-abrechnungsservice-servdesk.eras-online.de 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Kunden":[{"Guid":"String","Name1":"String","Name2":"String","Name3":"String","Kundennummer":"String","Anrede":"String","KundenAdressen":[{"AdresseGuid":"String","IstPrimaer":false,"AdressTypBezeichnung":"String","AdressTyp":"String"}],"KundenObjekte":[{"Guid":"String","ZeitraumVon":"0001-01-01T00:00:00.0000000Z","ZeitraumBis":"0001-01-01T00:00:00.0000000Z","IstKunde":false,"IstEigentümer":false,"IstEigentümerPseudo":false,"ObjektGuid":"String","KundeGuid":"String"}]}],"Objekte":[{"Guid":"String","Objektnummer":"String","IstAbgeschlossen":"String","Uvi":"String","IsUviDisabled":"String","AbgeschlossenDatum":"0001-01-01T00:00:00.0000000Z","AdressGuid":"String","AnmerkungKundenportal":"String","KundenportalMarkedDone":false,"MarkedDoneAt":"0001-01-01T00:00:00.0000000Z"}],"Adressen":[{"Guid":"String","Straße":"String","Straße2":"String","Hausnummer":"String","Postleitzahl":"String","Ort":"String","Postfach":"String","Adresszusatz":"String"}],"Nutzer":[{"Guid":"String","Name1":"String","Name2":"String","Name3":"String","Name4":"String","NutzerType":"String","NutzeinheitNummerExtern":"String","NutzerInNutzeinheitReihenfolge":0,"ZeitraumVon":"0001-01-01T00:00:00.0000000Z","ZeitraumBis":"0001-01-01T00:00:00.0000000Z","IstGeloescht":false,"IstErzeugtVonApp":false,"Uvi":"String","EigentuemerBewohnt":"String","Email":"String","Mobil":"String","Titel":"String","Anrede":"String","NutzeinheitGuid":"String"}],"NutzerCoOwnership":[{"Guid":"String","ShareValue":0,"Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","NutzerGuid":"String","IsCreatedByApp":false,"IsDeleted":false}],"NutzerPersonen":[{"Guid":"String","Personen":0,"Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","NutzerGuid":"String","IsCreatedByApp":false,"IsDeleted":false}],"NutzerQuadratmeter":[{"Guid":"String","Quadratmeter_Hzg":0,"Quadratmeter_Ww":0,"Quadratmeter_Nk":0,"Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","NutzerGuid":"String","IsCreatedByApp":false,"IsDeleted":false}],"EigentuemerNutzeinheit":[{"Guid":"String","Name1":"String","Name2":"String","Name3":"String","Name4":"String","ZeitraumVon":"0001-01-01T00:00:00.0000000Z","ZeitraumBis":"0001-01-01T00:00:00.0000000Z","Titel":"String","Anrede":"String","AdressGuid":"String","NutzeinheitGuid":"String"}],"Nutzeinheiten":[{"Guid":"String","Nummer":"String","Lage":"String","ObjektGuid":"String","AdressGuid":"String"}],"Direktkosten":[{"Guid":"String","Bezeichnung":"String","Datum":"0001-01-01T00:00:00.0000000Z","Brutto":0,"Mwst":0,"Menge":0,"Typ":"String","IstGeloescht":false,"IstErzeugtVonApp":false,"ObjektGuid":"String","NutzerGuid":"String","BillingInformationGuid":"String"}],"Prepayments":[{"Guid":"String","Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","VZ Nebenkosten":0,"VZ Heizkosten":0,"VZ Warmwasser":0,"IstGeloescht":false,"IstErzeugtVonApp":false,"ObjektGuid":"String","NutzerGuid":"String","BillingInformationGuid":"String"}],"EnergieVerwerter":[{"Guid":"String","Bezeichnung":"String","Wirkungsgrad":0,"Einbau":"0001-01-01T00:00:00.0000000Z","Ausbau":"0001-01-01T00:00:00.0000000Z","Baujahr":0,"Temperatur":0,"EigenstGewerbLieferung":false,"Brennwert":false,"ObjektGuid":"String","BrennstoffMediumGuid":"String"}],"Brennstofflieferungen":[{"Guid":"String","Lieferdatum":"0001-01-01T00:00:00.0000000Z","Mwst":0,"Emissionsangabe":0,"Steuern":0,"Zolle":0,"SonstigeAngaben":0,"C02Preis":0,"C02Tonnen":0,"Menge":0,"Betrag":0,"Anfangsstand":0,"Endstand":0,"Heizwert":0,"Brennwert":false,"IstGeloescht":false,"IstErzeugtVonApp":false,"EnergieEntlastungsbetragBezeichnung":"String","EnergieEntlastungsbetrag":0,"StromEntlastungsbetragBezeichnung":"String","StromEntlastungsbetrag":0,"CO2Emissionsfaktor":0,"CO2Text":"String","CO2Aktiv":false,"CO2PreisKnd":false,"CO2PreisVermieter":0,"CO2PreisMieter":0,"CO2Flaeche":0,"GewerblicheNutzung":false,"Sanierungsauflagen":false,"AuflagenHeizungsverbesserung":false,"CO2KWH":0,"EnthalteneMwst":0,"CO2KostenBrutto":0,"CO2GesamtKg":0,"KeinGesamtabzugC02Kosten":false,"EnergieVerwerterGuid":"String","BrennstoffMediumGuid":"String","BillingInformationGuid":"String"}],"Nebenkosten":[{"Guid":"String","Kostennummer":0,"Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","UmlageZiel":"String","UmlageZielIn":"String","NebenkostenArt":"String","Kostenart":"String","Brutto":0,"BruttoLetztesJahr":0,"Mwst":0,"HaushaltsnahediensteLabel":"String","HaushaltsnahediensteBrutto":0,"EinheitDerKostenart":"String","Reduzierungsart":"String","Kommentar":"String","IstGeloescht":false,"IstErzeugtVonApp":false,"ObjektGuid":"String","BillingInformationGuid":"String","NebenkostenNutzeinheiten":[{"Anteil":0,"IstGeloescht":false,"IstErzeugtVonApp":false,"NutzeinheitGuid":"String"}],"NebenkostenNutzer":[{"Anteil":0,"IstGeloescht":false,"IstErzeugtVonApp":false,"NutzerGuid":"String"}]}],"Heizbetriebskosten":[{"Guid":"String","Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","Mwst":0,"HaushatlsnahediensteBrutto":0,"Brutto":0,"HaushatlsnahediensteLabel":"String","Anmerkung":"String","IstGeloescht":false,"IstErzeugtVonApp":false,"ObjektGuid":"String","BillingInformationGuid":"String"}],"NutzeinheitGeraete":[{"Guid":"String","ZuordnungVon":"0001-01-01T00:00:00.0000000Z","ZuordnungBis":"0001-01-01T00:00:00.0000000Z","Raum":"String","LaufendeNummer":"String","gemietet":false,"gewartet":false,"DeviceGuid":"String","NutzeinheitGuid":"String"}],"Geraete":[{"Guid":"String","Geraetenummer":"String","Bezeichnung":"String","Beschreibung":"String","Einbaudatum":"0001-01-01T00:00:00.0000000Z","Ausbaudatum":"0001-01-01T00:00:00.0000000Z","Eichdatum":"0001-01-01T00:00:00.0000000Z","Einheit":"String","Memo":"String","DeviceCatalogGuid":"String"}],"Geraeteverbraeuche":[{"Guid":"String","Ablesung":0,"Ablesedatum":"0001-01-01T00:00:00.0000000Z","Ableseart":"String","Aenderungsdatum":"0001-01-01T00:00:00.0000000Z","Anmerkung":"String","Ampullenfarbe":"String","DeviceGuid":"String"}],"BillingInformations":[{"Guid":"String","Von":"0001-01-01T00:00:00.0000000Z","Bis":"0001-01-01T00:00:00.0000000Z","IstAbgeschlossen":false,"HatNebenkosten":false,"ObjektGuid":"String","AnmerkungKundenportal":"String","KundenportalMarkedDone":false,"MarkedDoneAt":"0001-01-01T00:00:00.0000000Z","KundenportalMarkedClosed":false,"MarkedClosedAt":"0001-01-01T00:00:00.0000000Z"}]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"customersCreated":0,"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}