' Options:
'Date: 2025-04-07 06:21:10
'Version: 8.52
'Tip: To override a DTO option, remove "''" prefix before updating
'BaseUrl: https://taxfiling.pwc.de
'
'''GlobalNamespace: 
'''MakePartial: True
'''MakeVirtual: True
'''MakeDataContractsExtensible: False
'''AddReturnMarker: True
'''AddDescriptionAsComments: True
'''AddDataContractAttributes: False
'''AddIndexesToDataMembers: False
'''AddGeneratedCodeAttributes: False
'''AddResponseStatus: False
'''AddImplicitVersion: 
'''InitializeCollections: False
'''ExportValueTypes: False
'IncludeTypes: BatchRevokeOrders.*
'''ExcludeTypes: 
'''AddNamespaces: 
'''AddDefaultXmlNamespace: http://schemas.servicestack.net/types

Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports System.Net
Imports PwC.Metering.Core.Services.Contracts.Helpers
Imports PwC.Metering.Core.Services.Contracts.Requests
Imports PwC.Metering.Core.Domain.Concretes.Models
Imports PwC.Metering.Core.Domain.Concretes.Interfaces
Imports PwC.Metering.Core.Services.Contracts.Responses

Namespace Global

    Namespace PwC.Metering.Core.Domain.Concretes.Interfaces

        '''<Summary>
        ''' Specifies that a data type should have a 'Name' property.
        '''</Summary>
        Public Interface IHasName
            '''<Summary>
            '''The 'Name' property.
            '''</Summary>
            Property Name As String
        End Interface
    End Namespace

    Namespace PwC.Metering.Core.Domain.Concretes.Models

        '''<Summary>
        '''Represents a commission to consume services.
        '''</Summary>
        <Api(Description:="Represents a commission to consume services.")>
        Public Partial Class Order
            Implements IHasName
            '''<Summary>
            '''The unique identifier of the order.
            '''</Summary>
            <ApiMember(Description:="The unique identifier of the order.", IsRequired:=true)>
            Public Overridable Property Id As Integer

            '''<Summary>
            '''The unique identifier of the product, for which the order is made.
            '''</Summary>
            <ApiMember(Description:="The unique identifier of the product, for which the order is made.", IsRequired:=true)>
            Public Overridable Property ProductId As Integer

            '''<Summary>
            '''The unique identifier of the user account, who placed the order.
            '''</Summary>
            <ApiMember(Description:="The unique identifier of the user account, who placed the order.", IsRequired:=true)>
            Public Overridable Property AccountId As Integer

            '''<Summary>
            '''A name to identify the order.
            '''</Summary>
            <ApiMember(Description:="A name to identify the order.", IsRequired:=true)>
            <Validate(Validator:="NotEmpty")>
            Public Overridable Property Name As String Implements IHasName.Name

            '''<Summary>
            '''The name of the service, for which the order was made.
            '''</Summary>
            <ApiMember(Description:="The name of the service, for which the order was made.")>
            Public Overridable Property ServiceName As String

            '''<Summary>
            '''The time stamp at which the order was initiated.
            '''</Summary>
            <ApiMember(Description:="The time stamp at which the order was initiated.")>
            Public Overridable Property RequestTimestamp As Date?

            '''<Summary>
            '''The time stamp at which the order was completed.
            '''</Summary>
            <ApiMember(Description:="The time stamp at which the order was completed.")>
            Public Overridable Property ResponseTimestamp As Date?

            '''<Summary>
            '''The URI from which the order was initiated.
            '''</Summary>
            <ApiMember(Description:="The URI from which the order was initiated.")>
            Public Overridable Property RequestUri As String

            '''<Summary>
            '''The HTTP method of the order request.
            '''</Summary>
            <ApiMember(Description:="The HTTP method of the order request.")>
            Public Overridable Property RequestHttpMethod As String

            '''<Summary>
            '''The duration of the order request.
            '''</Summary>
            <ApiMember(Description:="The duration of the order request.")>
            Public Overridable Property RequestDuration As TimeSpan?

            '''<Summary>
            '''The HTTP status code of the order request.
            '''</Summary>
            <ApiMember(Description:="The HTTP status code of the order request.")>
            Public Overridable Property ResponseStatusCode As HttpStatusCode

            '''<Summary>
            '''The IP address of client, who placed the order.
            '''</Summary>
            <ApiMember(Description:="The IP address of client, who placed the order.")>
            Public Overridable Property ClientIPAddress As String

            '''<Summary>
            '''The unit of measurement for the order.
            '''</Summary>
            <ApiMember(Description:="The unit of measurement for the order.")>
            Public Overridable Property UnitOfMeasurement As String

            '''<Summary>
            '''The type of process, for which the order is charged.
            '''</Summary>
            <ApiMember(Description:="The type of process, for which the order is charged.")>
            Public Overridable Property ProcessType As String

            '''<Summary>
            '''The type of data, for which the order is charged.
            '''</Summary>
            <ApiMember(Description:="The type of data, for which the order is charged.")>
            Public Overridable Property DataType As String

            '''<Summary>
            '''The name of the data, for which the order is charged.
            '''</Summary>
            <ApiMember(Description:="The name of the data, for which the order is charged.")>
            Public Overridable Property DataName As String

            '''<Summary>
            '''The date of creation of the order.
            '''</Summary>
            <ApiMember(Description:="The date of creation of the order.")>
            Public Overridable Property CreationDate As Date

            '''<Summary>
            '''The final date to retain the order in the records. After this date, the order is expunged from the records.
            '''</Summary>
            <ApiMember(Description:="The final date to retain the order in the records. After this date, the order is expunged from the records.")>
            Public Overridable Property ExpiryDate As Date?

            '''<Summary>
            '''Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.
            '''</Summary>
            <ApiMember(Description:="Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.")>
            Public Overridable Property IsTest As Boolean
        End Class
    End Namespace

    Namespace PwC.Metering.Core.Services.Contracts.Helpers

        Public Interface IPaginate
            Property Skip As Integer?
            Property Take As Integer?
        End Interface

        '''<Summary>
        '''The number of query results to skip.
        '''</Summary>
        <Api(Description:="The number of query results to skip.")>
        Public Partial Class PaginationBase
            Implements IPaginate
            '''<Summary>
            '''The number of query results to skip.
            '''</Summary>
            <ApiMember(Description:="The number of query results to skip.")>
            Public Overridable Property Skip As Integer? Implements IPaginate.Skip

            '''<Summary>
            '''The number of query results to include.
            '''</Summary>
            <ApiMember(Description:="The number of query results to include.")>
            Public Overridable Property Take As Integer? Implements IPaginate.Take
        End Class
    End Namespace

    Namespace PwC.Metering.Core.Services.Contracts.Requests

        '''<Summary>
        '''Represents a service request to revoke specified orders.
        '''</Summary>
        <Route("/sync/orders/batch", "DELETE")>
        <Api(Description:="Represents a service request to revoke specified orders.")>
        Public Partial Class BatchRevokeOrders
            Inherits BatchRevokeOrdersBase
            Implements IReturn(Of OrderQueryResponse)
        End Class

        '''<Summary>
        '''Specifies a base service to revoke specified orders.
        '''</Summary>
        <Api(Description:="Specifies a base service to revoke specified orders.")>
        Public Partial Class BatchRevokeOrdersBase
            Inherits PaginationBase
            Implements IDelete
            '''<Summary>
            '''The collection of specified unique identifiers of the orders to delete.
            '''</Summary>
            <ApiMember(Description:="The collection of specified unique identifiers of the orders to delete.")>
            Public Overridable Property Ids As List(Of Integer) = New List(Of Integer)
        End Class
    End Namespace

    Namespace PwC.Metering.Core.Services.Contracts.Responses

        '''<Summary>
        '''Represents a query response that contains a structured error information and encapsulates customers.
        '''</Summary>
        <Api(Description:="Represents a query response that contains a structured error information and encapsulates customers.")>
        Public Partial Class OrderQueryResponse
            Inherits QueryResponse(Of Order)
        End Class
    End Namespace
End Namespace