/* Options:
Date: 2025-04-04 09:55:42
SwiftVersion: 6.0
Version: 8.52
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://taxfiling.pwc.de

//BaseClass: 
//AddModelExtensions: True
//AddServiceStackTypes: True
//MakePropertiesOptional: True
IncludeTypes: CreateUuidAsync.*
//ExcludeTypes: 
//ExcludeGenericBaseTypes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
//InitializeCollections: False
//TreatTypesAsStrings: 
//DefaultImports: Foundation,ServiceStack
*/

import Foundation
import ServiceStack

/**
* An asynchronous service to generate a Universal Unique Identifier.
*/
// @Route("/CreateUuidAsync", "GET")
// @Api(Description="An asynchronous service to generate a Universal Unique Identifier.")
public class CreateUuidAsync : CreateUuidBase, IReturn
{
    public typealias Return = UuidResponse

    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

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

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case uuid
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        uuid = try container.decodeIfPresent(String.self, forKey: .uuid)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if uuid != nil { try container.encode(uuid, forKey: .uuid) }
    }
}

/**
* Specifies a base service to generate a Universal Unique Identifier.
*/
// @Api(Description="Specifies a base service to generate a Universal Unique Identifier.")
public class CreateUuidBase : IGet, Codable
{
    required public init(){}
}

/**
* 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.")
public class EricFehlerCodeResponse : ServiceReponseBase
{
    /**
    * The status code that the ERiC API function returns.
    */
    // @ApiMember(Description="The status code that the ERiC API function returns.")
    public var statusCode:EricFehlerCode?

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

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case statusCode
        case statusText
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        statusCode = try container.decodeIfPresent(EricFehlerCode.self, forKey: .statusCode)
        statusText = try container.decodeIfPresent(String.self, forKey: .statusText)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if statusCode != nil { try container.encode(statusCode, forKey: .statusCode) }
        if statusText != nil { try container.encode(statusText, forKey: .statusText) }
    }
}