Imports CharterDotCom.CommonEntities.Library.Enumerations

Public Interface IAccount

    '##################################################################################
    'MODIFICATION   ROD COPELAND    Issue ID:  7334 BIG SKY FIX FOR MULTI-STATEMENTS
    '##################################################################################
    Property OSSProvidedAccountNumber() As String
    '##################################################################################
    Property LoginID() As String
    Property Person() As IMember
    Property Address() As IAddress
    Property Phone() As String
    Property SSN() As String
    Property AccountType() As String
    Property TrackingID() As Integer
    Property MSOID() As Integer
    Property BillingAddress() As IAddress
    Property ShippingAddress() As IAddress
    'Property Family() As List(Of IMember)
    Property UserStatus() As UserStatus
    Property IsExistingUser() As Boolean
    Property ExistingService() As List(Of Category)
    Property AvailableServices() As List(Of BLServiceType)
    Property AreaID() As Integer
    Property AreaName() As String
    Property UserType() As UserType
    Property SecurityQuestion() As String
    Property SecurityQuestionList() As List(Of String)
    Property SecurityAnswer() As String
    'Property SecurityKeys() As List(Of String)
    Property WebSpcaeID() As String
    Property BillingVendorType() As BillingVendorType
    Property BillingSystemURL() As String
    ReadOnly Property Messages() As List(Of IMessage)
    ReadOnly Property Bill() As List(Of IBill)
    ReadOnly Property PaidCurrentBill() As Boolean
    ReadOnly Property IsMovingToAddress() As Boolean
    ReadOnly Property AffliateID() As Integer
    Property last_WS_ResponseCode() As Integer
    Property Eligibility() As IEligibility
    Property AuthQuestion() As Dictionary(Of String, IAccount.IAuthQuestion)
    Property MyAccountCachedPropertyNames() As List(Of String)
    Property EBPP() As String

'###########################################################################
'PROJECT BIG SKY, JULY 2009     ROD COPELAND    ISSUE ID 6724
'###########################################################################
'CONVERT THE ICOMS ACCOUNT NUMBER AND PASS THE DATA INTO THE PROVISIONING 
'SYSTEM AS A CSG CUSTOMER THAT HAS BEEN CONVERTED FROM ICOMS.
'###########################################################################
    Property ConvertedBillingAccountsSummary() As List(Of BLConvertedBillingAccount)


    '###########################################################################
    'MyAccount Security Code functionality, March 2010     Sriman Kanuri
    '###########################################################################
    'Pull customer ID from getSignDataResponse and store it in customerID field 
    'This field will be passed to webservice to retrieve and update security code
    'added account number pulled from CSG using EAI webservice at Signin
    '
    '###########################################################################
    Property CSGcustomerID() As String
    Property CPNISecurityCode() As String


    Public Interface IMember
        Property Salutation() As String
        Property FirstName() As String
        Property MiddleName() As String
        Property LastName() As String
        Property Relation() As String
        Property Email() As List(Of IEmail)
        Property ContactEmailAddress() As String
        Property MSPackageInfo() As List(Of IMemberServicePackageInfo)

        '###################################################################
        'THESE WERE ADDED TO HANDLE THE MULTIBLE SERVICE PLANS THAT CAN BE 
        'ASSIGNED TO A MEMBER SERVICE ACCOUNT NUMBER.  EACH PLAN CAN HAVE 
        'ITS OWN PROVISIONING ID AND SET OF EMAIL ACCOUNTS UNIQUE TO IT.
        '###################################################################
        Public Interface IMemberServicePackageInfo
            Property descriptionField() As String
            Property emailsField() As List(Of IMemberServiceEmailInfo)
            Property provisioningIdField() As String
            Property statusField() As String
            Property typeField() As String
            Property webspaceField() As String
            Property SecurityKeys() As List(Of String)
            Property MaxSecurityKeysAllowed() As Integer
            Property MaxEmailsAllowed() As Integer
        End Interface

        Public Interface IMemberServiceEmailInfo
            Property hOHStatusField() As String
            Property domainField() As String
            Property provisioningIdField() As String
            Property statusField() As String
            Property userNameField() As String
            Property IsParentEAddressField() As Boolean
            ReadOnly Property FullEmailAddressField() As String
        End Interface
        '###################################################################


        Public Interface IEmail
            Property MailID() As String
            Property IsPrimary() As Boolean
        End Interface

    End Interface

    Public Interface IMessage
        ReadOnly Property Subject() As String
        ReadOnly Property SentDate() As Date
        ReadOnly Property Body() As String
    End Interface

    Public Interface IBill
        ReadOnly Property AccountNumber() As String
        ReadOnly Property Description() As String
        ReadOnly Property DueDate() As Date
        ReadOnly Property DueUponReceipt() As Boolean
        ReadOnly Property Amount() As Decimal
        ReadOnly Property Paid() As Boolean

        Property LastStatementDate_ICOMS_ONLY() As Date
        Property StatementDueDate_ICOMS_ONLY() As Date
        Property TotalStatementAmount_ICOMS_ONLY() As Decimal

        Property CurrentStatementDate_CSG_ONLY() As Date
        Property PaymentDueDate_CSG_ONLY() As Date
        Property DueDateDescription() As String
        Property StatementBalance_CSG_ONLY() As Decimal
        Property CalculatedBalance_CSG_ONLY() As Decimal
        Property CalculatedBalanceStatus_CSG_ONLY() As String
        Property DisplayBillSummary() As Boolean

    End Interface

    Public Interface IEligibility
        Property AccountNumber() As String
        Property BillingCycle() As Integer
        Property BillingCycleFieldSpecified() As Boolean
        Property DepositAmountField() As Decimal
        Property DepositAmountFieldSpecified() As Boolean
        Property CreditClassField() As String
    End Interface

    Public Interface IAuthQuestion
        Property QuestionID() As String
        Property QuestionName() As String
        Property IsMasked() As Boolean
        Property IsBoolean() As Boolean
        Property MaxLen() As Integer
        Property QuestionDescription() As String
        Property UserResponded() As Boolean
        Property AnswerFromUser() As String
        Property AuthQuestionType() As eAuthQuestionType
        Property CustomerType() As CustomerType
    End Interface

'###########################################################################
'PROJECT BIG SKY, JULY 2009     ROD COPELAND    ISSUE ID 6724
'###########################################################################
'CONVERT THE ICOMS ACCOUNT NUMBER AND PASS THE DATA INTO THE PROVISIONING 
'SYSTEM AS A CSG CUSTOMER THAT HAS BEEN CONVERTED FROM ICOMS.
'###########################################################################
    Public Interface IConvertedBillingAccount
        Property AccountID() As String
        Property LinesOfBusiness() As String
        Property PreconversionParentAccountNumber() As String
    End Interface

End Interface

'****************************************************************
'JPIRKEY: 4-2010 MyAccount Update - Retrieve Username enhancement
'****************************************************************
Public Interface IRetUNameAccount
	Property AccountNumber() As String
	Property ZipCode() As String
    Property UserName() As String
    Property SecretQuestion() As String
End Interface

Public Interface IAddress
	Property Street1() As String
	Property Street2() As String
	Property City() As String
	Property State() As String
	Property Zip() As String
	'Property Zip4() As String
End Interface

Public Interface IMSBillingSystemURL
	Property BillingSys() As String
	Property URL() As String
	Property D() As String
	Property K() As String
	Property S() As String
End Interface
' begin coupon interfaces
Public Interface IRedeemCoupon
	Property AccountNumber() As String
	Property CouponId() As String
	Property RedemptionStatus() As Char
	Property CouponDescription() As String
	Property AdjustmentAmount() As Decimal
	Property RedemptionDate() As Date
	Property ConfirmationNumber() As String
	Property ConfirmationMessage() As String
	Property ValidationErrorMessage() As String
    Property RedeemedEvents() As List(Of ICouponRedeemedEvents)
    Property Address() As IAddress
End Interface

Public Interface ICouponStatus
	Property AccountId() As String
	Property CouponId() As String
	Property CouponDescription() As String
	Property CouponStatus() As String
	Property CouponOffer() As Decimal
	Property CouponStartDate() As Date
	Property CouponEndDate() As Date
	Property ActivationStartDate() As Date
	Property ActivationEndDate() As Date
	Property AllowedRedemptions() As Integer
	Property NumberOfOrderedEvents() As Integer
	Property ExclusionType() As String
	Property RedemptionDate() As Date
	Property RedemptionChannel() As String
	Property ConfirmationNumber() As String
	Property CSRID() As String
	Property CSRLocation() As String
	Property CSRRole() As String
	Property CSRFirstName() As String
	Property CSRLastName() As String
	Property RedeemedEvents() As List(Of ICouponRedeemedEvents)
	Property BusinessRule() As List(Of ICouponBusinessRule)
	Property RedemptionAttempts() As List(Of ICouponRedemptionAttempt)
End Interface
Public Interface ICustomerRedemptionHistory
	Property CouponStatus() As List(Of ICouponStatus)
	Property ReturnCode() As String
End Interface
Public Interface ICouponBusinessRule
	Property RuleID() As String
	Property RuleDescription() As String
End Interface

Public Interface ICouponRedemptionAttempt
	Property Channel() As String
	Property InvalidMessage() As String
End Interface

Public Interface ICouponRedeemedEvents
	Property EventCode() As String
	Property EventTitle() As String
	Property IsRedeemed() As Char
End Interface
Public Interface ICouponRedemptionMessage
	Property ConfirmationMessage() As String
	Property InvalidRedemptionMessage() As String
End Interface
' end coupon integration
Public Enum CustomerType
	ExistingCustomer
	NewCustomer
End Enum
Public Enum eAuthQuestionType
	Standard
	Custom
End Enum

'###########################################################################
'PROJECT BIG SKY, JULY 2009     ROD COPELAND    ISSUE ID 6724
'###########################################################################
'CONVERT THE ICOMS ACCOUNT NUMBER AND PASS THE DATA INTO THE PROVISIONING 
'SYSTEM AS A CSG CUSTOMER THAT HAS BEEN CONVERTED FROM ICOMS.
'###########################################################################
Public Interface IConvertedBillingAccount
	Property AccountID() As String
	Property LinesOfBusiness() As String
	Property PreconversionParentAccountNumber() As String
End Interface
