110 lines
5.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkPasswordNeededResponseSchema = exports.ssoLinkResponseSchema = exports.passwordChangeResultSchema = exports.signupResultSchema = exports.authResponseSchema = exports.authTokensSchema = exports.refreshTokenRequestSchema = exports.checkPasswordNeededRequestSchema = exports.ssoLinkRequestSchema = exports.accountStatusRequestSchema = exports.updateAddressRequestSchema = exports.updateProfileRequestSchema = exports.updateCustomerProfileRequestSchema = exports.validateSignupRequestSchema = exports.linkWhmcsRequestSchema = exports.changePasswordRequestSchema = exports.setPasswordRequestSchema = exports.passwordResetSchema = exports.passwordResetRequestSchema = exports.signupRequestSchema = exports.signupInputSchema = exports.loginRequestSchema = void 0;
const zod_1 = require("zod");
const schema_1 = require("../common/schema");
const schema_2 = require("../customer/schema");
const genderEnum = zod_1.z.enum(["male", "female", "other"]);
exports.loginRequestSchema = zod_1.z.object({
email: schema_1.emailSchema,
password: zod_1.z.string().min(1, "Password is required"),
});
exports.signupInputSchema = zod_1.z.object({
email: schema_1.emailSchema,
password: schema_1.passwordSchema,
firstName: schema_1.nameSchema,
lastName: schema_1.nameSchema,
company: zod_1.z.string().optional(),
phone: schema_1.phoneSchema,
sfNumber: zod_1.z.string().min(6, "Customer number must be at least 6 characters"),
address: schema_2.addressSchema.optional(),
nationality: zod_1.z.string().optional(),
dateOfBirth: zod_1.z.string().optional(),
gender: genderEnum.optional(),
acceptTerms: zod_1.z.boolean(),
marketingConsent: zod_1.z.boolean().optional(),
});
exports.signupRequestSchema = exports.signupInputSchema.transform(data => ({
...data,
firstname: data.firstName,
lastname: data.lastName,
companyname: data.company,
phonenumber: data.phone,
}));
exports.passwordResetRequestSchema = zod_1.z.object({ email: schema_1.emailSchema });
exports.passwordResetSchema = zod_1.z.object({
token: zod_1.z.string().min(1, "Reset token is required"),
password: schema_1.passwordSchema,
});
exports.setPasswordRequestSchema = zod_1.z.object({
email: schema_1.emailSchema,
password: schema_1.passwordSchema,
});
exports.changePasswordRequestSchema = zod_1.z.object({
currentPassword: zod_1.z.string().min(1, "Current password is required"),
newPassword: schema_1.passwordSchema,
});
exports.linkWhmcsRequestSchema = zod_1.z.object({
email: schema_1.emailSchema,
password: zod_1.z.string().min(1, "Password is required"),
});
exports.validateSignupRequestSchema = zod_1.z.object({
sfNumber: zod_1.z.string().min(1, "Customer number is required"),
});
exports.updateCustomerProfileRequestSchema = zod_1.z.object({
firstname: schema_1.nameSchema.optional(),
lastname: schema_1.nameSchema.optional(),
companyname: zod_1.z.string().max(100).optional(),
phonenumber: schema_1.phoneSchema.optional(),
address1: zod_1.z.string().max(200).optional(),
address2: zod_1.z.string().max(200).optional(),
city: zod_1.z.string().max(100).optional(),
state: zod_1.z.string().max(100).optional(),
postcode: zod_1.z.string().max(20).optional(),
country: zod_1.z.string().length(2).optional(),
language: zod_1.z.string().max(10).optional(),
});
exports.updateProfileRequestSchema = exports.updateCustomerProfileRequestSchema;
exports.updateAddressRequestSchema = exports.updateCustomerProfileRequestSchema;
exports.accountStatusRequestSchema = zod_1.z.object({
email: schema_1.emailSchema,
});
exports.ssoLinkRequestSchema = zod_1.z.object({
destination: zod_1.z.string().optional(),
});
exports.checkPasswordNeededRequestSchema = zod_1.z.object({
email: schema_1.emailSchema,
});
exports.refreshTokenRequestSchema = zod_1.z.object({
refreshToken: zod_1.z.string().min(1, "Refresh token is required").optional(),
deviceId: zod_1.z.string().optional(),
});
exports.authTokensSchema = zod_1.z.object({
accessToken: zod_1.z.string().min(1, "Access token is required"),
refreshToken: zod_1.z.string().min(1, "Refresh token is required"),
expiresAt: zod_1.z.string().min(1, "Access token expiry required"),
refreshExpiresAt: zod_1.z.string().min(1, "Refresh token expiry required"),
tokenType: zod_1.z.literal("Bearer"),
});
exports.authResponseSchema = zod_1.z.object({
user: schema_2.userSchema,
tokens: exports.authTokensSchema,
});
exports.signupResultSchema = zod_1.z.object({
user: schema_2.userSchema,
tokens: exports.authTokensSchema,
});
exports.passwordChangeResultSchema = zod_1.z.object({
user: schema_2.userSchema,
tokens: exports.authTokensSchema,
});
exports.ssoLinkResponseSchema = zod_1.z.object({
url: zod_1.z.url(),
expiresAt: zod_1.z.string(),
});
exports.checkPasswordNeededResponseSchema = zod_1.z.object({
needsPasswordSet: zod_1.z.boolean(),
userExists: zod_1.z.boolean(),
email: zod_1.z.email().optional(),
});
//# sourceMappingURL=schema.js.map