UNPKG

@ngn-net/giftcard-shared

Version:

Shared library for gifts score microservices

319 lines (318 loc) 6.99 kB
import { MessageType } from "./constants"; export interface GiftCardPurchaseItem { id: string; amount: number; productId: string; quantity: number; } export interface GiftCardPurchaseRequest { corelationId: string; timestamp: number; userId: string; orderId: string; items: GiftCardPurchaseItem[]; } export interface GiftCardPurchaseResponse { orderId: string; orderItemId: string; productId: string; quantity: number; userId: string; status: string; redeem: RedeemDto; timestamp: number; totalCost?: number; } export interface RedeemDto { raw?: any; redemption_details?: string; support_reference?: string; brand_logo?: string; redemption_url?: string; code_url?: string; claim_code?: string; pin_number?: string; activate_by?: string; security_code?: string; serial?: string; pin?: string; pin_code?: string; expiration_date?: string; amount?: string; card_number?: string; iccid?: string; smdp_address?: string; activation_code?: string; barcode_url?: string; barcode_format?: string; barcode_number?: string; remaining_percent?: string; } export interface PurchaseResponse<T> { code: PurchaseStatus; message: string; data: T; correlationId: string; timestamp: number; } export declare enum PurchaseStatus { SUCCESS = 200, PARTIAL_SUCCESS = 202, BAD_REQUEST = 400, UNAUTHORIZED = 401, NOT_FOUND = 404, INSUFFICIENT_FUNDS = 402, PROVIDER_ERROR = 502, TIMEOUT = 504, INTERNAL_ERROR = 500 } export interface ProviderProductDto { id: string; name: string; description?: string; redeemInstruction?: string; providerId: string; providerName: string; currency: string; status: string; validity: string; country: string; usdFee: number; discountPer: number; usdRate: number; denominations: { increment: number; min: number; max: number; usdPrice: number; }[]; } export declare enum OrderState { PENDING = 1, VERIFIED = 2, INVOICED = 3, PAID = 4, PROCESSING = 5, PARTIALLY_COMPLETED = 6, COMPLETED = 7, FAILED = 8, CANCELLED = 9, EXPIRED = 10 } export declare enum userState { registered = "registered", approved = "approved", suspended = "suspended" } export declare enum UserSource { ewano = "ewano", gs = "giftscore" } export interface RoleDto { id: string; name: string; resource?: string; } export interface UserDto { id: string; userid: string; firstName?: string; lastName?: string; email: string; phone: string; username?: string; roles?: RoleDto[]; status: userState; source: UserSource; createdAt: Date; updatedAt: Date; } export interface ProgressionAuditLog { type: string; ts: number; data: string; } export interface OrderMetadata { id: number; currency: string; boughtPrice: number; costPrice: number; soldPrice: number; boughtDiscount: number; soldDiscount: number; boughtFee: number; costFinalPrice: number; soldFinalPrice: number; comission: number; exchangeRate: number; exchangeType: string; } export interface OrderItem { id: string; productId: number; productName: string; countryCode: string; currency: string; productImg: string; providerPID: string; amount: number; metadata: OrderMetadata; } export interface OrderLogDto { id: string; userId: string; state: string; coupon: { id: string; discount: number; code: string; } | null; ewanoOrder: { msisdn: string; id: string; discountAmount: number; } | null; payablePrice: number; totalComission: number; totalPrice: number; totalCost: number; boughtFinalPrice: number; totalDiscount: number; exchangeRate: number; exchangeType: string; auditLog: ProgressionAuditLog[]; orderItems: OrderItem[]; createdAt: Date; updatedAt: Date; } export declare enum EventType { BUY_ERROR = "BUY_ERROR", BUY_SUCCESS = "BUY_SUCCESS", REDEEM_ERROR = "REDEEM_ERROR", REDEEM_SUCCESS = "REDEEM_SUCCESS", BALANCE_ALERT = "BALANCE_ALERT", STATUS_CHANGE = "STATUS_CHANGE" } export interface ProviderLogDto { id: string; userId: string; status: ProviderStatus; providerName: string; eventType: EventType; message?: string; balance: number; orderId?: string; productId?: string; quantity?: number; amount?: number; redeem?: any; timestamp: Date; } export declare enum ProviderStatus { active = "ACTIVE", deactive = "DEACTIVE" } export interface ProviderDto { id: string; name: string; balance: number; panelUrl: string; timestamp: Date; } export interface PurchaseLogDto { id?: string; balanceInfo: { cost: number; currencyCode: string; currencyName: string; newBalance: number; oldBalance: number; updatedAt: Date; }; product: { id: string; countryCode: string; currencyCode: string; productName: string; quantity: number; totalPrice: number; unitPrice: number; }; currencyCode: string; orderId: string; orderItemId: string; userId: string; amount: number; amountPrice: number; exRate: number; discount: number; fee?: number; totalFee: number; preOrdered: boolean; recipientEmail: string; status: string; transactionCreatedTime: Date; transactionId: string; providerId?: string; providerName?: string; createDate: Date; redeem?: any; } export declare enum sessionState { active = "active", deactive = "deactive" } export interface SessionLogDto { jti: string; exp: Date; userId: string; userAgent: string; ipAddress: string; state: sessionState; createdAt: Date; } export declare enum KycState { REJECT = 0, PROCESSING = 1, KYC_DONE = 2, T_PASS_SET = 3, G_AUTH_SET = 4, BOTH_SET = 5, GAVE_UP = 6 } export declare enum KYCType { FORGOT = 0, ACTIVE_KYC = 1 } export interface KycDto { userId: string; state: KycState; type: KYCType; kycResult?: Object; date: Date; } export interface MessagePattern<T> { message?: string; messageType: MessageType; tId?: string; data: T; } export interface RPCResponse<T> { code: number; message: string; data: T; } export declare enum AuditResultType { SUCCESSFUL = "SUCCESSFUL", FAILED = "FAILED" } export interface SecurityLogDto { title: string; eventResult: AuditResultType; userId: string; username: string; ipAddress: string; agent: string; isVisibleToUser: boolean; timestamp: number; }