/* Options:
Date: 2025-04-05 04:57:38
Version: 8.52
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://taxfiling.pwc.de

//GlobalNamespace: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: CreateUuid.*
//ExcludeTypes: 
//DefaultImports: package:servicestack/servicestack.dart,dart:typed_data
*/

import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

/**
* Specifies a base service to generate a Universal Unique Identifier.
*/
// @Api(Description="Specifies a base service to generate a Universal Unique Identifier.")
abstract class CreateUuidBase implements IGet
{
    CreateUuidBase();
    CreateUuidBase.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "CreateUuidBase";
    TypeContext? context = _ctx;
}

/**
* Represent a base response that encapsulate any ERiC API function return value.
*/
// @Api(Description="Represent a base response that encapsulate any ERiC API function return value.")
class EricFehlerCodeResponse extends ServiceReponseBase implements IConvertible
{
    /**
    * The status code that the ERiC API function returns.
    */
    // @ApiMember(Description="The status code that the ERiC API function returns.")
    EricFehlerCode? statusCode;

    /**
    * The status message that the ERiC API function returns.
    */
    // @ApiMember(Description="The status message that the ERiC API function returns.")
    String? statusText;

    EricFehlerCodeResponse({this.statusCode,this.statusText});
    EricFehlerCodeResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        statusCode = JsonConverters.fromJson(json['statusCode'],'EricFehlerCode',context!);
        statusText = json['statusText'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'statusCode': JsonConverters.toJson(statusCode,'EricFehlerCode',context!),
        'statusText': statusText
    });

    getTypeName() => "EricFehlerCodeResponse";
    TypeContext? context = _ctx;
}

/**
* Represents a type that encaspulates a Universal Unique Identifier (UUID).
*/
// @Api(Description="Represents a type that encaspulates a Universal Unique Identifier (UUID).")
class UuidResponse extends EricFehlerCodeResponse implements IConvertible
{
    /**
    * The generated Universal Unique Identifier.
    */
    // @ApiMember(Description="The generated Universal Unique Identifier.")
    String? uuid;

    UuidResponse({this.uuid});
    UuidResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        uuid = json['uuid'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'uuid': uuid
    });

    getTypeName() => "UuidResponse";
    TypeContext? context = _ctx;
}

/**
* A synchronous service to generate a Universal Unique Identifier.
*/
// @Route("/CreateUuid", "GET")
// @Api(Description="A synchronous service to generate a Universal Unique Identifier.")
class CreateUuid extends CreateUuidBase implements IReturn<UuidResponse>, IConvertible, IGet
{
    CreateUuid();
    CreateUuid.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    createResponse() => UuidResponse();
    getResponseTypeName() => "UuidResponse";
    getTypeName() => "CreateUuid";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: <String, TypeInfo> {
    'CreateUuidBase': TypeInfo(TypeOf.AbstractClass),
    'EricFehlerCodeResponse': TypeInfo(TypeOf.Class, create:() => EricFehlerCodeResponse()),
    'EricFehlerCode': TypeInfo(TypeOf.Class, create:() => EricFehlerCode()),
    'UuidResponse': TypeInfo(TypeOf.Class, create:() => UuidResponse()),
    'CreateUuid': TypeInfo(TypeOf.Class, create:() => CreateUuid()),
});