@vulog/aima-promocode
Version:
Promo codes and referral system — validate, submit, and query promo/referral codes.
55 lines (54 loc) • 1.8 kB
text/typescript
import { Client } from "@vulog/aima-client";
//#region src/types.d.ts
type ProductGroup = {
id: string;
name: string;
status: 'ACTIVE' | 'INACTIVE';
};
type PromoCodeUsage = {
id: number;
walletUsage: 'TRIP' | 'PRODUCTS';
discountCategory: 'CREDITS';
percentage: number;
amount: number;
cappedPercentage: null;
isOneTimeUsage: boolean;
productGroup?: ProductGroup | null;
};
type PromoCode = {
reference: string;
walletType: string;
status: 'ACTIVE' | 'INACTIVE';
validityDuration: number;
effectiveDate: string;
expiryDate: string;
validityEndDate: string;
description?: string;
id: number;
fleetId: string;
registration: boolean;
maxUses: number;
usages: PromoCodeUsage[];
[key: string]: any;
};
type ReferralInfo = {
referralUserId: string;
referralCode: string;
referralPromocodeId: number;
refereePromocodeId: number;
};
//#endregion
//#region src/checkInvitationCode.d.ts
declare const checkInvitationCode: (client: Client, referralCode: string) => Promise<ReferralInfo | undefined>;
//#endregion
//#region src/getPromoCode.d.ts
declare const getPromoCodeByReference: (client: Client, reference: string) => Promise<PromoCode | undefined>;
declare const getPromoCodeById: (client: Client, id: number) => Promise<PromoCode | undefined>;
//#endregion
//#region src/submitPromoCode.d.ts
declare const submitPromoCode: (client: Client, userId: string, entityId: string, code: string) => Promise<string>;
//#endregion
//#region src/submitReferral.d.ts
declare const submitReferral: (client: Client, userId: string, entityId: string, code: string) => Promise<void>;
//#endregion
export { ProductGroup, PromoCode, PromoCodeUsage, ReferralInfo, checkInvitationCode, getPromoCodeById, getPromoCodeByReference, submitPromoCode, submitReferral };