Saltearse al contenido

Branches

Tag: branches
Descripción: Operaciones para gestión de sucursales de empresas


  • Descripción: Registra una nueva sucursal para una empresa
  • Operation ID: BranchesController_create
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o ROLE_BRANCH_MANAGER)
{
"name": "Sucursal Centro",
"code": "MAIN-001",
"address": "Av. Principal 123",
"phone": "+1 555 123 4567",
"email": "centro@empresa.com",
"companyId": 1,
"isActive": true
}
CódigoDescripción
201Sucursal creada exitosamente
400Datos de entrada inválidos
401No autorizado
404Empresa no encontrada

2. Listar todas las sucursales (GET /branches)

Sección titulada «2. Listar todas las sucursales (GET /branches)»
  • Descripción: Obtiene todas las sucursales con filtros avanzados
  • Operation ID: BranchesController_findAll
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o ROLE_BRANCH_VIEWER)
ParámetroTipoRequeridoDescripción
pageinteger❌ NoNúmero de página (default: 1)
limitinteger❌ NoLímite por página (default: 20)
companyIdinteger❌ NoFiltrar por ID de empresa
activeOnlyboolean❌ NoFiltrar solo sucursales activas
searchstring❌ NoBuscar por nombre o código
CódigoDescripción
200Lista de sucursales obtenida
401No autorizado

3. Obtener sucursal por ID (GET /branches/:id)

Sección titulada «3. Obtener sucursal por ID (GET /branches/:id)»
  • Descripción: Obtiene los detalles completos de una sucursal específica
  • Operation ID: BranchesController_findOne
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o ROLE_BRANCH_VIEWER)
ParámetroTipoDescripción
idintegerID de la sucursal
CódigoDescripción
200Sucursal obtenida exitosamente
401No autorizado
404Sucursal no encontrada

4. Actualizar sucursal (PATCH /branches/:id)

Sección titulada «4. Actualizar sucursal (PATCH /branches/:id)»
  • Descripción: Actualiza los datos de una sucursal existente
  • Operation ID: BranchesController_update
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o ROLE_BRANCH_MANAGER)
ParámetroTipoDescripción
idintegerID de la sucursal
{
"phone": "+1 555 987 6543",
"email": "nuevoemail@empresa.com",
"isActive": false
}
CódigoDescripción
200Sucursal actualizada exitosamente
400Datos de entrada inválidos
401No autorizado
404Sucursal no encontrada

  • Descripción: Desactiva una sucursal (soft delete)
  • Operation ID: BranchesController_remove
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN)
ParámetroTipoDescripción
idintegerID de la sucursal
CódigoDescripción
204Sucursal desactivada exitosamente
401No autorizado
404Sucursal no encontrada
409Sucursal no puede ser desactivada (tiene usuarios asignados)

6. Obtener usuarios de sucursal (GET /branches/:id/users)

Sección titulada «6. Obtener usuarios de sucursal (GET /branches/:id/users)»
  • Descripción: Lista todos los usuarios asociados a una sucursal
  • Operation ID: BranchesController_findBranchUsers
  • Autenticación requerida: 🔒 Sí (ROLE_ADMIN o ROLE_BRANCH_MANAGER)
ParámetroTipoDescripción
idintegerID de la sucursal
CódigoDescripción
200Usuarios obtenidos exitosamente
401No autorizado
404Sucursal no encontrada

MétodoEndpointDescripciónPermiso Requerido
POST/branchesCrear nueva sucursalROLE_ADMIN/BRANCH_MANAGER
GET/branchesListar todas las sucursalesROLE_ADMIN/BRANCH_VIEWER
GET/branches/:idObtener sucursal por IDROLE_ADMIN/BRANCH_VIEWER
PATCH/branches/:idActualizar sucursalROLE_ADMIN/BRANCH_MANAGER
DELETE/branches/:idDesactivar sucursalROLE_ADMIN
GET/branches/:id/usersObtener usuarios de la sucursalROLE_ADMIN/BRANCH_MANAGER
interface Branch {
id: number;
name: string;
code: string;
address: string;
phone: string;
email: string;
isActive: boolean;
companyId: number;
createdAt: string; // ISO 8601
updatedAt: string; // ISO 8601
deletedAt: string | null; // ISO 8601
company?: Company; // Relación opcional
users?: User[]; // Relación opcional
}
{
"id": 1,
"name": "Sucursal Centro",
"code": "MAIN-001",
"address": "Av. Principal 123",
"phone": "+1 555 123 4567",
"email": "centro@empresa.com",
"isActive": true,
"companyId": 1,
"createdAt": "2023-02-10T09:15:00.000Z",
"updatedAt": "2023-05-18T14:30:00.000Z",
"deletedAt": null,
"company": {
"id": 1,
"name": "Empresa Principal"
},
"users": [
{
"id": 101,
"name": "Gerente Sucursal",
"email": "gerente@empresa.com"
}
]
}
  1. Datos requeridos:

    • Nombre, código y companyId son obligatorios
    • Código debe ser único por empresa
  2. Formatos:

    • Email debe ser válido (opcional)
    • Teléfono debe seguir formato internacional (opcional)
  3. Restricciones:

    • No se puede eliminar una sucursal con usuarios asignados
    • Solo ciertos roles pueden modificar/eliminar sucursales
    • El código no puede modificarse después de creación