Crear limitaciones de empleado

Este endpoint permite crear limitaciones de empleado para realizar determinadas tareas.

POST /api/v1/business/{businessId}/employees/{employeeId}/locationLimitations

La URL debe contener el identificador de negocio (businessId) y el identificador del empleado (employeeId).

A continuación, se expone una explicación de cada uno de los campos que conforman el cuerpo de la petición.

Los campos obligatorios están marcados con un asterisco (*).

Cuerpo de la petición

Análisis del JSON
{
  "lag": 0,
  "locationLimitations": [
    {
      "id": "string",
      "locationId": "string",
      "product": "string",
      "from": "string",
      "to": "string",
      "zone": "string",
      "location": "string"
    }
  ]
}
Detalles
  • lag*: número de días previos a la fecha actual que se consideran al gestionar la petición.

  • locationLimitations*: listado de limitaciones que se van a definir para el empleado. Cada una de ellas deberá contener los siguientes datos:

    • id: identificador interno de la limitación. No es necesario definirlo, el sistema lo generará automáticamente.

    • locationId: identificador interno de la tarea. No es necesario indicarlo.

    • product*: identificador externo del producto o sección.

    • from*: fecha de inicio del periodo de limitación en formato yyyy-MM-dd.

    • to: fecha de fin del periodo de limitación en formato yyyy-MM-dd. Puede enviarse null si no se conoce la fecha de fin.

    • zone: identificador externo de la zona. Si no se especifica una zona, la limitación se establecerá para la tarea en la zona general.

    • location*: identificador externo de la tarea para la que se establece la limitación.

Ejemplo de la petición

Una vez realizado el análisis de los distintos campos, se muestra un ejemplo de la petición:

POST /api/v1/business/BUSINESSID/employees/EMPLOYEEID/locationLimitations
{
  "lag": 0,
  "locationLimitations": [
    {
      "product": "0001-GENERAL",
      "from": "2025-09-30",
      "to": null,
      "zone": "Z1",
      "location": "01"
    },
    {
      "product": "0001-GENERAL",
      "from": "2025-10-15",
      "to": "2025-10-25",
      "zone": "Z1",
      "location": "02"
    }
  ]
}

Si los datos de la petición son correctos, la petición devolverá un estado 200 OK y se habrán establecido las limitaciones para el empleado en las tareas indicadas.

Consideraciones

Un lag igual a 0 elimina todo el histórico de limitaciones del empleado, no solo las del periodo de la petición: internamente se interpreta como "sin fecha de inicio" para el borrado previo, así que se recomienda encarecidamente enviar siempre un valor positivo salvo que la intención sea vaciar por completo las limitaciones existentes del empleado.

Para visualizar las limitaciones en la interfaz, el empleado debe tener previamente definida la aptitud en esa tarea.

Códigos de error

Además de los errores comunes, este endpoint puede devolver los siguientes códigos:

Código Mensaje Descripción

400 Bad Request

-

El cuerpo de la petición no es un JSON válido o alguno de sus campos no tiene el formato esperado.

406 Not Acceptable

Lag mut be positive or zero

El campo lag es negativo. Se recomienda enviar un valor 0 o positivo. (El literal exacto reproduce una errata del propio backend: "mut" en vez de "must").

Limitations list cannot be null

El campo locationLimitations no puede faltar ni venir vacío.

invalid_to_date

La fecha to de una limitación es anterior a su from.

Enlaces de interés

¿Qué es una tarea? ¿Y la aptitud en una tarea?

¿Qué es el lag en una petición?