---
# System prepended metadata

title: Agenda - Filtro de disponibilidade do vistoriador (Eventos recorrentes).

---

# Agenda - Filtro de disponibilidade do vistoriador (Eventos recorrentes).

## Cadastro

### API
```
{
  "monday": [
      {
          "start_time": "08:00",
          "end_time": "11:00"
      },
      {
          "start_time": "14:00",
          "end_time": "16:00"
      }
  ],
  ...
}
```

### Backend
- Usar coluna do tipo time.
- Sem soft-delete
- Criar carga inicial (script)

#### DB
**Table:** inspector_availability
**Colunas:**
- id
- inspector_id
- weekday
- start_time
- end_time

#### Endpoint
**GET /inspectors/<public_id>/availability**
```
{
  "monday": [
      {
          "start_time": "08:00",
          "end_time": "11:00"
      },
      {
          "start_time": "14:00",
          "end_time": "16:00"
      }
  ],
  ...
}
```
**POST /inspectors/<public_id>/availability**
```
{
  "monday": [
      {
          "start_time": "08:00",
          "end_time": "11:00"
      },
      {
          "start_time": "14:00",
          "end_time": "16:00"
      }
  ],
  ...
}
```


## Uso - Agenda

**Premissas**
- Avisar quando o horario esta indisponivel, porém dar a opção de agendar mesmo assim.
- Destacar horarios disponiveis na timeline.


**GET /assignables**

```
[
    {
        "public_id": "8755f88a-f7bd-429f-a78a-f27a0ba93673",
        "name": "Charles Ramos",
        "status": "OK",
        "filters": {
            "orderTypes": [7, ...],
            "addresses": [13939, ...]
        },
        "availability": {
          "monday": [
              {
                  "start_time": "08:00",
                  "end_time": "11:00"
              },
              {
                  "start_time": "14:00",
                  "end_time": "16:00"
              }
          ],
          ...
        }
    },
    ...
]
```

# Agenda - Uso concorrente

## TODOS
- Brainstorn: qual a melhor solução?
- Spike: qual a viabilidade da solução?