@vulog/aima-mobility-plans
v1.2.48
Published
Mobility plan subscriptions — list plans, subscribe, and unsubscribe.
Readme
@vulog/aima-mobility-plans
Mobility plan subscriptions — list plans, subscribe, and unsubscribe.
Installation
npm install @vulog/aima-mobility-plans @vulog/aima-client @vulog/aima-coreUsage
import { getClient } from '@vulog/aima-client';
import { getPlans, getUserPlans, subscribe, unsubscribe } from '@vulog/aima-mobility-plans';
const client = getClient({ /* client options */ });
const plans = await getPlans(client, 'ACTIVE');
const userPlans = await getUserPlans(client, 'profile-uuid');
const result = await subscribe(client, 'plan-uuid', 'profile-uuid');API Reference
getPlans
getPlans(client: Client, status: Status): Promise<Plan[]>Returns all mobility plans matching the given status. status is required.
Params: client — Authenticated AIMA client; status — 'ACTIVE' or 'INACTIVE'
Returns: Promise<Plan[]>
getUserPlans
getUserPlans(client: Client, entityId: string): Promise<Subscription[]>Returns subscriptions for a user profile. entityId must be a UUID. Only returns subscriptions with status ACTIVE, PAYMENT_PENDING, or ACTIVATION_PENDING.
Params: client — Authenticated AIMA client; entityId — profile UUID
Returns: Promise<Subscription[]>
subscribe
subscribe(client: Client, planId: string, profileId: string): Promise<SubscribeResponse>Subscribes a profile to a plan. Both planId and profileId must be UUIDs.
Params: client — Authenticated AIMA client; planId — plan UUID; profileId — profile UUID
Returns: Promise<SubscribeResponse>
unsubscribe
unsubscribe(client: Client, subscriptionId: string, profileId: string): Promise<UnsubscribeResponse>Cancels a subscription. The first argument is subscriptionId (not planId). Both must be UUIDs.
Params: client — Authenticated AIMA client; subscriptionId — subscription UUID; profileId — profile UUID
Returns: Promise<UnsubscribeResponse>
Types
Status
type Status = 'ACTIVE' | 'INACTIVE';Plan
interface Plan {
id: string;
name: string;
fleetId: string;
period: 'WEEK' | 'MONTH' | 'YEAR';
productId: string;
systemCreditIncluded: number;
price: number;
cities: { cityId: string; serviceIds: string[] }[];
status: Status;
periodicTimeWallet: {
freeMinutes: number;
freeMinutesFrequency: 'DAILY' | 'WEEKLY' | 'MONTHLY';
};
services: string[];
}Subscription
A tuple type where each entry contains:
{
id: string;
profileId: string;
plan: Plan;
fleetId: string;
expiryDate: string;
unsubscribeDate: string;
activationDate: string;
invoiceIds: string[];
status: 'ACTIVE' | 'PAYMENT_PENDING' | 'ACTIVATION_PENDING';
}