63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
/**
|
|
* SIM Domain - Schemas
|
|
*/
|
|
|
|
import { z } from "zod";
|
|
|
|
export const simStatusSchema = z.enum(["active", "suspended", "cancelled", "pending"]);
|
|
|
|
export const simTypeSchema = z.enum(["standard", "nano", "micro", "esim"]);
|
|
|
|
export const simDetailsSchema = z.object({
|
|
account: z.string(),
|
|
status: simStatusSchema,
|
|
planCode: z.string(),
|
|
planName: z.string(),
|
|
simType: simTypeSchema,
|
|
iccid: z.string(),
|
|
eid: z.string(),
|
|
msisdn: z.string(),
|
|
imsi: z.string(),
|
|
remainingQuotaMb: z.number(),
|
|
remainingQuotaKb: z.number(),
|
|
voiceMailEnabled: z.boolean(),
|
|
callWaitingEnabled: z.boolean(),
|
|
internationalRoamingEnabled: z.boolean(),
|
|
networkType: z.string(),
|
|
activatedAt: z.string().optional(),
|
|
expiresAt: z.string().optional(),
|
|
});
|
|
|
|
export const recentDayUsageSchema = z.object({
|
|
date: z.string(),
|
|
usageKb: z.number(),
|
|
usageMb: z.number(),
|
|
});
|
|
|
|
export const simUsageSchema = z.object({
|
|
account: z.string(),
|
|
todayUsageMb: z.number(),
|
|
todayUsageKb: z.number(),
|
|
monthlyUsageMb: z.number().optional(),
|
|
monthlyUsageKb: z.number().optional(),
|
|
recentDaysUsage: z.array(recentDayUsageSchema),
|
|
isBlacklisted: z.boolean(),
|
|
lastUpdated: z.string().optional(),
|
|
});
|
|
|
|
export const simTopUpHistoryEntrySchema = z.object({
|
|
quotaKb: z.number(),
|
|
quotaMb: z.number(),
|
|
addedDate: z.string(),
|
|
expiryDate: z.string(),
|
|
campaignCode: z.string(),
|
|
});
|
|
|
|
export const simTopUpHistorySchema = z.object({
|
|
account: z.string(),
|
|
totalAdditions: z.number(),
|
|
additionCount: z.number(),
|
|
history: z.array(simTopUpHistoryEntrySchema),
|
|
});
|
|
|