sarlink-portal/lib/schemas.ts
i701 0a63e4337e Enhance user management and payment processing features
- Updated `package.json` to include a new script for launching Prisma Studio.
- Modified `signup` function in `auth-actions.ts` to include account number in user data.
- Refactored `createPayment` function in `payment.ts` to improve error handling and return structured responses.
- Updated UI components in the dashboard to improve layout and responsiveness, including changes to `UserDevices` and `UserPayments` pages.
- Introduced new `AdminDevicesTable` and `UsersPaymentsTable` components for better admin functionalities.
- Enhanced `DeviceCartDrawer` to provide user feedback during payment processing.
- Added account number input to the signup form and updated validation schema accordingly.
- Updated Prisma schema to include a new `ninja_user_id` field for user management.

These changes improve the overall functionality, maintainability, and user experience of the application, particularly in user management and payment processing.
2025-01-06 12:49:13 +05:00

31 lines
1.1 KiB
TypeScript

import { z } from "zod";
export const signUpFormSchema = z.object({
name: z.string().min(2, { message: "Name is required." }),
id_card: z
.string()
.min(2, { message: "ID Card is required" })
.regex(/^[A][0-9]{6}$/, "Please enter a valid ID Card number."),
atoll_id: z.string().min(2, { message: "Atoll is required." }),
island_id: z
.string({ required_error: "Island is required." })
.min(2, { message: "Island is required." }),
address: z.string().min(2, { message: "address is required." }),
dob: z.coerce.date({ message: "Date of birth is required." }),
phone_number: z
.string()
.min(7, { message: "Phone number is required." })
.regex(/^[79][0-9]{2}[0-9]{4}$/, "Please enter a valid phone number")
.transform((val) => val.replace(/\D/g, "")),
terms: z
.string({
required_error: "You must accept the terms and conditions",
})
.transform((val) => val === "on"),
policy: z
.string({
required_error: "You must accept the privacy policy",
})
.transform((val) => val === "on"),
accNo: z.string().min(2, { message: "Account number is required." }),
});