Endpoints de Fazendas
Todos os endpoints de fazendas requerem autenticação.
Authorization: Bearer <token>POST /farms/{user_id}
Seção intitulada “POST /farms/{user_id}”Cria uma nova fazenda para um usuário específico.
Parâmetros de URL
Seção intitulada “Parâmetros de URL”| Parâmetro | Tipo | Descrição |
|---|---|---|
user_id | UUID | ID do usuário para criar a fazenda |
Requisição
Seção intitulada “Requisição”POST /api/v1/farms/{user_id}Authorization: Bearer <token>Content-Type: application/json{ "name": "Fazenda Beta", "description": "Fazenda secundária", "address": { "street": "Rodovia CE-040", "number": 1500, "city": "Aquiraz", "state": "CE", "zip_code": "61700-000", "country": "Brazil", "lat": "-3.897610", "lng": "-38.387821" }}Parâmetros do Body
Seção intitulada “Parâmetros do Body”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ✅ | Nome da fazenda |
description | string | ❌ | Descrição da fazenda |
address | object | ❌ | Endereço da fazenda com lat/lng |
Resposta 201 Created
Seção intitulada “Resposta 201 Created”{ "id": "farm-uuid", "name": "Fazenda Beta", "description": "Fazenda secundária", "owner_id": "user-uuid", "address_id": "address-uuid", "created_at": "2025-11-21T10:30:00Z", "updated_at": null}Possíveis Erros
Seção intitulada “Possíveis Erros”| Status | Detalhe |
|---|---|
403 | Não autorizado a criar fazenda para outro usuário |
GET /farms/
Seção intitulada “GET /farms/”Lista todas as fazendas do usuário atual.
Requisição
Seção intitulada “Requisição”GET /api/v1/farms/Authorization: Bearer <token>Resposta 200 OK
Seção intitulada “Resposta 200 OK”[ { "id": "farm-uuid-1", "name": "Fazenda Alpha", "owner_id": "user-uuid", "created_at": "2025-11-21T10:30:00Z" }, { "id": "farm-uuid-2", "name": "Fazenda Beta", "owner_id": "user-uuid", "created_at": "2025-11-21T12:00:00Z" }]GET /farms/{farm_id}
Seção intitulada “GET /farms/{farm_id}”Obtém detalhes de uma fazenda específica.
Requisição
Seção intitulada “Requisição”GET /api/v1/farms/farm-uuidAuthorization: Bearer <token>Parâmetros de URL
Seção intitulada “Parâmetros de URL”| Parâmetro | Tipo | Descrição |
|---|---|---|
farm_id | UUID | ID da fazenda |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "id": "farm-uuid", "name": "Fazenda Alpha", "description": "Fazenda principal de produção", "lat": "-23.550520", "lng": "-46.633308", "owner_id": "user-uuid", "ponds": [ { "id": "pond-uuid", "cod": "POND-001", "pond_type": "fattening" } ], "created_at": "2025-11-21T10:30:00Z"}PUT /farms/{farm_id}
Seção intitulada “PUT /farms/{farm_id}”Atualiza os detalhes de uma fazenda.
Requisição
Seção intitulada “Requisição”PUT /api/v1/farms/farm-uuidAuthorization: Bearer <token>Content-Type: application/json{ "name": "Fazenda Alpha Atualizada", "description": "Descrição atualizada", "lat": "-23.550520", "lng": "-46.633308"}Parâmetros do Body
Seção intitulada “Parâmetros do Body”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ❌ | Novo nome da fazenda |
description | string | ❌ | Nova descrição |
lat | string | ❌ | Nova latitude |
lng | string | ❌ | Nova longitude |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "id": "farm-uuid", "name": "Fazenda Alpha Atualizada", "description": "Descrição atualizada", "lat": "-23.550520", "lng": "-46.633308", "owner_id": "user-uuid"}DELETE /farms/{farm_id}
Seção intitulada “DELETE /farms/{farm_id}”Exclui uma fazenda e todos os recursos relacionados.
Requisição
Seção intitulada “Requisição”DELETE /api/v1/farms/farm-uuidAuthorization: Bearer <token>Resposta 204 No Content
Seção intitulada “Resposta 204 No Content”Sem corpo de resposta.
Possíveis Erros
Seção intitulada “Possíveis Erros”| Status | Detalhe |
|---|---|
404 | Fazenda não encontrada ou sem permissão |