# API: Equipamentos

---

- [Index](#index)
- [Store](#store)
- [Start](#start)
- [Finish](#finish)

<a name="index"></a>
## Index

### Endpoint
|Método|URI|Headers|
|:|:-|:|
|GET|`/ordens-instalacao`|Default|

### Body
```json
Empty
```

### Responses
<larecipe-badge type="success" rounded><i class="fa fa-check" style="margin-right:9px"></i>200 - OK</larecipe-badge>
```json
[
    {
        "id": <id>,
        "empresa_id": <empresa_id>,
        "propriedade_id": <propriedade_id>,
        "zona_id": <zona_id>,
        "responsible_user_id": <responsible_user_id>,
        "quantity": <quantity>,
        "installed_quantity": <installed_quantity>,
        "description": <description>,
        "target_date": <target_date>,
        "started_at": <started_at>,
        "finished_at": <finished_at>,
        "active": <active>
    },
    //...
]
```

<larecipe-badge type="danger" rounded><i class="fa fa-lock" style="margin-right:9px"></i>401 - Unauthorized</larecipe-badge>
```json
{
    "message": "Unauthenticated."
}
```

<a name="store"></a>
## Store

### Endpoint
|Método|URI|Headers|
|:|:-|:|
|POST|`/ordens-instalacao`|Default|

### Body
```json
{
    "zona_id": int,
    "quantity": int,
    "description": string,
    "target_date": string(datetime)
}
```

### Responses
<larecipe-badge type="success" rounded><i class="fa fa-check" style="margin-right:9px"></i>201 - Created</larecipe-badge>
```json
{
    "zona_id": <zona_id>,
    "quantity": <quantity>,
    "description": <description>,
    "target_date": <target_date>,
    "propriedade_id": <propriedade_id>,
    "empresa_id": <empresa_id>,
    "id": <id>,
    "active": <active>
}
```

<larecipe-badge type="danger" rounded><i class="fa fa-lock" style="margin-right:9px"></i>401 - Unauthorized</larecipe-badge>
```json
{
    "message": "Unauthenticated."
}
```

<a name="start"></a>
## Start

### Endpoint
|Método|URI|Headers|
|:|:-|:|
|PATCH|`/ordens-instalacao/{ordem_instalacao}/start`|Default|

### Body
```json
{
    "code":  string,
    "tipo": string(enum(['CONCENTRADOR', 'SONDA', 'REPETIDOR', 'MODULOS'])),
    "modelo": string,
    "versao_hardware": string(#.#.#),
    "versao_software": string(#.#.#)
}
```

### Responses
<larecipe-badge type="success" rounded><i class="fa fa-check" style="margin-right:9px"></i>204 - No Content</larecipe-badge>
```json
Empty
```

<larecipe-badge type="warning" rounded><i class="fa fa-exclamation" style="margin-right:9px"></i>422 - Unprocessable Content</larecipe-badge>
```json
{
    "message": "A ordem de instalação já foi iniciada.",
    "errors": {
        "started_at": [
            "A ordem de instalação já foi iniciada."
        ]
    }
}
```

<larecipe-badge type="danger" rounded><i class="fa fa-lock" style="margin-right:9px"></i>401 - Unauthorized</larecipe-badge>
```json
{
    "message": "Unauthenticated."
}
```

<a name="finish"></a>
## Finish

### Endpoint
|Método|URI|Headers|
|:|:-|:|
|PATCH|`/ordens-instalacao/{ordem_instalacao}/finish`|Default|

### Body
```json
Empty
```

### Responses
<larecipe-badge type="success" rounded><i class="fa fa-check" style="margin-right:9px"></i>204 - No Content</larecipe-badge>
```json
Empty
```

<larecipe-badge type="warning" rounded><i class="fa fa-exclamation" style="margin-right:9px"></i>422 - Unprocessable Content</larecipe-badge>
```json
{
    "message": "A ordem de instalação já foi finalizada.",
    "errors": {
        "started_at": [
            "A ordem de instalação já foi finalizada."
        ]
    }
}
```
```json
{
    "message": "Não foram instaladas todas sondas previstas. Instaladas n de n.",
    "errors": {
        "installed_quantity": [
            "Não foram instaladas todas sondas previstas. Instaladas n de n."
        ]
    }
}
```

<larecipe-badge type="danger" rounded><i class="fa fa-lock" style="margin-right:9px"></i>401 - Unauthorized</larecipe-badge>
```json
{
    "message": "Unauthenticated."
}
```