/** * @Name: Customer * @Creation Date: July 28 2017 * @Author: sbaireddy * @Version: 1.0 : */ import {IAddress, ICreditLine, IDeposit, ISubscriber, IOrder, IPreferredPrice , IServiceStatus, IOrderNotes } from './common'; /** Class representing the customer data. */ export class Customer { orderId: number; customerId: number; altCustomerId: number; addressId: number; firstName: string; middleName: string; lastName: string; address1: string; address2: string; city: string; state: string; zipCode: string; phone1: string; phone2: string; email1: string; email2: string; paperlessBillingEmail: string; dateOfBirth: string; creditType: string; creditProfile: ICreditProfile; deposits: IDeposit[]; subscribers: ISubscriber[]; orders: IOrder[]; totalActiveSubscribers: number; existingDuplicateLines: number; existingvirtualLines: number; interactionId: string; otpVerified: boolean; tokenVerified: boolean; // additional elements dealerCode: string; webOrderId: number; retailStoreId: number; serviceStatus: IServiceStatus; orderNotes: IOrderNotes; brpAuIndicator: string; brpAuDetails: IBRPAUDetails[]; nonTMOMobilePin : string; nonTMOMobileNumber :string; } export interface IBRPAUDetails{ role: string; name: string; firstName: string; lastName: string; } export interface ICreditProfile { accountNumber: number; identifier: string; identifierType: string; creditClass: string; accountType: string; accountSubType: string; accountStatus: string; accountTenure: string; behaviorScore: string; onyxReferenceNumber: string; autoPayIndicator: boolean; planType: string; activationDate: string; taxTreatment: string; isNCFPlan: boolean; isDelinquent: boolean; isExtendedPaySchedule: boolean; isExistingCustomer: boolean; hideFinance: boolean; // isBillCurrent: boolean; billCurrent: boolean; pastDueAmount: number; totalBalanceDue: number; isFinancedJod: boolean; isFinancedEip: boolean; loanCrp: number; leaseCrp: number; activeVoiceLines: number; allowedVoiceLines: number; authorizedVoiceLines: number; cancelledVoiceLines: number; reservedVoiceLines: number; suspendedVoiceLines: number; usedVoiceLines: number; maxVoiceLines: number; // approvedVoiceLines: number; activeDataLines: number; allowedDataLines: number; authorizedDataLines: number; cancelledDataLines: number; reservedDataLines: number; suspendedDataLines: number; usedDataLines: number; maxDataLines: number; financeEligibleCount: number; // approvedDataLines: number; ecla: number; ecl: number; eclb: number; lca: number; mpec: number; virtualRatePlan: string; tentativeBAN: number; reasonCode: number; onTimePayment: number; remainingPayment: number; eligibleDate: string; effectiveDate: string; dateOfBirth: string; } /** Class representing the customer credit check data. */ export interface ICreditCheck { orderId: number; addressId: number; firstName: string; middleName: string; lastName: string; address1: string; address2: string; city: string; state: string; zipCode: string; phone1: string; phone2: string; email1: string; email2: string; creditType: string; idNumber: string; idType: string; idExpirationMonth: string; idExpirationYear: string; idIssuedState: string; pin: string; ssn: string; birthDate: string; birthMonth: string; birthYear: string; employeeId: string; dealerCode: string; nonTMOMobileNumber: string; nonTMOMobilePin: string; webOrderId: string; eligibility: string; eligibilityDate : string; paymentCount : string; brandType : string; accountNumber : string; } export interface IResendSAEmail { preferedLanguage: string; orderId: number; emailId: string; } export interface ICreateAgreement { emailOption: string; languagePreference: string; emailAddress: string; auFirstName: string; auLastName: string; } export interface ICustomerData { applicationuserid: string; ban: number; interactionID: string; levelofpermissions: string; msisdn: number; otpverificationstatus: string; sourceapplication: string; verificationstatus: string; brpauindicator: string; } export interface ICreditEligibilityReq { pin:string; subscriberNumber:string; orderId: string; errorMessage : string; accountNumber : string; nonTMOMobileNumber : string; paymentCount : number; eligibilityDate : string; eligibility : string; brandType :string; } export interface ICreditEligibilityRes { errorMessage : string; accountNumber : string; nonTMOMobileNumber : string; paymentCount : number; eligibilityDate : string; eligibility : string; brandType :string; } // Temp classes export class CreditEligibilityReq implements ICreditEligibilityReq { pin:string; subscriberNumber:string; orderId:string; errorMessage : string; accountNumber : string; nonTMOMobileNumber : string; paymentCount : number; eligibilityDate : string; eligibility : string; brandType :string; }