Endpoints / Proveedores
Actualizar Proveedor
Actualiza parcialmente los datos editables de un proveedor, dentro de la empresa del usuario autenticado, incluyendo sus relaciones de categoría y marca.
/proveedores/:idCaso de Uso
Se usa cuando la aplicación necesita modificar el nombre, teléfono, correo, categoría, marca o estado de un proveedor existente. Al usarlo, el usuario obtiene los datos completos del proveedor actualizado con las relaciones resueltas.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol jefe o empleado. La empresa y el usuario autenticado deben estar activos.
Parámetros de ruta
idstringobligatorioIdentificador del proveedor.
Body
provctgriaidstring | null opcionalNuevo identificador de la categoría asociada; puede enviarse como null para desasignarla.
provmrcidstring | null opcionalNuevo identificador de la marca asociada; puede enviarse como null para desasignarla.
provnombrestring opcionalNuevo nombre del proveedor; debe ser único dentro de la empresa.
provtelefonostring | null opcionalNuevo teléfono móvil de 10 dígitos; puede enviarse como null.
provcorreostring | null opcionalNuevo correo electrónico; puede enviarse como null.
provestadostring opcionalNuevo estado del proveedor; acepta activo, inactivo o eliminado.
Reglas de negocio
Solo un usuario con rol jefe o empleado puede actualizar proveedores.
Solo permite actualizar proveedores de la empresa del usuario autenticado.
La empresa del usuario autenticado debe estar activa.
El usuario autenticado debe estar activo.
El proveedor debe existir dentro de la empresa autenticada.
Un proveedor con estado eliminado no puede actualizarse.
Debe enviarse al menos un campo editable con un valor diferente al actual.
Si se envía provnombre, no puede estar vacío ni repetirse.
Si se envía provtelefono como texto, debe ser un número móvil válido de 10 dígitos.
Si se envía provcorreo como texto, debe tener formato de correo válido.
Si se envía provctgriaid como texto, la categoría debe existir y estar activa.
Si se envía provmrcid como texto, la marca debe existir y estar activa.
Si se envía provestado, solo puede ser activo, inactivo o eliminado.
Errores esperados
id inválido o ausente
Body vacío o sin cambios aplicables
provnombre vacío
provtelefono vacío
provtelefono inválido
provcorreo inválido
provctgriaid vacío
provmrcid vacío
provestado inválido
Proveedor duplicado por nombre en la misma empresa
Categoría inexistente
Categoría inactiva o eliminada
Marca inexistente
Marca inactiva o eliminada
Proveedor en estado eliminado
Usuario sin rol permitido
Usuario inactivo
Empresa inactiva
Proveedor no encontrado
El cuerpo de la solicitud no es un JSON válido
Ningún campo tiene un valor diferente al actual
La categoría no pertenece a la empresa autenticada
La marca no pertenece a la empresa autenticada
El token ha expirado, inicie sesión nuevamente
El formato del id del proveedor no es válido
Error interno del servidor
Notas de uso
Este endpoint no recibe query params.
Envía solo los campos que deseas actualizar.
provctgriaid, provmrcid, provtelefono y provcorreo pueden enviarse como null para limpiar sus valores.
provestado permite el valor eliminado para eliminación lógica del proveedor.
Las relaciones categoria y marca pueden devolverse como null en la respuesta.