135 lines
6.0 KiB
JavaScript
135 lines
6.0 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.simFeaturesRequestSchema = exports.simChangePlanRequestSchema = exports.simTopupRequestSchema = exports.simOrderActivationRequestSchema = exports.simOrderActivationAddonsSchema = exports.simOrderActivationMnpSchema = exports.simFeaturesUpdateRequestSchema = exports.simTopUpHistoryRequestSchema = exports.simCancelRequestSchema = exports.simPlanChangeRequestSchema = exports.simTopUpRequestSchema = exports.simTopUpHistorySchema = exports.simTopUpHistoryEntrySchema = exports.simUsageSchema = exports.recentDayUsageSchema = exports.simDetailsSchema = exports.simTypeSchema = exports.simStatusSchema = void 0;
|
|
const zod_1 = require("zod");
|
|
exports.simStatusSchema = zod_1.z.enum(["active", "suspended", "cancelled", "pending"]);
|
|
exports.simTypeSchema = zod_1.z.enum(["standard", "nano", "micro", "esim"]);
|
|
exports.simDetailsSchema = zod_1.z.object({
|
|
account: zod_1.z.string(),
|
|
status: exports.simStatusSchema,
|
|
planCode: zod_1.z.string(),
|
|
planName: zod_1.z.string(),
|
|
simType: exports.simTypeSchema,
|
|
iccid: zod_1.z.string(),
|
|
eid: zod_1.z.string(),
|
|
msisdn: zod_1.z.string(),
|
|
imsi: zod_1.z.string(),
|
|
remainingQuotaMb: zod_1.z.number(),
|
|
remainingQuotaKb: zod_1.z.number(),
|
|
voiceMailEnabled: zod_1.z.boolean(),
|
|
callWaitingEnabled: zod_1.z.boolean(),
|
|
internationalRoamingEnabled: zod_1.z.boolean(),
|
|
networkType: zod_1.z.string(),
|
|
activatedAt: zod_1.z.string().optional(),
|
|
expiresAt: zod_1.z.string().optional(),
|
|
});
|
|
exports.recentDayUsageSchema = zod_1.z.object({
|
|
date: zod_1.z.string(),
|
|
usageKb: zod_1.z.number(),
|
|
usageMb: zod_1.z.number(),
|
|
});
|
|
exports.simUsageSchema = zod_1.z.object({
|
|
account: zod_1.z.string(),
|
|
todayUsageMb: zod_1.z.number(),
|
|
todayUsageKb: zod_1.z.number(),
|
|
monthlyUsageMb: zod_1.z.number().optional(),
|
|
monthlyUsageKb: zod_1.z.number().optional(),
|
|
recentDaysUsage: zod_1.z.array(exports.recentDayUsageSchema),
|
|
isBlacklisted: zod_1.z.boolean(),
|
|
lastUpdated: zod_1.z.string().optional(),
|
|
});
|
|
exports.simTopUpHistoryEntrySchema = zod_1.z.object({
|
|
quotaKb: zod_1.z.number(),
|
|
quotaMb: zod_1.z.number(),
|
|
addedDate: zod_1.z.string(),
|
|
expiryDate: zod_1.z.string(),
|
|
campaignCode: zod_1.z.string(),
|
|
});
|
|
exports.simTopUpHistorySchema = zod_1.z.object({
|
|
account: zod_1.z.string(),
|
|
totalAdditions: zod_1.z.number(),
|
|
additionCount: zod_1.z.number(),
|
|
history: zod_1.z.array(exports.simTopUpHistoryEntrySchema),
|
|
});
|
|
exports.simTopUpRequestSchema = zod_1.z.object({
|
|
quotaMb: zod_1.z
|
|
.number()
|
|
.int()
|
|
.min(100, "Quota must be at least 100MB")
|
|
.max(51200, "Quota must be 50GB or less"),
|
|
});
|
|
exports.simPlanChangeRequestSchema = zod_1.z.object({
|
|
newPlanCode: zod_1.z.string().min(1, "New plan code is required"),
|
|
assignGlobalIp: zod_1.z.boolean().optional(),
|
|
scheduledAt: zod_1.z
|
|
.string()
|
|
.regex(/^\d{8}$/, "Scheduled date must be in YYYYMMDD format")
|
|
.optional(),
|
|
});
|
|
exports.simCancelRequestSchema = zod_1.z.object({
|
|
scheduledAt: zod_1.z
|
|
.string()
|
|
.regex(/^\d{8}$/, "Scheduled date must be in YYYYMMDD format")
|
|
.optional(),
|
|
});
|
|
exports.simTopUpHistoryRequestSchema = zod_1.z.object({
|
|
fromDate: zod_1.z
|
|
.string()
|
|
.regex(/^\d{8}$/, "From date must be in YYYYMMDD format"),
|
|
toDate: zod_1.z
|
|
.string()
|
|
.regex(/^\d{8}$/, "To date must be in YYYYMMDD format"),
|
|
});
|
|
exports.simFeaturesUpdateRequestSchema = zod_1.z.object({
|
|
voiceMailEnabled: zod_1.z.boolean().optional(),
|
|
callWaitingEnabled: zod_1.z.boolean().optional(),
|
|
internationalRoamingEnabled: zod_1.z.boolean().optional(),
|
|
networkType: zod_1.z.enum(["4G", "5G"]).optional(),
|
|
});
|
|
exports.simOrderActivationMnpSchema = zod_1.z.object({
|
|
reserveNumber: zod_1.z.string().min(1, "Reserve number is required"),
|
|
reserveExpireDate: zod_1.z.string().regex(/^\d{8}$/, "Reserve expire date must be in YYYYMMDD format"),
|
|
account: zod_1.z.string().optional(),
|
|
firstnameKanji: zod_1.z.string().optional(),
|
|
lastnameKanji: zod_1.z.string().optional(),
|
|
firstnameZenKana: zod_1.z.string().optional(),
|
|
lastnameZenKana: zod_1.z.string().optional(),
|
|
gender: zod_1.z.string().optional(),
|
|
birthday: zod_1.z.string().regex(/^\d{8}$/, "Birthday must be in YYYYMMDD format").optional(),
|
|
});
|
|
exports.simOrderActivationAddonsSchema = zod_1.z.object({
|
|
voiceMail: zod_1.z.boolean().optional(),
|
|
callWaiting: zod_1.z.boolean().optional(),
|
|
});
|
|
exports.simOrderActivationRequestSchema = zod_1.z.object({
|
|
planSku: zod_1.z.string().min(1, "Plan SKU is required"),
|
|
simType: zod_1.z.enum(["eSIM", "Physical SIM"]),
|
|
eid: zod_1.z.string().min(15, "EID must be at least 15 characters").optional(),
|
|
activationType: zod_1.z.enum(["Immediate", "Scheduled"]),
|
|
scheduledAt: zod_1.z.string().regex(/^\d{8}$/, "Scheduled date must be in YYYYMMDD format").optional(),
|
|
addons: exports.simOrderActivationAddonsSchema.optional(),
|
|
mnp: exports.simOrderActivationMnpSchema.optional(),
|
|
msisdn: zod_1.z.string().min(1, "Phone number (msisdn) is required"),
|
|
oneTimeAmountJpy: zod_1.z.number().nonnegative("One-time amount must be non-negative"),
|
|
monthlyAmountJpy: zod_1.z.number().nonnegative("Monthly amount must be non-negative"),
|
|
}).refine((data) => {
|
|
if (data.simType === "eSIM" && (!data.eid || data.eid.length < 15)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}, {
|
|
message: "EID is required for eSIM and must be at least 15 characters",
|
|
path: ["eid"],
|
|
}).refine((data) => {
|
|
if (data.activationType === "Scheduled" && !data.scheduledAt) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}, {
|
|
message: "Scheduled date is required for Scheduled activation",
|
|
path: ["scheduledAt"],
|
|
});
|
|
exports.simTopupRequestSchema = exports.simTopUpRequestSchema;
|
|
exports.simChangePlanRequestSchema = exports.simPlanChangeRequestSchema;
|
|
exports.simFeaturesRequestSchema = exports.simFeaturesUpdateRequestSchema;
|
|
//# sourceMappingURL=schema.js.map
|