""" Options: Date: 2026-10-20 19:27:57 Version: 8.22 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://inea-servamw.eras-online.de #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: UpdateStammdaten.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StammdatenInfo: guid: Optional[str] = None version: Optional[str] = None note: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeviceCatalog: guid: Optional[str] = None article_name: Optional[str] = None article_number: Optional[str] = None article_description: Optional[str] = None article_number_manufacturer: Optional[str] = None label: Optional[str] = None subtraction: bool = False hkvv: bool = False radio: bool = False order_code: Optional[str] = None installation_length: Optional[str] = None connector: Optional[str] = None diameter: Optional[str] = None sontex_radio_identifier: Optional[str] = None sontex_hkv_identifier: Optional[str] = None note: Optional[str] = None device_kind_guid: Optional[str] = None manufacturer_guid: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Manufacturer: guid: Optional[str] = None name: Optional[str] = None note: Optional[str] = None class DeviceClass(str, Enum): HKV = 'HKV' WWZ = 'WWZ' KWZ = 'KWZ' WZ = 'WZ' WMZ = 'WMZ' KMZ = 'KMZ' RM = 'RM' SZ = 'SZ' FM = 'FM' SONSTIGE = 'Sonstige' NULL = 'Null' ENT = 'ENT' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DeviceKind: guid: Optional[str] = None label_long: Optional[str] = None label_short: Optional[str] = None readable: bool = False class_: Optional[DeviceClass] = field(metadata=config(field_name='class'), default=None) limit: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Article: guid: Optional[str] = None number: Optional[str] = None label: Optional[str] = None note: Optional[str] = None class CommunicationKind(IntEnum): TELEFON = 1 MOBIL = 2 FAX = 3 E_MAIL = 4 WEB = 5 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CommunicationFeature: guid: Optional[str] = None feature: Optional[str] = None kind: Optional[CommunicationKind] = None is_preset: bool = False note: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ReadingKind: guid: Optional[str] = None label_short: Optional[str] = None label_long: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AmwInfoKey: guid: Optional[str] = None key: int = 0 info: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AdditionalArticle: guid: Optional[str] = None number: Optional[str] = None label: Optional[str] = None note: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Room: guid: Optional[str] = None label_short: Optional[str] = None label: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UpdateStammdatenResponse: response_status: Optional[ResponseStatus] = None # @Route("/Stammdaten", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UpdateStammdaten(IReturn[UpdateStammdatenResponse]): stammdaten_info: Optional[StammdatenInfo] = None device_catalog: Optional[IList[DeviceCatalog]] = None manufacturers: Optional[IList[Manufacturer]] = None device_kinds: Optional[IList[DeviceKind]] = None articles: Optional[IList[Article]] = None communication_features: Optional[IList[CommunicationFeature]] = None reading_kinds: Optional[IList[ReadingKind]] = None amw_info_keys: Optional[IList[AmwInfoKey]] = None additional_articles: Optional[IList[AdditionalArticle]] = None rooms: Optional[IList[Room]] = None