summaryrefslogtreecommitdiff
path: root/lib/admin-users/validations.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/admin-users/validations.ts')
-rw-r--r--lib/admin-users/validations.ts33
1 files changed, 31 insertions, 2 deletions
diff --git a/lib/admin-users/validations.ts b/lib/admin-users/validations.ts
index 3c2fdb9c..86ff8d20 100644
--- a/lib/admin-users/validations.ts
+++ b/lib/admin-users/validations.ts
@@ -9,6 +9,7 @@ import {
import * as z from "zod"
import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers"
import { checkEmailExists } from "./service";
+import { fallbackModeToStaticPathsResult } from "next/dist/lib/fallback";
@@ -65,7 +66,21 @@ export const createUserSchema = z.object({
domain: z.enum(users.domain.enumValues), // "evcp" | "partners"
companyId: z.number().nullable().optional(), // number | null | undefined
roles:z.array(z.string()).min(1, "At least one role must be selected"),
- language: z.enum(["ko", "en"]).optional(),
+ language: z.enum(["ko", "en"]).optional(),
+ phone: z
+ .string()
+ .refine(
+ (phone) => {
+ if (!phone) return false; // Optional field
+ // Remove spaces, hyphens, and parentheses for validation
+ const cleanPhone = phone.replace(/[\s\-\(\)]/g, '');
+ // Basic international phone number validation
+ return /^\+\d{3,20}$/.test(cleanPhone);
+ },
+ {
+ message: "올바른 국제 전화번호 형식이 아닙니다. +로 시작하는 3-20자리 번호를 입력해주세요. (예: +82-10-1234-5678)"
+ }
+ ), // 전화번호 필드 추가
});
@@ -75,7 +90,21 @@ export const updateUserSchema = z.object({
domain: z.enum(users.domain.enumValues).optional(),
companyId: z.number().nullable().optional(),
roles: z.array(z.string()).optional(),
- language: z.enum(["ko", "en"]).optional(),
+ language: z.enum(["ko", "en"]).optional(),
+ phone: z
+ .string()
+ .refine(
+ (phone) => {
+ if (!phone) return false; // Optional field
+ // Remove spaces, hyphens, and parentheses for validation
+ const cleanPhone = phone.replace(/[\s\-\(\)]/g, '');
+ // Basic international phone number validation
+ return /^\+\d{3,20}$/.test(cleanPhone);
+ },
+ {
+ message: "올바른 국제 전화번호 형식이 아닙니다. +로 시작하는 3-20자리 번호를 입력해주세요. (예: +82-10-1234-5678)"
+ }
+ ), // 전화번호 필드 추가
});
export type GetUsersSchema = Awaited<ReturnType<typeof searchParamsCache.parse>>