Crear o actualizar necesidades

Este endpoint permite actualizar o crear las necesidades de un día.

PUT /api/v1/businesses/{businessId}/products/{productId}/needs/{yyyy-MM-dd}

En la URL de la petición, deben especificarse los siguientes parámetros:

  • Identificador externo del negocio (businessId).

  • Identificador externo del producto o sección (productId).

  • Fecha para la que se crean o actualizan las necesidades en formato yyyy-MM-dd.

A continuación, se enumeran los campos que conforman el cuerpo de la petición, siendo algunos de ellos obligatorios para que esta se realice de manera exitosa.

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

Cuerpo de la petición

Análisis del JSON
[
  {
    "startMinuteDay": 0,
    "duration": 0,
    "location": "string",
    "value": 0,
    "zone": "string"
  }
]
Detalles
  • startMinuteDay*: inicio de la necesidad en minutos a partir de las 00:00. Por ejemplo 600 para las 10:00.

  • duration*: duración del periodo de necesidad en minutos.

  • location*: identificador externo de la tarea vinculada a la necesidad.

  • value*: número de personas necesarias para cubrir la necesidad.

  • zone: identificador externo de la zona. Si no se añade ninguna zona, se utilizará la zona general.

Ejemplo de la petición

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

PUT /api/v1/businesses/BUSINESSID/products/PRODUCTID/needs/2024-07-19
[
  {
    "startMinuteDay": 600,
    "duration": 60,
    "location": "03",
    "value": 5,
    "zone": "General"
  },
  {
    "startMinuteDay": 540,
    "duration": 120,
    "location": "06",
    "value": 2,
    "zone": "General"
  }
]

Si todos los datos de la petición son correctos, se crearán las siguientes necesidades para el día 2024-07-19:

  • Tarea 03: 5 personas a las 10:00 con duración de una hora.

  • Tarea 06: 2 personas a las 9:00 con duración de dos horas.

Aspectos que tener en cuenta

La petición tiene en cuenta la zona horaria de servicio. Por ejemplo, si el servicio está en UTC+2, el campo startMinuteDay considerará ese huso horario.

Si se envía un array vacío ([]), todas las necesidades para ese día se eliminan.

Si la tarea no está registrada en el catálogo de tareas del negocio o no tiene identificador externo, la petición devolverá un error 404 Not Found indicando Location not found.

Si el identificador externo de la zona no se corresponde con ninguna zona del producto, la petición devolverá un error indicando No zone found.

Si no se envía cualquiera de los campos obligatorios, la petición devolverá un error 406 Not Acceptable indicando qué campo falta en el cuerpo de la petición.

Enlaces de interés

¿Qué son las necesidades?

¿Qué es el catálogo de tareas?