import * as yup from 'yup';
import { es } from 'yup-locales';
yup.setLocale(es);
/**
* Esquema de validación para la actualización de usuarios.
*
* @constant {yup.ObjectSchema} schema
*/
const updateUsuarioValidations = yup.object().shape({
/**
* Validación opcional del nombre del usuario.
* Debe ser una cadena con al menos 3 caracteres si se proporciona.
*/
nombre: yup.string()
.trim()
.min(3, 'El nombre debe tener al menos 3 caracteres.')
.notRequired(),
/**
* Validación opcional del correo electrónico.
* Debe ser una cadena válida en formato de correo electrónico si se proporciona.
*/
email: yup.string()
.trim()
.lowercase()
.email('Debe ser un correo electrónico válido.')
.notRequired(),
/**
* Validación opcional de la contraseña.
* Debe tener al menos 8 caracteres, incluir una letra mayúscula y un número si se proporciona.
*/
password: yup.string()
.min(8, 'La contraseña debe tener al menos 8 caracteres.')
.matches(/(?=.*[A-Z])/, 'La contraseña debe contener al menos una letra mayúscula.')
.matches(/(?=.*\d)/, 'La contraseña debe contener al menos un número.')
.notRequired(),
/**
* Validación opcional del rol del usuario.
* Si se proporciona, debe ser "administrador" o "usuario".
*/
rol: yup.string()
.oneOf(['administrador', 'usuario'], 'El rol debe ser administrador o usuario.')
.notRequired(),
/**
* Validación opcional de la URL de la foto de perfil.
* Puede ser nula o una URL válida si se proporciona.
*/
fotoPerfil: yup.string('La URL de la foto de perfil no es válida.')
.notRequired()
.nullable()
});
export { updateUsuarioValidations }