Pular para o conteúdo

Endpoints de Viveiros

Todos os endpoints de viveiros requerem autenticação.

Authorization: Bearer <token>

TipoDescrição
NURSERYBerçário
FATTENINGEngorda

Cria um novo viveiro em uma fazenda.

POST /api/v1/ponds/
Authorization: Bearer <token>
Content-Type: application/json
{
"farm_id": "farm-uuid",
"cod": "VV-01",
"pond_type": "FATTENING",
"size_m2": 5000,
"depth_m": 2,
"lat": "-23.550520",
"lng": "-46.633308",
"aerator_count": 4,
"control_point_id": "cp-uuid"
}
CampoTipoObrigatórioPadrãoDescrição
farm_idUUID-ID da fazenda
codstring-Código identificador do viveiro (ex: VV-01)
pond_typeenum-Tipo do viveiro (NURSERY ou FATTENING)
size_m2integer-Tamanho em metros quadrados
depth_minteger-Profundidade em metros
latstring-Latitude
lngstring-Longitude
aerator_countinteger0Quantidade de aeradores
control_point_idUUID-ID do ponto de controle associado
{
"id": "pond-uuid",
"farm_id": "farm-uuid",
"cod": "VV-01",
"pond_type": "FATTENING",
"size_m2": 5000,
"depth_m": 2,
"lat": "-23.550520",
"lng": "-46.633308",
"aerator_count": 4,
"control_point_id": "cp-uuid",
"created_at": "2025-11-21T10:30:00Z",
"updated_at": null
}
StatusDetalhe
403Sem permissão para criar viveiro nesta fazenda
400Erro de validação

Lista viveiros (opcionalmente filtrados por fazenda).

GET /api/v1/ponds/
Authorization: Bearer <token>
ParâmetroTipoObrigatórioDescrição
farm_idUUIDFiltra viveiros por ID da fazenda
GET /api/v1/ponds/
GET /api/v1/ponds/?farm_id=550e8400-e29b-41d4-a716-446655440000
[
{
"id": "pond-uuid-1",
"farm_id": "farm-uuid",
"cod": "VV-01",
"pond_type": "FATTENING",
"size_m2": 5000,
"aerator_count": 4,
"control_point_id": "cp-uuid"
},
{
"id": "pond-uuid-2",
"farm_id": "farm-uuid",
"cod": "VV-02",
"pond_type": "NURSERY",
"size_m2": 2000,
"aerator_count": 2,
"control_point_id": null
}
]

Obtém detalhes de um viveiro específico.

ParâmetroTipoDescrição
pond_idUUIDID do viveiro
GET /api/v1/ponds/pond-uuid
Authorization: Bearer <token>
{
"id": "pond-uuid",
"farm_id": "farm-uuid",
"cod": "VV-01",
"pond_type": "FATTENING",
"size_m2": 5000,
"depth_m": 2,
"lat": "-23.550520",
"lng": "-46.633308",
"aerator_count": 4,
"control_point_id": "cp-uuid",
"created_at": "2025-11-21T10:30:00Z",
"updated_at": null
}
StatusDetalhe
404Viveiro não encontrado

Atualiza os detalhes de um viveiro.

ParâmetroTipoDescrição
pond_idUUIDID do viveiro
PUT /api/v1/ponds/pond-uuid
Authorization: Bearer <token>
Content-Type: application/json
{
"cod": "VV-01-UPDATED",
"size_m2": 6000,
"depth_m": 2.5,
"control_point_id": "new-cp-uuid"
}

Todos os campos são opcionais:

CampoTipoDescrição
codstringNovo código do viveiro
pond_typeenumNovo tipo do viveiro
size_m2integerNovo tamanho em m²
depth_mintegerNova profundidade em metros
latstringNova latitude
lngstringNova longitude
aerator_countintegerNova quantidade de aeradores
control_point_idUUIDNovo ponto de controle associado

Retorna o objeto do viveiro atualizado.

StatusDetalhe
404Viveiro não encontrado ou sem permissão

Exclui um viveiro.

ParâmetroTipoDescrição
pond_idUUIDID do viveiro
DELETE /api/v1/ponds/pond-uuid
Authorization: Bearer <token>

Sem corpo de resposta.

StatusDetalhe
404Viveiro não encontrado ou sem permissão

Obtém cards de resumo para todos os viveiros com métricas chave.

GET /api/v1/ponds/summary-cards?farm_id={farm_id}
Authorization: Bearer <token>
ParâmetroTipoObrigatórioDescrição
farm_idUUIDFiltrar por fazenda
{
"ponds": [
{
"pond_id": "pond-uuid-1",
"cod": "VV-01",
"pond_type": "FATTENING",
"active_batch": {
"id": "batch-uuid",
"batch_number": "LOTE-2026-001",
"days_active": 45,
"current_biomass_kg": 850.0,
"average_weight_g": 12.8,
"survival_rate": 85.0
},
"water_quality": {
"last_measurement": "2026-02-19T06:00:00Z",
"temperature": 28.5,
"dissolved_oxygen": 5.2,
"ph": 7.8,
"alerts_count": 0
},
"status": "ACTIVE"
},
{
"pond_id": "pond-uuid-2",
"cod": "VV-02",
"pond_type": "NURSERY",
"active_batch": null,
"water_quality": null,
"status": "EMPTY"
}
],
"summary": {
"total_ponds": 2,
"active_ponds": 1,
"empty_ponds": 1,
"total_biomass_kg": 850.0
}
}

Obtém card de resumo detalhado para um viveiro específico.

ParâmetroTipoDescrição
pond_idUUIDID do viveiro
GET /api/v1/ponds/{pond_id}/summary-card
Authorization: Bearer <token>
{
"pond_id": "pond-uuid",
"cod": "VV-01",
"pond_type": "FATTENING",
"size_m2": 5000,
"depth_m": 2,
"aerator_count": 4,
"active_batch": {
"id": "batch-uuid",
"batch_number": "LOTE-2026-001",
"start_date": "2026-01-08T00:00:00Z",
"expected_harvest_date": "2026-04-08T00:00:00Z",
"days_active": 45,
"initial_population": 250000,
"current_population": 212500,
"current_biomass_kg": 850.0,
"average_weight_g": 12.8,
"survival_rate": 85.0,
"fca": 1.45
},
"latest_biometry": {
"date": "2026-02-15T10:00:00Z",
"average_weight_g": 12.8,
"sample_size": 100,
"coefficient_variation": 14.5
},
"latest_water_quality": {
"date": "2026-02-19T06:00:00Z",
"temperature": 28.5,
"dissolved_oxygen": 5.2,
"ph": 7.8,
"ammonia": 0.05,
"nitrite": 0.02
},
"feeding_today": {
"total_kg": 25.0,
"feeds_count": 3,
"last_feed": "2026-02-19T14:00:00Z"
},
"active_alerts": [],
"control_point": {
"id": "cp-uuid",
"name": "Controlador A",
"status": "ONLINE"
}
}