From a5b6bbaf45aeb3dfd7d7126e44643e40f1257d3f Mon Sep 17 00:00:00 2001
From: apsr23 <apsr23@inf.ufpr.br>
Date: Wed, 19 Mar 2025 09:34:00 -0300
Subject: [PATCH] Issue #9 ADD user validations

---
 src/validators/userValidator.ts | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/validators/userValidator.ts b/src/validators/userValidator.ts
index cf3f361..79def35 100644
--- a/src/validators/userValidator.ts
+++ b/src/validators/userValidator.ts
@@ -1,13 +1,15 @@
 import { z } from 'zod'
 
 export const userSchema = z.object({
-        name: z.string(),
-        password: z.string(),
-        email: z.string().email(),
-        birthday: z.string(),
-        cpf: z.string(),
-        money: z.number(),
-        cyberpsychosis: z.number(),
+        name: z.string().min(3, { message: "O nome deve ter pelo menos 3 caracteres" }),
+        password: z.string().min(8, { message: "A senha deve ter pelo menos 8 caracteres" }),
+        email: z.string().email({ message: "Formato de e-mail inválido" }),
+        birthday: z.string().refine(date => !isNaN(Date.parse(date)), 
+          { message: "Data de nascimento inválida" }),
+        cpf: z.string().min(11, { message: "O CPF deve ter pelo menos 11 números" })
+          .regex(/^\d{3}\.\d{3}\.\d{3}-\d{2}$/, "CPF inválido (use o formato 000.000.000-00)"),
+        money: z.number().nonnegative(),
+        cyberpsychosis: z.number(), //a definir restrições de validação
         cyberLimit: z.number(),
       });
 
-- 
GitLab