Skip to main content

EquipoModel

Define el esquema de validación equipoSchema para los miembros del equipo dentro de una empresa. Utiliza Zod para validar los datos esenciales y garantizar la integridad de la información al momento del registro o actualización.


🔍 Ubicación

src/models/EquipoModel.ts


🧩 Esquema base (equipoSchema)

CampoTipo/ZodObligatorioValidaciones y Reglas
usernamestring().min(3)✅ SíNombre de usuario con mínimo 3 caracteres.
correostring().email()✅ SíDebe ser un correo electrónico válido.
passwordstring().min(6)✅ SíContraseña con al menos 6 caracteres.
nombreCompletostring().min(3)✅ SíNombre completo con mínimo 3 caracteres.
telefonostring().min(7).max(15)✅ SíLongitud entre 7 y 15 caracteres.
direccionstring().min(5)✅ SíMínimo 5 caracteres.
fotoPerfilstring().url().optional()❌ NoDebe ser una URL válida si se proporciona.
rolEquipoenum(["LECTOR", "COMENTARISTA", "EDITOR"])✅ SíRol asignado dentro del equipo.
estadoenum(["activo", "inactivo"]).default("activo")❌ NoSi no se especifica, se asumirá "activo" por defecto.
empresaIdnumber().optional()❌ NoSolo requerido si quien crea el usuario es un administrador.
perfilCompletoboolean().optional()❌ NoLógica invertida: false indica que el perfil ya está completo, true si falta información.

🧪 Tipo inferido

Este esquema permite inferir automáticamente el tipo EquipoModel:

export type EquipoModel = z.infer<typeof equipoSchema>;

Esto asegura que los datos validados con Zod tengan un tipado consistente en todo el proyecto.


✅ Usos comunes

  • Validación de datos al registrar o actualizar miembros de equipo.
  • Protección del backend ante datos malformateados.
  • Generación automática de documentación con herramientas como Swagger (al combinar con DTOs o interfaces).
  • Validaciones compartidas entre backend y frontend si se usa Zod en ambos contextos.