' Options:
'Date: 2025-05-31 18:21:34
'Version: 8.40
'Tip: To override a DTO option, remove "''" prefix before updating
'BaseUrl: https://active-ewebservice.biz/aeservices30/api
'
'''GlobalNamespace: 
'''MakePartial: True
'''MakeVirtual: True
'''MakeDataContractsExtensible: False
'''AddReturnMarker: True
'''AddDescriptionAsComments: True
'''AddDataContractAttributes: False
'''AddIndexesToDataMembers: False
'''AddGeneratedCodeAttributes: False
'''AddResponseStatus: False
'''AddImplicitVersion: 
'''InitializeCollections: True
'''ExportValueTypes: False
'IncludeTypes: CustomerInfoRequest.*
'''ExcludeTypes: 
'''AddNamespaces: 
'''AddDefaultXmlNamespace: http://schemas.servicestack.net/types

Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports AIM.WebService
Imports AIM
Imports AIM.Global.Utils

Namespace Global

    Namespace AIM

        <DataContract>
        Public Partial Class CustomerDefaultInfo
            <DataMember>
            Public Overridable Property Id As Long

            <DataMember>
            Public Overridable Property Desc As String

            <DataMember>
            Public Overridable Property ShortDesc As String
        End Class

        <DataContract>
        Public Partial Class CustomerSearchRecord
            Inherits BindableObject
            Public Sub New()
                DependantInfo = New List(Of DependantRecord)
            End Sub

            <DataMember>
            Public Overridable Property Pk As Long

            <DataMember>
            Public Overridable Property Acct As Integer

            <DataMember>
            Public Overridable Property Last As String

            <DataMember>
            Public Overridable Property Name As String

            <DataMember>
            Public Overridable Property Addr1 As String

            <DataMember>
            Public Overridable Property Addr2 As String

            <DataMember>
            Public Overridable Property City As String

            <DataMember>
            Public Overridable Property St As String

            <DataMember>
            Public Overridable Property Zip As String

            <DataMember>
            Public Overridable Property Phone As String

            <DataMember>
            Public Overridable Property Email As String

            <DataMember>
            Public Overridable Property OpenInvoices As Boolean

            <DataMember>
            Public Overridable Property RentalActivity As Boolean

            <DataMember>
            Public Overridable Property StLoc As String

            <DataMember>
            Public Overridable Property Hold As Boolean

            <DataMember>
            Public Overridable Property Barcode As String

            <DataMember>
            Public Overridable Property Color As Integer

            <DataMember>
            Public Overridable Property DependantInfo As List(Of DependantRecord)

            <DataMember>
            Public Overridable Property AdditionalDetails As AdditionalDetail

            <DataMember>
            Public Overridable Property MatchedOn As String

            <DataContract>
            Public Partial Class DependantRecord
                <DataMember>
                Public Overridable Property Name As String

                <DataMember>
                Public Overridable Property OnlineId As String

                <DataMember>
                Public Overridable Property SchoolDistrict As String

                <DataMember>
                Public Overridable Property School As String

                <DataMember>
                Public Overridable Property Id As Long
            End Class

            <DataContract>
            Public Partial Class AdditionalDetail
                <DataMember>
                Public Overridable Property CreationDate As Date

                <DataMember>
                Public Overridable Property LastModifiedDate As Date

                <DataMember>
                Public Overridable Property Notes As String

                <DataMember>
                Public Overridable Property CustomerDefault As CustomerDefaultInfo

                <DataMember>
                Public Overridable Property TaxAuthority As TaxAuthorityInfo

                <DataMember>
                Public Overridable Property CanCharge As Boolean

                <DataMember>
                Public Overridable Property PopupNotes As String

                <DataMember>
                Public Overridable Property DlNumber As String

                <DataMember>
                Public Overridable Property Phone2 As String

                <DataMember>
                Public Overridable Property Phone3 As String

                <DataMember>
                Public Overridable Property Phone4 As String

                <DataMember>
                Public Overridable Property Location As LocationInfo
            End Class
        End Class

        <DataContract>
        Public Partial Class LocationInfo
            <DataMember>
            Public Overridable Property Id As Long

            <DataMember>
            Public Overridable Property Desc As String

            <DataMember>
            Public Overridable Property ShortDesc As String

            <DataMember>
            Public Overridable Property Region As String

            <DataMember>
            Public Overridable Property Latitude As Decimal

            <DataMember>
            Public Overridable Property Longitude As Decimal

            <DataMember>
            Public Overridable Property InStorePickup As String

            <DataMember>
            Public Overridable Property Active As Boolean

            <DataMember>
            Public Overridable Property CashSaleAcct As Nullable(Of Integer)
        End Class

        <DataContract>
        Public Partial Class TaxAuthorityInfo
            <DataMember>
            Public Overridable Property Id As Long

            <DataMember>
            Public Overridable Property Desc As String

            <DataMember>
            Public Overridable Property ShortDesc As String
        End Class
    End Namespace

    Namespace AIM.Global.Utils

        <DataContract>
        Public Partial Class BindableObject
        End Class
    End Namespace

    Namespace AIM.WebService

        <DataContract>
        Public Partial Class BaseRequest
            '''<Summary>
            '''This is your AIM API Key provided by Tri-Tech
            '''</Summary>
            <DataMember>
            <ApiMember(DataType:="string", Description:="This is your AIM API Key provided by Tri-Tech", IsRequired:=true, Name:="ApiKey", ParameterType:="header")>
            Public Overridable Property ApiKey As String

            <DataMember>
            <ApiMember(DataType:="string", Name:="OAuthToken", ParameterType:="header")>
            Public Overridable Property OAuthToken As String
        End Class

        <DataContract>
        Public Partial Class BaseResponse
            '''<Summary>
            '''
            '''</Summary>
            <DataMember>
            <ApiMember(DataType:="BaseResponseResult", Description:="", Name:="Status", ParameterType:="body")>
            Public Overridable Property Status As BaseResponseResult
        End Class

        <DataContract>
        Public Partial Class BaseSecureRequest
            Inherits BaseRequest
            '''<Summary>
            '''
            '''</Summary>
            <DataMember>
            <ApiMember(DataType:="string", Description:="", Name:="Token", ParameterType:="Header")>
            Public Overridable Property Token As String

            '''<Summary>
            '''
            '''</Summary>
            <DataMember>
            <ApiMember(DataType:="string", Description:="", Name:="DeviceId", ParameterType:="Header")>
            Public Overridable Property DeviceId As String

            '''<Summary>
            '''
            '''</Summary>
            <DataMember>
            <ApiMember(DataType:="string", Description:="", IsRequired:=true, Name:="AppId", ParameterType:="Header")>
            Public Overridable Property AppId As String
        End Class

        <DataContract>
        Public Partial Class CategoryLevelDiscount
            <DataMember>
            Public Overridable Property Category As Integer

            <DataMember>
            Public Overridable Property SubCategory As Nullable(Of Integer)

            <DataMember>
            Public Overridable Property DiscountType As String

            <DataMember>
            Public Overridable Property DiscountAmount As Decimal
        End Class

        <DataContract>
        Public Partial Class CustomerDiscountInfo
            Public Sub New()
                CategoryLevelDiscounts = New List(Of CategoryLevelDiscount)
            End Sub

            <DataMember>
            Public Overridable Property AccessoryInventory As Decimal

            <DataMember>
            Public Overridable Property SerializedInventory As Decimal

            <DataMember>
            Public Overridable Property ShortTermRental As Decimal

            <DataMember>
            Public Overridable Property NonInventory As Decimal

            <DataMember>
            Public Overridable Property Labor As Decimal

            <DataMember>
            Public Overridable Property MediaInventory As Decimal

            <DataMember>
            Public Overridable Property CategoryLevelDiscounts As List(Of CategoryLevelDiscount)

            <DataMember>
            Public Overridable Property PriceLevel As String
        End Class

        <DataContract>
        Public Partial Class CustomerEmailInfo
            <DataMember>
            Public Overridable Property Description As String

            <DataMember>
            Public Overridable Property Email As String

            <DataMember>
            Public Overridable Property Method As String

            <DataMember>
            Public Overridable Property Type As String
        End Class

        '''<Summary>
        '''CustomerInfoRequires active-e Customer Service.
        '''</Summary>
        <Route("/CustomerInfo", "GET")>
        <DataContract>
        Public Partial Class CustomerInfoRequest
            Inherits BaseSecureRequest
            Implements IReturn(Of CustomerInfoResponse)
            <DataMember>
            Public Overridable Property Acct As Integer
        End Class

        <DataContract>
        Public Partial Class CustomerInfoResponse
            Inherits BaseResponse
            Public Sub New()
                Memberships = New List(Of CustomerMembershipInfo)
                Emails = New List(Of CustomerEmailInfo)
            End Sub

            <DataMember>
            Public Overridable Property Customer As CustomerSearchRecord

            <DataMember>
            Public Overridable Property DiscountInfo As CustomerDiscountInfo

            <DataMember>
            Public Overridable Property Memberships As List(Of CustomerMembershipInfo)

            <DataMember>
            Public Overridable Property Emails As List(Of CustomerEmailInfo)
        End Class

        <DataContract>
        Public Partial Class CustomerMembershipInfo
            <DataMember>
            Public Overridable Property Description As String

            <DataMember>
            Public Overridable Property TeeLevel As Integer

            <DataMember>
            Public Overridable Property WebTeeLevel As Integer

            <DataMember>
            Public Overridable Property StationLevel As Integer
        End Class
    End Namespace
End Namespace