@ngn-net/giftcard-shared
Version:
Shared library for gifts score microservices
319 lines (318 loc) • 6.99 kB
TypeScript
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;
}