@magic.batua/recharge
Version:
The Recharge module manages all the mobile prepaid, datacard and DTH recharge functionalities of the Magic Batua platform.
60 lines (52 loc) • 1.71 kB
text/typescript
/**
* @module MobilePlan
* @overview Defines the `MobilePlan` class.
*
* @author Animesh Mishra <hello@animesh.ltd>
* @copyright © Animesh Ltd. All Rights Reserved.
*/
/**
* A `MobilePlan` is a prepaid mobile plan that user may opt for
* instead of a straight up account top-up.
*
* Plans are operator and circle-specific and are requested on the
* customer's behalf before each recharge request. Plans are never
* stored in our databases.
*/
export class MobilePlan {
/** Plan amount. Could be in fraction */
public amount: number
/** Plan type. E.g. Roaming or 4G or Special */
public type: string
/** Talktime in terms of Rupees */
public talktime: number
/** In number of days */
public validity: string
/** Any plan-specific details or offers. */
public details: string
public constructor(json: any) {
this.amount = Number(json.amount)
this.type = json.plan_type || json.type
this.talktime = Number(json.talktime)
this.validity = json.validity
this.details = json.remark || json.details
}
public static InitFromList(plans: Array<FindPlanResponse>): Array<MobilePlan> {
let mobilePlans = Array<MobilePlan>()
for(var plan of plans) {
mobilePlans.push(new MobilePlan(plan))
}
return mobilePlans
}
}
/**
* Response set by Rocket in Pocket API when requested a list of all operator-specific,
* circle-specific plans. The result is an array of `RocketPlan`.
*/
interface FindPlanResponse {
amount: string,
plan_type?: string,
remark: string,
talktime: string,
validity: string
}