Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
21 lines
994 B
TypeScript
21 lines
994 B
TypeScript
import { z } from 'zod'
|
|
|
|
import { texts } from '@/texts'
|
|
|
|
const v = texts.validation.profile
|
|
const person = texts.validation.person
|
|
|
|
export const UpdateProfileFormValidation = z.object({
|
|
firstName: z.string().trim().min(1, person.firstNameRequired).max(100, person.firstNameMax),
|
|
lastName: z.string().trim().min(1, person.lastNameRequired).max(100, person.lastNameMax),
|
|
// z.enum keeps input/output identical so zodResolver matches useForm<UpdateProfileFormValues>
|
|
gender: z.enum(['male', 'female'], { message: person.genderRequired }),
|
|
bio: z.string().trim().max(2000, v.bioMax).optional().or(z.literal('')),
|
|
// انتخاب استان فعلاً در فرم پروفایل غیرفعال است.
|
|
// provinceId: z.string().optional().or(z.literal('')),
|
|
cityId: z.string().optional().or(z.literal('')),
|
|
defaultAddress: z.string().trim().max(500, v.addressMax).optional().or(z.literal('')),
|
|
})
|
|
|
|
export type UpdateProfileFormValues = z.infer<typeof UpdateProfileFormValidation>
|