diff options
Diffstat (limited to 'lib/admin-users/validations.ts')
| -rw-r--r-- | lib/admin-users/validations.ts | 33 |
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>> |
