# Asignar horario semanal de forma masiva

Permite asignar el horario laboral de toda la semana, pisando el horario actual para uno o varios dispositivos.

<mark style="color:green;">`POST`</mark> `https://api.persat.com.ar/v1/working-hours`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json |
| Authorization<mark style="color:red;">\*</mark> | string | Bearer API\_KEY  |

#### Request Body

<table><thead><tr><th width="254">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>devices_ids<mark style="color:red;">*</mark></td><td>Array de numbers</td><td>Identificadores de los dispositivos.</td></tr><tr><td>working_hours<mark style="color:red;">*</mark></td><td>Object</td><td>Objeto Json con 7 campos. Cada uno indicando el horario laboral para cada día de la semana</td></tr><tr><td>working_hours.monday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.tuesday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.wednesday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.thursday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.friday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.saturday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr><tr><td>working_hours.sunday<mark style="color:red;">*</mark></td><td>array de Objetos JSON</td><td>Ver ejemplo de request más abajo</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK" %}

```json
{
    "success": true,
    "data": {}
}
```

{% endtab %}

{% tab title="400 BAD REQUEST" %}

```json
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "\"monday\" is required"
    }
}
```

{% endtab %}

{% tab title="404 device NOT FOUND" %}

```json
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe un device con este id: 144545"
    }
}
```

{% endtab %}
{% endtabs %}

### Ejemplo de Request

Ejemplo de body, en donde indicamos que los dos únicos días laborales son el lunes y el martes para los dispositivos 14 y 15 únicamente.

```json
{
    "devices_ids": [14,15],
    "working_hours": {
        "monday": [
            {
                "start": "09:33",
                "end": "11:01"
            }
        ],
        "tuesday": [
            {
                "start": "12:33",
                "end": "23:59"
            }
        ],
        "wednesday": [],
        "thursday": [],
        "friday": [],
        "saturday": [],
        "sunday": [
            {
                "start": "15:11",
                "end": "18:22"
            }
        ]   
    }
}
```

{% hint style="success" %}
Los campos de este body se explican con más detalle en [Asignar horario semanal](/entidades-basicas/dispositivos/asignar-horario-laboral/asignar-horario-semanal.md)
{% endhint %}

{% hint style="danger" %}
La consulta se realiza con éxito solo si se pudo asignar los horarios a todos los dispositivos mencionados en el request. Si por alguna razón no se pudo actualizar el horario de algún dispositivo, entonces toda la consulta se da por fallida y por ende no se modifica ningún horario de ningún dispositivo.

Prestar especial atención a que los dispositivos existan. Se puede verificar primero el endpoint \
[Listar Dispositivos](/entidades-basicas/dispositivos/listar-dispositivos.md)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.api.persat.com.ar/entidades-basicas/dispositivos/asignar-horario-laboral/asignar-horario-semanal-de-forma-masiva.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
