| GET | /App/{UserId}/Stammdaten |
|---|
<?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};
// @DataContract
class StammdatenInfo implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Version")
/** @var string|null */
public ?string $Version=null,
// @DataMember(Name="Anmerkung")
/** @var string|null */
public ?string $Anmerkung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Version'])) $this->Version = $o['Version'];
if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Version)) $o['Version'] = $this->Version;
if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class DeviceCatalog implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="ArtikelName")
/** @var string|null */
public ?string $ArtikelName=null,
// @DataMember(Name="ArtikelNummer")
/** @var string|null */
public ?string $ArtikelNummer=null,
// @DataMember(Name="ArtikelBeschreibung")
/** @var string|null */
public ?string $ArtikelBeschreibung=null,
// @DataMember(Name="ArtikelnummerHersteller")
/** @var string|null */
public ?string $ArtikelnummerHersteller=null,
// @DataMember(Name="Kurzbezeichnung")
/** @var string|null */
public ?string $Kurzbezeichnung=null,
// @DataMember(Name="Abzug")
/** @var bool|null */
public ?bool $Abzug=null,
// @DataMember(Name="Hkvv")
/** @var bool|null */
public ?bool $Hkvv=null,
// @DataMember(Name="Funk")
/** @var bool|null */
public ?bool $Funk=null,
// @DataMember(Name="Bestellnummer")
/** @var string|null */
public ?string $Bestellnummer=null,
// @DataMember(Name="Baulaenge")
/** @var string|null */
public ?string $Baulaenge=null,
// @DataMember(Name="Anschluss")
/** @var string|null */
public ?string $Anschluss=null,
// @DataMember(Name="Qn")
/** @var string|null */
public ?string $Qn=null,
// @DataMember(Name="SontexFunkID")
/** @var string|null */
public ?string $SontexFunkID=null,
// @DataMember(Name="SontexHKVKennung")
/** @var string|null */
public ?string $SontexHKVKennung=null,
// @DataMember(Name="Memo")
/** @var string|null */
public ?string $Memo=null,
// @DataMember(Name="DeviceKindGuid")
/** @var string */
public string $DeviceKindGuid='',
// @DataMember(Name="ManufacturerGuid")
/** @var string */
public string $ManufacturerGuid=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['ArtikelName'])) $this->ArtikelName = $o['ArtikelName'];
if (isset($o['ArtikelNummer'])) $this->ArtikelNummer = $o['ArtikelNummer'];
if (isset($o['ArtikelBeschreibung'])) $this->ArtikelBeschreibung = $o['ArtikelBeschreibung'];
if (isset($o['ArtikelnummerHersteller'])) $this->ArtikelnummerHersteller = $o['ArtikelnummerHersteller'];
if (isset($o['Kurzbezeichnung'])) $this->Kurzbezeichnung = $o['Kurzbezeichnung'];
if (isset($o['Abzug'])) $this->Abzug = $o['Abzug'];
if (isset($o['Hkvv'])) $this->Hkvv = $o['Hkvv'];
if (isset($o['Funk'])) $this->Funk = $o['Funk'];
if (isset($o['Bestellnummer'])) $this->Bestellnummer = $o['Bestellnummer'];
if (isset($o['Baulaenge'])) $this->Baulaenge = $o['Baulaenge'];
if (isset($o['Anschluss'])) $this->Anschluss = $o['Anschluss'];
if (isset($o['Qn'])) $this->Qn = $o['Qn'];
if (isset($o['SontexFunkID'])) $this->SontexFunkID = $o['SontexFunkID'];
if (isset($o['SontexHKVKennung'])) $this->SontexHKVKennung = $o['SontexHKVKennung'];
if (isset($o['Memo'])) $this->Memo = $o['Memo'];
if (isset($o['DeviceKindGuid'])) $this->DeviceKindGuid = $o['DeviceKindGuid'];
if (isset($o['ManufacturerGuid'])) $this->ManufacturerGuid = $o['ManufacturerGuid'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->ArtikelName)) $o['ArtikelName'] = $this->ArtikelName;
if (isset($this->ArtikelNummer)) $o['ArtikelNummer'] = $this->ArtikelNummer;
if (isset($this->ArtikelBeschreibung)) $o['ArtikelBeschreibung'] = $this->ArtikelBeschreibung;
if (isset($this->ArtikelnummerHersteller)) $o['ArtikelnummerHersteller'] = $this->ArtikelnummerHersteller;
if (isset($this->Kurzbezeichnung)) $o['Kurzbezeichnung'] = $this->Kurzbezeichnung;
if (isset($this->Abzug)) $o['Abzug'] = $this->Abzug;
if (isset($this->Hkvv)) $o['Hkvv'] = $this->Hkvv;
if (isset($this->Funk)) $o['Funk'] = $this->Funk;
if (isset($this->Bestellnummer)) $o['Bestellnummer'] = $this->Bestellnummer;
if (isset($this->Baulaenge)) $o['Baulaenge'] = $this->Baulaenge;
if (isset($this->Anschluss)) $o['Anschluss'] = $this->Anschluss;
if (isset($this->Qn)) $o['Qn'] = $this->Qn;
if (isset($this->SontexFunkID)) $o['SontexFunkID'] = $this->SontexFunkID;
if (isset($this->SontexHKVKennung)) $o['SontexHKVKennung'] = $this->SontexHKVKennung;
if (isset($this->Memo)) $o['Memo'] = $this->Memo;
if (isset($this->DeviceKindGuid)) $o['DeviceKindGuid'] = $this->DeviceKindGuid;
if (isset($this->ManufacturerGuid)) $o['ManufacturerGuid'] = $this->ManufacturerGuid;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class Manufacturer implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Name")
/** @var string|null */
public ?string $Name=null,
// @DataMember(Name="Anmerkung")
/** @var string|null */
public ?string $Anmerkung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
return empty($o) ? new class(){} : $o;
}
}
enum DeviceClass : string
{
case HKV = 'HKV';
case WWZ = 'WWZ';
case KWZ = 'KWZ';
case WZ = 'WZ';
case WMZ = 'WMZ';
case KMZ = 'KMZ';
case RM = 'RM';
case SZ = 'SZ';
case FM = 'FM';
case Sonstige = 'Sonstige';
case Null = 'Null';
case ENT = 'ENT';
}
// @DataContract
class DeviceKind implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="GeraeteTypLang")
/** @var string|null */
public ?string $GeraeteTypLang=null,
// @DataMember(Name="GeraeteTypKurz")
/** @var string|null */
public ?string $GeraeteTypKurz=null,
// @DataMember(Name="Ablesbar")
/** @var bool|null */
public ?bool $Ablesbar=null,
// @DataMember(Name="GeraeteKlasse")
/** @var DeviceClass|null */
public ?DeviceClass $GeraeteKlasse=null,
// @DataMember(Name="Limit")
/** @var float|null */
public ?float $Limit=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['GeraeteTypLang'])) $this->GeraeteTypLang = $o['GeraeteTypLang'];
if (isset($o['GeraeteTypKurz'])) $this->GeraeteTypKurz = $o['GeraeteTypKurz'];
if (isset($o['Ablesbar'])) $this->Ablesbar = $o['Ablesbar'];
if (isset($o['GeraeteKlasse'])) $this->GeraeteKlasse = JsonConverters::from('DeviceClass', $o['GeraeteKlasse']);
if (isset($o['Limit'])) $this->Limit = $o['Limit'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->GeraeteTypLang)) $o['GeraeteTypLang'] = $this->GeraeteTypLang;
if (isset($this->GeraeteTypKurz)) $o['GeraeteTypKurz'] = $this->GeraeteTypKurz;
if (isset($this->Ablesbar)) $o['Ablesbar'] = $this->Ablesbar;
if (isset($this->GeraeteKlasse)) $o['GeraeteKlasse'] = JsonConverters::to('DeviceClass', $this->GeraeteKlasse);
if (isset($this->Limit)) $o['Limit'] = $this->Limit;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class Article implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Artikelnummer")
/** @var string|null */
public ?string $Artikelnummer=null,
// @DataMember(Name="Bezeichnung")
/** @var string|null */
public ?string $Bezeichnung=null,
// @DataMember(Name="Anmerkung")
/** @var string|null */
public ?string $Anmerkung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Artikelnummer'])) $this->Artikelnummer = $o['Artikelnummer'];
if (isset($o['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Artikelnummer)) $o['Artikelnummer'] = $this->Artikelnummer;
if (isset($this->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
return empty($o) ? new class(){} : $o;
}
}
enum CommunicationKind : int
{
case Telefon = 1;
case Mobil = 2;
case Fax = 3;
case EMail = 4;
case Web = 5;
}
// @DataContract
class CommunicationFeature implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Funktion")
/** @var string|null */
public ?string $Funktion=null,
// @DataMember(Name="Typ")
/** @var CommunicationKind|null */
public ?CommunicationKind $Typ=null,
// @DataMember(Name="IstVorgegeben")
/** @var bool|null */
public ?bool $IstVorgegeben=null,
// @DataMember(Name="Anmerkung")
/** @var string|null */
public ?string $Anmerkung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Funktion'])) $this->Funktion = $o['Funktion'];
if (isset($o['Typ'])) $this->Typ = JsonConverters::from('CommunicationKind', $o['Typ']);
if (isset($o['IstVorgegeben'])) $this->IstVorgegeben = $o['IstVorgegeben'];
if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Funktion)) $o['Funktion'] = $this->Funktion;
if (isset($this->Typ)) $o['Typ'] = JsonConverters::to('CommunicationKind', $this->Typ);
if (isset($this->IstVorgegeben)) $o['IstVorgegeben'] = $this->IstVorgegeben;
if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class ReadingKind implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Kurzbezeichnung")
/** @var string|null */
public ?string $Kurzbezeichnung=null,
// @DataMember(Name="Langbezeichnung")
/** @var string|null */
public ?string $Langbezeichnung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Kurzbezeichnung'])) $this->Kurzbezeichnung = $o['Kurzbezeichnung'];
if (isset($o['Langbezeichnung'])) $this->Langbezeichnung = $o['Langbezeichnung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Kurzbezeichnung)) $o['Kurzbezeichnung'] = $this->Kurzbezeichnung;
if (isset($this->Langbezeichnung)) $o['Langbezeichnung'] = $this->Langbezeichnung;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class AmwInfoKey implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Key")
/** @var int */
public int $Key=0,
// @DataMember(Name="Info")
/** @var string|null */
public ?string $Info=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Key'])) $this->Key = $o['Key'];
if (isset($o['Info'])) $this->Info = $o['Info'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Key)) $o['Key'] = $this->Key;
if (isset($this->Info)) $o['Info'] = $this->Info;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class AdditionalArticle implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Nummer")
/** @var string|null */
public ?string $Nummer=null,
// @DataMember(Name="Bezeichnung")
/** @var string|null */
public ?string $Bezeichnung=null,
// @DataMember(Name="Anmerkung")
/** @var string|null */
public ?string $Anmerkung=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['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
if (isset($o['Anmerkung'])) $this->Anmerkung = $o['Anmerkung'];
}
/** @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->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
if (isset($this->Anmerkung)) $o['Anmerkung'] = $this->Anmerkung;
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class Room implements JsonSerializable
{
public function __construct(
// @DataMember(Name="Guid")
/** @var string */
public string $Guid='',
// @DataMember(Name="Kurzbezeichnung")
/** @var string|null */
public ?string $Kurzbezeichnung=null,
// @DataMember(Name="Bezeichnung")
/** @var string|null */
public ?string $Bezeichnung=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Guid'])) $this->Guid = $o['Guid'];
if (isset($o['Kurzbezeichnung'])) $this->Kurzbezeichnung = $o['Kurzbezeichnung'];
if (isset($o['Bezeichnung'])) $this->Bezeichnung = $o['Bezeichnung'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Guid)) $o['Guid'] = $this->Guid;
if (isset($this->Kurzbezeichnung)) $o['Kurzbezeichnung'] = $this->Kurzbezeichnung;
if (isset($this->Bezeichnung)) $o['Bezeichnung'] = $this->Bezeichnung;
return empty($o) ? new class(){} : $o;
}
}
class GetStammdatenResponse implements JsonSerializable
{
public function __construct(
// @DataMember(Name="StammdatenInfo")
/** @var StammdatenInfo|null */
public ?StammdatenInfo $StammdatenInfo=null,
// @DataMember(Name="GeraeteKatalog")
/** @var array<DeviceCatalog>|null */
public ?array $GeraeteKatalog=null,
// @DataMember(Name="Hersteller")
/** @var array<Manufacturer>|null */
public ?array $Hersteller=null,
// @DataMember(Name="Geraetetypen")
/** @var array<DeviceKind>|null */
public ?array $Geraetetypen=null,
// @DataMember(Name="Artikel")
/** @var array<Article>|null */
public ?array $Artikel=null,
// @DataMember(Name="KommunikationFunktionen")
/** @var array<CommunicationFeature>|null */
public ?array $KommunikationFunktionen=null,
// @DataMember(Name="Ablesearten")
/** @var array<ReadingKind>|null */
public ?array $Ablesearten=null,
// @DataMember(Name="Infoschluessel")
/** @var array<AmwInfoKey>|null */
public ?array $Infoschluessel=null,
// @DataMember(Name="Zusatzartikel")
/** @var array<AdditionalArticle>|null */
public ?array $Zusatzartikel=null,
// @DataMember(Name="Raeume")
/** @var array<Room>|null */
public ?array $Raeume=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $responseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['StammdatenInfo'])) $this->StammdatenInfo = JsonConverters::from('StammdatenInfo', $o['StammdatenInfo']);
if (isset($o['GeraeteKatalog'])) $this->GeraeteKatalog = JsonConverters::fromArray('DeviceCatalog', $o['GeraeteKatalog']);
if (isset($o['Hersteller'])) $this->Hersteller = JsonConverters::fromArray('Manufacturer', $o['Hersteller']);
if (isset($o['Geraetetypen'])) $this->Geraetetypen = JsonConverters::fromArray('DeviceKind', $o['Geraetetypen']);
if (isset($o['Artikel'])) $this->Artikel = JsonConverters::fromArray('Article', $o['Artikel']);
if (isset($o['KommunikationFunktionen'])) $this->KommunikationFunktionen = JsonConverters::fromArray('CommunicationFeature', $o['KommunikationFunktionen']);
if (isset($o['Ablesearten'])) $this->Ablesearten = JsonConverters::fromArray('ReadingKind', $o['Ablesearten']);
if (isset($o['Infoschluessel'])) $this->Infoschluessel = JsonConverters::fromArray('AmwInfoKey', $o['Infoschluessel']);
if (isset($o['Zusatzartikel'])) $this->Zusatzartikel = JsonConverters::fromArray('AdditionalArticle', $o['Zusatzartikel']);
if (isset($o['Raeume'])) $this->Raeume = JsonConverters::fromArray('Room', $o['Raeume']);
if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->StammdatenInfo)) $o['StammdatenInfo'] = JsonConverters::to('StammdatenInfo', $this->StammdatenInfo);
if (isset($this->GeraeteKatalog)) $o['GeraeteKatalog'] = JsonConverters::toArray('DeviceCatalog', $this->GeraeteKatalog);
if (isset($this->Hersteller)) $o['Hersteller'] = JsonConverters::toArray('Manufacturer', $this->Hersteller);
if (isset($this->Geraetetypen)) $o['Geraetetypen'] = JsonConverters::toArray('DeviceKind', $this->Geraetetypen);
if (isset($this->Artikel)) $o['Artikel'] = JsonConverters::toArray('Article', $this->Artikel);
if (isset($this->KommunikationFunktionen)) $o['KommunikationFunktionen'] = JsonConverters::toArray('CommunicationFeature', $this->KommunikationFunktionen);
if (isset($this->Ablesearten)) $o['Ablesearten'] = JsonConverters::toArray('ReadingKind', $this->Ablesearten);
if (isset($this->Infoschluessel)) $o['Infoschluessel'] = JsonConverters::toArray('AmwInfoKey', $this->Infoschluessel);
if (isset($this->Zusatzartikel)) $o['Zusatzartikel'] = JsonConverters::toArray('AdditionalArticle', $this->Zusatzartikel);
if (isset($this->Raeume)) $o['Raeume'] = JsonConverters::toArray('Room', $this->Raeume);
if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
return empty($o) ? new class(){} : $o;
}
}
// @DataContract
class GetStammdaten implements JsonSerializable
{
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
return empty($o) ? new class(){} : $o;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /App/{UserId}/Stammdaten HTTP/1.1
Host: eca-abrechnungsservice-servamw.eras-online.de
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
StammdatenInfo:
{
Guid: 00000000000000000000000000000000,
Version: String,
Anmerkung: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}