36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import * as z from "zod"
|
|
|
|
export const loginFormSchema = z.object({
|
|
email: z.email("Introduce un correo válido"),
|
|
password: z.string().min(1, "La contraseña es obligatoria")
|
|
})
|
|
|
|
export const signupFormSchema = z.object({
|
|
email: z.email("Introduce un correo válido"),
|
|
password: z.string().min(6, "La contraseña debe tener al menos 6 caracteres"),
|
|
name: z.string().min(1, "El nombre es obligatorio"),
|
|
location: z.string().min(1, "La ubicación es obligatoria"),
|
|
redirectUrl: z.string().optional()
|
|
})
|
|
|
|
// Schema extendido para el formulario cliente (incluye confirmación de contraseña)
|
|
export const signupClientFormSchema = signupFormSchema
|
|
.extend({
|
|
confirmPassword: z.string().min(6, "Confirma tu contraseña")
|
|
})
|
|
.refine((data) => data.password === data.confirmPassword, {
|
|
message: "Las contraseñas no coinciden",
|
|
path: ["confirmPassword"]
|
|
})
|
|
|
|
export const profileFormSchema = z.object({
|
|
id: z.uuid(),
|
|
firstName: z.string().min(1, "First name is required"),
|
|
lastName: z.string().min(1, "Last name is required")
|
|
})
|
|
|
|
export const userListParamsSchema = z.object({
|
|
page: z.number().min(1).default(1),
|
|
limit: z.number().min(1).max(100).default(10)
|
|
})
|