Endpoints / Sucursales

PATCH

Actualizar sucursal

Actualiza parcialmente los datos editables de una sucursal de la empresa del usuario autenticado.

PATCH/branches/:id

Caso de Uso

Se usa cuando la aplicación necesita modificar el nombre, dirección, correo, identificador o estado de una sucursal existente. Al usarlo, el usuario obtiene la sucursal actualizada con sus datos vigentes.

Autenticación

Requiere token JWT en el header `Authorization: Bearer <token>`.

Parámetros de ruta

idstringobligatorio

Identificador de la sucursal.

Body

sunombrestring opcional

Nuevo nombre de la sucursal.

sudireccionstring | null opcional

Nueva dirección física de la sucursal; puede enviarse como null.

sucorreostring | null opcional

Nuevo correo electrónico de contacto; puede enviarse como null.

suidentificadorstring opcional

Nuevo código único de 3 dígitos para identificar la sucursal dentro de la empresa.

suestadostring opcional

Nuevo estado de la sucursal; acepta activo o inactivo.

Reglas de negocio

1

Solo un usuario con rol jefe puede actualizar sucursales.

2

Solo permite actualizar sucursales de la empresa del usuario autenticado.

3

La empresa del usuario autenticado debe estar activa.

4

El usuario autenticado debe estar activo.

5

La sucursal debe existir dentro de la empresa autenticada.

6

Una sucursal con estado eliminado no puede actualizarse.

7

Debe enviarse al menos un campo editable con un valor diferente al actual.

8

Si se envía sunombre, no puede estar vacío.

9

Si se envía sudireccion como texto, no puede estar vacía.

10

Si se envía sucorreo como texto, debe tener formato de correo válido.

11

Si se envía suidentificador, debe tener exactamente 3 dígitos.

12

suidentificador no puede repetirse en otra sucursal de la misma empresa.

13

Si se envía suestado, solo puede ser activo o inactivo.

Errores esperados

401No autorizado

No se envió un token JWT válido o el token no contiene información válida del usuario.

400El id de sucursal es requerido

No se envió el parámetro id en la ruta.

404Sucursal no encontrada

La actualización no devolvió una sucursal actualizada.

500El nombre de sucursal es requerido

sunombre fue enviado vacío.

500La dirección de sucursal es requerida

sudireccion fue enviada como texto vacío.

500El correo de sucursal es requerido

sucorreo fue enviado como texto vacío.

500El correo de sucursal debe ser válido

sucorreo fue enviado, pero no tiene formato de correo válido.

500El identificador de sucursal es requerido

suidentificador fue enviado vacío.

500El identificador de sucursal debe ser exactamente 3 digitos

suidentificador no cumple el formato de 3 dígitos.

500El estado de sucursal es requerido

suestado fue enviado vacío.

500El estado de sucursal debe ser activo, inactivo o eliminado

suestado tiene un valor no permitido.

500Al menos un campo es requerido para actualizar la sucursal

No se envió ningún campo editable o todos los valores enviados son iguales a los actuales.

500Sucursal no encontrada

La sucursal no existe o no pertenece a la empresa autenticada.

500La sucursal eliminada no puede ser actualizada

La sucursal existe, pero está en estado eliminado.

500Ya existe una sucursal con ese identificador

Otra sucursal de la misma empresa ya usa el suidentificador enviado.

500La empresa no existe

La empresa asociada al usuario autenticado no fue encontrada.

500La empresa no está activa

La empresa asociada al usuario autenticado está inactiva.

500El usuario no existe

El usuario autenticado no fue encontrado dentro de su empresa.

500El usuario no pertenece a la empresa

El usuario autenticado no pertenece a la empresa indicada por su sesión.

500El usuario no puede crear sucursales para otra empresa

El usuario autenticado intentó operar sobre una empresa distinta a la suya.

500El usuario no es jefe, empleado o administrador

El rol del usuario no está permitido para acceder al módulo de sucursales.

500El usuario no es jefe

El usuario autenticado no tiene el rol requerido para actualizar sucursales.

500El usuario no está activo

El usuario autenticado está inactivo y no puede usar el sistema.

500Error updating branch by id

Ocurrió un error interno al actualizar la sucursal.

Notas de uso

1

Este endpoint no recibe query params.

2

Envía solo los campos que deseas actualizar.

3

El body debe incluir al menos un campo editable con un valor distinto al actual.

4

sudireccion y sucorreo pueden enviarse como null para limpiar esos datos.

5

suidentificador debe enviarse como texto para conservar ceros iniciales, por ejemplo "002".

6

Aunque el mensaje de validación menciona eliminado, la validación actual solo acepta activo o inactivo para suestado.