@prakrit_m/tmn-voucher
Version:
ไลบรารี TypeScript สำหรับการแลกคูปองอั่งเปา TrueMoney Wallet
70 lines (67 loc) • 1.94 kB
text/typescript
type StatusCode = "BAD_PARAM" | "SUCCESS" | "VOUCHER_NOT_FOUND" | "VOUCHER_OUT_OF_STOCK" | "VOUCHER_EXPIRED" | "CANNOT_GET_OWN_VOUCHER" | "TARGET_USER_NOT_FOUND" | "TARGET_USER_REDEEMED" | "TARGET_USER_STATUS_INACTIVE" | "INTERNAL_ERROR";
type VoucherStatus = "active" | "redeemed" | "expired";
type Voucher = {
voucher_id: string;
amount_baht: string;
redeemed_amount_baht: string;
member: number;
status: VoucherStatus;
link: string;
detail: string;
expire_date: number;
type: "R" | "F";
redeemed: number;
available: number;
};
type Profile = {
full_name: string;
};
type RedeemerProfile = {
mobile_number: string;
};
type MyTicket = {
mobile: string;
update_date: number;
amount_baht: string;
full_name: string;
profile_pic: string | null;
};
type Data = {
voucher: Voucher;
owner_profile: Profile;
redeemer_profile: RedeemerProfile;
my_ticket: MyTicket;
tickets: MyTicket[];
};
type ReturnData = {
success: true;
code: "SUCCESS";
message: string;
amount: number;
data: Data;
} | {
success: false;
code: Exclude<StatusCode, "SUCCESS">;
message: string;
data?: (Data & {
my_ticket: MyTicket | null;
redeemer_profile: RedeemerProfile | null;
}) | null;
} | {
success: false;
code: "MAINTEINANCE" | "INVALID_INPUT" | "CONDITION_NOT_MET";
message: string;
};
type Options = {
amount: number;
};
/**
* แลกคูปอง TrueMoney Wallet
* @param phoneNumber - เบอร์โทรศัพท์ผู้รับเงิน
* @param voucherUrl - URL ของคูปอง
* @param options - ตัวเลือกเพิ่มเติม
* @returns Promise<ReturnData>
* @throws {TmnVoucherError}
*/
declare function redeemvouchers(phoneNumber: string, voucherUrl: string, options?: Options): Promise<ReturnData>;
export { redeemvouchers as default };