Server

<back to all web services

GetAppointmentsByDate

Requires Authentication
The following routes are available for this service:
GET/WebApp/Appointments/ByDate/{FromDate}
<?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};


enum ProcessState : string
{
    case InProgress = 'InProgress';
    case Updating = 'Updating';
    case Creating = 'Creating';
    case Completed = 'Completed';
}

// @DataContract
class OrderState implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="LastModified")
        /** @var DateTime|null */
        public ?DateTime $LastModified=null,

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['LastModified'])) $this->LastModified = JsonConverters::from('DateTime', $o['LastModified']);
        if (isset($o['AuftragArten'])) $this->AuftragArten = JsonConverters::fromArray('Nullable<OrderKind>', $o['AuftragArten']);
        if (isset($o['Bearbeitungsstatus'])) $this->Bearbeitungsstatus = JsonConverters::from('ProcessState', $o['Bearbeitungsstatus']);
        if (isset($o['AbgeschlossenDatum'])) $this->AbgeschlossenDatum = JsonConverters::from('DateTime', $o['AbgeschlossenDatum']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->LastModified)) $o['LastModified'] = JsonConverters::to('DateTime', $this->LastModified);
        if (isset($this->AuftragArten)) $o['AuftragArten'] = JsonConverters::toArray('Nullable<OrderKind>', $this->AuftragArten);
        if (isset($this->Bearbeitungsstatus)) $o['Bearbeitungsstatus'] = JsonConverters::to('ProcessState', $this->Bearbeitungsstatus);
        if (isset($this->AbgeschlossenDatum)) $o['AbgeschlossenDatum'] = JsonConverters::to('DateTime', $this->AbgeschlossenDatum);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class AppointmentStoreUser implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="MonteurGuid")
        /** @var string */
        public string $MonteurGuid=''
    ) {
    }

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

// @DataContract
class AppointmentNutzeinheit implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="NutzeinheitGuid")
        /** @var string */
        public string $NutzeinheitGuid=''
    ) {
    }

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

// @DataContract
class Appointment implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

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

        // @DataMember(Name="Nutzeinheiten")
        /** @var array<AppointmentNutzeinheit>|null */
        public ?array $Nutzeinheiten=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['Monteure'])) $this->Monteure = JsonConverters::fromArray('AppointmentStoreUser', $o['Monteure']);
        if (isset($o['Nutzeinheiten'])) $this->Nutzeinheiten = JsonConverters::fromArray('AppointmentNutzeinheit', $o['Nutzeinheiten']);
    }
    
    /** @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->Monteure)) $o['Monteure'] = JsonConverters::toArray('AppointmentStoreUser', $this->Monteure);
        if (isset($this->Nutzeinheiten)) $o['Nutzeinheiten'] = JsonConverters::toArray('AppointmentNutzeinheit', $this->Nutzeinheiten);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzeinheitOrderPosition implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="NutzeinheitGuid")
        /** @var string */
        public string $NutzeinheitGuid=''
    ) {
    }

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

// @DataContract
class OrderPosition implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

        // @DataMember(Name="SollMenge")
        /** @var int */
        public int $SollMenge=0,

        // @DataMember(Name="IstMenge")
        /** @var int */
        public int $IstMenge=0,

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

        // @DataMember(Name="ArtikelGuid")
        /** @var string */
        public string $ArtikelGuid=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['LastModified'])) $this->LastModified = JsonConverters::from('DateTime', $o['LastModified']);
        if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
        if (isset($o['SollMenge'])) $this->SollMenge = $o['SollMenge'];
        if (isset($o['IstMenge'])) $this->IstMenge = $o['IstMenge'];
        if (isset($o['NutzeinheitOrderPositions'])) $this->NutzeinheitOrderPositions = JsonConverters::fromArray('NutzeinheitOrderPosition', $o['NutzeinheitOrderPositions']);
        if (isset($o['ArtikelGuid'])) $this->ArtikelGuid = $o['ArtikelGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->LastModified)) $o['LastModified'] = JsonConverters::to('DateTime', $this->LastModified);
        if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
        if (isset($this->SollMenge)) $o['SollMenge'] = $this->SollMenge;
        if (isset($this->IstMenge)) $o['IstMenge'] = $this->IstMenge;
        if (isset($this->NutzeinheitOrderPositions)) $o['NutzeinheitOrderPositions'] = JsonConverters::toArray('NutzeinheitOrderPosition', $this->NutzeinheitOrderPositions);
        if (isset($this->ArtikelGuid)) $o['ArtikelGuid'] = $this->ArtikelGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class NutzeinheitOrderState implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="NutzeinheitGuid")
        /** @var string */
        public string $NutzeinheitGuid='',

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

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

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

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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['NutzeinheitGuid'])) $this->NutzeinheitGuid = $o['NutzeinheitGuid'];
        if (isset($o['LastModified'])) $this->LastModified = JsonConverters::from('DateTime', $o['LastModified']);
        if (isset($o['AuftragArten'])) $this->AuftragArten = JsonConverters::fromArray('Nullable<NutzeinheitOrderKind>', $o['AuftragArten']);
        if (isset($o['Bearbeitungsstatus'])) $this->Bearbeitungsstatus = JsonConverters::from('ProcessState', $o['Bearbeitungsstatus']);
        if (isset($o['AbgeschlossenDatum'])) $this->AbgeschlossenDatum = JsonConverters::from('DateTime', $o['AbgeschlossenDatum']);
        if (isset($o['OsVersion'])) $this->OsVersion = $o['OsVersion'];
        if (isset($o['AppVersion'])) $this->AppVersion = $o['AppVersion'];
        if (isset($o['OsPlatform'])) $this->OsPlatform = $o['OsPlatform'];
        if (isset($o['AppGeraeteNummmer'])) $this->AppGeraeteNummmer = $o['AppGeraeteNummmer'];
        if (isset($o['AmwInfoKeyGuid'])) $this->AmwInfoKeyGuid = $o['AmwInfoKeyGuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->NutzeinheitGuid)) $o['NutzeinheitGuid'] = $this->NutzeinheitGuid;
        if (isset($this->LastModified)) $o['LastModified'] = JsonConverters::to('DateTime', $this->LastModified);
        if (isset($this->AuftragArten)) $o['AuftragArten'] = JsonConverters::toArray('Nullable<NutzeinheitOrderKind>', $this->AuftragArten);
        if (isset($this->Bearbeitungsstatus)) $o['Bearbeitungsstatus'] = JsonConverters::to('ProcessState', $this->Bearbeitungsstatus);
        if (isset($this->AbgeschlossenDatum)) $o['AbgeschlossenDatum'] = JsonConverters::to('DateTime', $this->AbgeschlossenDatum);
        if (isset($this->OsVersion)) $o['OsVersion'] = $this->OsVersion;
        if (isset($this->AppVersion)) $o['AppVersion'] = $this->AppVersion;
        if (isset($this->OsPlatform)) $o['OsPlatform'] = $this->OsPlatform;
        if (isset($this->AppGeraeteNummmer)) $o['AppGeraeteNummmer'] = $this->AppGeraeteNummmer;
        if (isset($this->AmwInfoKeyGuid)) $o['AmwInfoKeyGuid'] = $this->AmwInfoKeyGuid;
        return empty($o) ? new class(){} : $o;
    }
}

enum DeviceOrderKind : string
{
    case Assembly = 'Assembly';
    case Maintenance = 'Maintenance';
    case Exchange = 'Exchange';
    case Reading = 'Reading';
    case Inspection = 'Inspection';
    case MainReading = 'MainReading';
}

// @DataContract
class DeviceOrderState implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="GeraeteGuid")
        /** @var string */
        public string $GeraeteGuid='',

        // @DataMember(Name="AuftragGuid")
        /** @var string */
        public string $AuftragGuid='',

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['GeraeteGuid'])) $this->GeraeteGuid = $o['GeraeteGuid'];
        if (isset($o['AuftragGuid'])) $this->AuftragGuid = $o['AuftragGuid'];
        if (isset($o['AuftragArt'])) $this->AuftragArt = JsonConverters::from('DeviceOrderKind', $o['AuftragArt']);
        if (isset($o['Bearbeitungsstatus'])) $this->Bearbeitungsstatus = JsonConverters::from('ProcessState', $o['Bearbeitungsstatus']);
        if (isset($o['AbgeschlossenDatum'])) $this->AbgeschlossenDatum = JsonConverters::from('DateTime', $o['AbgeschlossenDatum']);
        if (isset($o['AmwInfo'])) $this->AmwInfo = $o['AmwInfo'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->GeraeteGuid)) $o['GeraeteGuid'] = $this->GeraeteGuid;
        if (isset($this->AuftragGuid)) $o['AuftragGuid'] = $this->AuftragGuid;
        if (isset($this->AuftragArt)) $o['AuftragArt'] = JsonConverters::to('DeviceOrderKind', $this->AuftragArt);
        if (isset($this->Bearbeitungsstatus)) $o['Bearbeitungsstatus'] = JsonConverters::to('ProcessState', $this->Bearbeitungsstatus);
        if (isset($this->AbgeschlossenDatum)) $o['AbgeschlossenDatum'] = JsonConverters::to('DateTime', $this->AbgeschlossenDatum);
        if (isset($this->AmwInfo)) $o['AmwInfo'] = $this->AmwInfo;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class PersonCommunication implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

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

        // @DataMember(Name="KommunikationsFunktionGuid")
        /** @var string */
        public string $KommunikationsFunktionGuid=''
    ) {
    }

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

// @DataContract
class Person implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

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

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

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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['LastModified'])) $this->LastModified = JsonConverters::from('DateTime', $o['LastModified']);
        if (isset($o['Nachname1'])) $this->Nachname1 = $o['Nachname1'];
        if (isset($o['Nachname2'])) $this->Nachname2 = $o['Nachname2'];
        if (isset($o['Nachname3'])) $this->Nachname3 = $o['Nachname3'];
        if (isset($o['Vorname1'])) $this->Vorname1 = $o['Vorname1'];
        if (isset($o['Vorname2'])) $this->Vorname2 = $o['Vorname2'];
        if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
        if (isset($o['Anrede'])) $this->Anrede = $o['Anrede'];
        if (isset($o['Titel'])) $this->Titel = $o['Titel'];
        if (isset($o['PersonKommunikationen'])) $this->PersonKommunikationen = JsonConverters::fromArray('PersonCommunication', $o['PersonKommunikationen']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->LastModified)) $o['LastModified'] = JsonConverters::to('DateTime', $this->LastModified);
        if (isset($this->Nachname1)) $o['Nachname1'] = $this->Nachname1;
        if (isset($this->Nachname2)) $o['Nachname2'] = $this->Nachname2;
        if (isset($this->Nachname3)) $o['Nachname3'] = $this->Nachname3;
        if (isset($this->Vorname1)) $o['Vorname1'] = $this->Vorname1;
        if (isset($this->Vorname2)) $o['Vorname2'] = $this->Vorname2;
        if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
        if (isset($this->Anrede)) $o['Anrede'] = $this->Anrede;
        if (isset($this->Titel)) $o['Titel'] = $this->Titel;
        if (isset($this->PersonKommunikationen)) $o['PersonKommunikationen'] = JsonConverters::toArray('PersonCommunication', $this->PersonKommunikationen);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Orderer implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

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

enum SignatureKind : string
{
    case Nutzer = 'Nutzer';
    case Technician = 'Technician';
}

// @DataContract
class Signature implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['Timestamp'])) $this->Timestamp = JsonConverters::from('DateTime', $o['Timestamp']);
        if (isset($o['UnterschriftArt'])) $this->UnterschriftArt = JsonConverters::from('SignatureKind', $o['UnterschriftArt']);
        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->Timestamp)) $o['Timestamp'] = JsonConverters::to('DateTime', $this->Timestamp);
        if (isset($this->UnterschriftArt)) $o['UnterschriftArt'] = JsonConverters::to('SignatureKind', $this->UnterschriftArt);
        if (isset($this->NutzeinheitGuid)) $o['NutzeinheitGuid'] = $this->NutzeinheitGuid;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Order implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="Guid")
        /** @var string */
        public string $Guid='',

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

        // @DataMember(Name="AbrechnungseinheitGuid")
        /** @var string */
        public string $AbrechnungseinheitGuid='',

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

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

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

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

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

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

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

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

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

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

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

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

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['LastModified'])) $this->LastModified = JsonConverters::from('DateTime', $o['LastModified']);
        if (isset($o['AbrechnungseinheitGuid'])) $this->AbrechnungseinheitGuid = $o['AbrechnungseinheitGuid'];
        if (isset($o['AuftragNummer'])) $this->AuftragNummer = $o['AuftragNummer'];
        if (isset($o['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
        if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
        if (isset($o['UnterschriftBenoetigt'])) $this->UnterschriftBenoetigt = $o['UnterschriftBenoetigt'];
        if (isset($o['Erstellungsdatum'])) $this->Erstellungsdatum = JsonConverters::from('DateTime', $o['Erstellungsdatum']);
        if (isset($o['AuftragZustand'])) $this->AuftragZustand = JsonConverters::from('OrderState', $o['AuftragZustand']);
        if (isset($o['Termine'])) $this->Termine = JsonConverters::fromArray('Appointment', $o['Termine']);
        if (isset($o['AuftragsPositionen'])) $this->AuftragsPositionen = JsonConverters::fromArray('OrderPosition', $o['AuftragsPositionen']);
        if (isset($o['NutzeinheitZustaende'])) $this->NutzeinheitZustaende = JsonConverters::fromArray('NutzeinheitOrderState', $o['NutzeinheitZustaende']);
        if (isset($o['GeraeteZustaende'])) $this->GeraeteZustaende = JsonConverters::fromArray('DeviceOrderState', $o['GeraeteZustaende']);
        if (isset($o['Auftraggeber'])) $this->Auftraggeber = JsonConverters::from('Orderer', $o['Auftraggeber']);
        if (isset($o['Unterschriften'])) $this->Unterschriften = JsonConverters::fromArray('Signature', $o['Unterschriften']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->LastModified)) $o['LastModified'] = JsonConverters::to('DateTime', $this->LastModified);
        if (isset($this->AbrechnungseinheitGuid)) $o['AbrechnungseinheitGuid'] = $this->AbrechnungseinheitGuid;
        if (isset($this->AuftragNummer)) $o['AuftragNummer'] = $this->AuftragNummer;
        if (isset($this->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
        if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
        if (isset($this->UnterschriftBenoetigt)) $o['UnterschriftBenoetigt'] = $this->UnterschriftBenoetigt;
        if (isset($this->Erstellungsdatum)) $o['Erstellungsdatum'] = JsonConverters::to('DateTime', $this->Erstellungsdatum);
        if (isset($this->AuftragZustand)) $o['AuftragZustand'] = JsonConverters::to('OrderState', $this->AuftragZustand);
        if (isset($this->Termine)) $o['Termine'] = JsonConverters::toArray('Appointment', $this->Termine);
        if (isset($this->AuftragsPositionen)) $o['AuftragsPositionen'] = JsonConverters::toArray('OrderPosition', $this->AuftragsPositionen);
        if (isset($this->NutzeinheitZustaende)) $o['NutzeinheitZustaende'] = JsonConverters::toArray('NutzeinheitOrderState', $this->NutzeinheitZustaende);
        if (isset($this->GeraeteZustaende)) $o['GeraeteZustaende'] = JsonConverters::toArray('DeviceOrderState', $this->GeraeteZustaende);
        if (isset($this->Auftraggeber)) $o['Auftraggeber'] = JsonConverters::to('Orderer', $this->Auftraggeber);
        if (isset($this->Unterschriften)) $o['Unterschriften'] = JsonConverters::toArray('Signature', $this->Unterschriften);
        return empty($o) ? new class(){} : $o;
    }
}

class GetAppointmentsByDateResponse implements JsonSerializable
{
    public function __construct(
        /** @var array<Order>|null */
        public ?array $orders=null,
        /** @var int */
        public int $totalNutzeinheiten=0,
        /** @var int */
        public int $completedNutzeinheiten=0,
        /** @var int */
        public int $totalDevices=0,
        /** @var int */
        public int $completedDevices=0,
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null,
        /** @var int */
        public int $amwInfoKeyNutzeinheiten=0,
        /** @var int */
        public int $amwInfoKeyDevices=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['orders'])) $this->orders = JsonConverters::fromArray('Order', $o['orders']);
        if (isset($o['totalNutzeinheiten'])) $this->totalNutzeinheiten = $o['totalNutzeinheiten'];
        if (isset($o['completedNutzeinheiten'])) $this->completedNutzeinheiten = $o['completedNutzeinheiten'];
        if (isset($o['totalDevices'])) $this->totalDevices = $o['totalDevices'];
        if (isset($o['completedDevices'])) $this->completedDevices = $o['completedDevices'];
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
        if (isset($o['amwInfoKeyNutzeinheiten'])) $this->amwInfoKeyNutzeinheiten = $o['amwInfoKeyNutzeinheiten'];
        if (isset($o['amwInfoKeyDevices'])) $this->amwInfoKeyDevices = $o['amwInfoKeyDevices'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->orders)) $o['orders'] = JsonConverters::toArray('Order', $this->orders);
        if (isset($this->totalNutzeinheiten)) $o['totalNutzeinheiten'] = $this->totalNutzeinheiten;
        if (isset($this->completedNutzeinheiten)) $o['completedNutzeinheiten'] = $this->completedNutzeinheiten;
        if (isset($this->totalDevices)) $o['totalDevices'] = $this->totalDevices;
        if (isset($this->completedDevices)) $o['completedDevices'] = $this->completedDevices;
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        if (isset($this->amwInfoKeyNutzeinheiten)) $o['amwInfoKeyNutzeinheiten'] = $this->amwInfoKeyNutzeinheiten;
        if (isset($this->amwInfoKeyDevices)) $o['amwInfoKeyDevices'] = $this->amwInfoKeyDevices;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetAppointmentsByDate implements JsonSerializable
{
    public function __construct(
        // @DataMember(Name="FromDate")
        /** @var DateTime */
        public DateTime $FromDate=new DateTime()
    ) {
    }

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

PHP GetAppointmentsByDate 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.

GET /WebApp/Appointments/ByDate/{FromDate} HTTP/1.1 
Host: messdienstservice-stadtwerke-peine-servamw.eras-online.de 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"totalNutzeinheiten":0,"completedNutzeinheiten":0,"totalDevices":0,"completedDevices":0,"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}},"amwInfoKeyNutzeinheiten":0,"amwInfoKeyDevices":0}