Endpoints de Lotes (Produção)
Visão Geral
Seção intitulada “Visão Geral”Os endpoints de Lotes permitem gerenciar ciclos de produção de camarão com:
- Rastreamento automatizado de biometria
- Cálculo de FCA (Fator de Conversão Alimentar)
- Análise de curva de crescimento (real vs esperado)
- Ajuste de taxa de sobrevivência baseado em IA
- Estimativa de biomassa
Objeto Lote
Seção intitulada “Objeto Lote”{ "id": "550e8400-e29b-41d4-a716-446655440000", "pond_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "batch_code": "LOTE-2026-001", "species": "Litopenaeus vannamei", "lineage": "string", "larva_origin": "string", "start_date": "2026-02-24", "expected_harvest_date": "2026-04-08T00:00:00Z", "actual_harvest_date": null, "initial_count": 0, "initial_avg_weight": 0, "initial_density": 0, "estimated_survival_rate": 85, "status": "ACTIVE", "notes": "Lote de pós-larvas de alta qualidade", "created_at": "2026-01-08T10:30:00Z"}Status do Lote
Seção intitulada “Status do Lote”| Status | Descrição |
|---|---|
ACTIVE | Lote atualmente em produção |
FINISHED | Lote concluído com sucesso |
ABORTED | Lote terminado prematuramente |
POST /batches/
Seção intitulada “POST /batches/”Cria um novo lote de produção.
Headers
Seção intitulada “Headers”Authorization: Bearer <token>Body da Requisição
Seção intitulada “Body da Requisição”{ "pond_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "batch_code": "string", "species": "Litopenaeus vannamei", "lineage": "string", "larva_origin": "string", "start_date": "2026-02-24", "initial_count": 0, "initial_avg_weight": 0, "initial_density": 0, "estimated_survival_rate": 85, "notes": "string"}Parâmetros
Seção intitulada “Parâmetros”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pond_id | UUID | ✅ | Viveiro para este lote |
batch_code | string | ✅ | Código identificador único do lote |
species | string | ✅ | Espécie do camarão (ex: “Litopenaeus vannamei”) |
lineage | string | ✅ | Linhagem genética do lote |
larva_origin | string | ✅ | Origem das larvas |
start_date | string | ✅ | Data de início do lote (formato: YYYY-MM-DD) |
initial_count | integer | ✅ | Contagem inicial de camarões |
initial_avg_weight | float | ✅ | Peso médio inicial (gramas) |
initial_density | float | ✅ | Densidade inicial (camarões/m²) |
estimated_survival_rate | float | ❌ | Taxa de sobrevivência estimada % (padrão: 85) |
notes | string | ❌ | Notas adicionais |
Resposta 201 Created
Seção intitulada “Resposta 201 Created”Retorna o objeto do lote criado.
GET /batches/
Seção intitulada “GET /batches/”Lista todos os lotes.
Headers
Seção intitulada “Headers”Authorization: Bearer <token>Parâmetros de Query
Seção intitulada “Parâmetros de Query”| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pond_id | UUID | ❌ | Filtrar por viveiro |
status | string | ❌ | Filtrar por status (ACTIVE, FINISHED, ABORTED) |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”Retorna array de objetos de lote.
GET /batches/{batch_id}
Seção intitulada “GET /batches/{batch_id}”Obtém detalhes do lote com a biometria mais recente.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "id": "batch-uuid", "pond_id": "pond-uuid", "batch_code": "LOTE-2026-001", "species": "Litopenaeus vannamei", "start_date": "2026-01-08", "status": "ACTIVE", "current_biomass_kg": 1062.5, "current_fca": 1.45, "latest_biometry": { "measurement_date": "2026-01-15T00:00:00Z", "average_weight_g": 5.0, "sample_size": 100 }}PUT /batches/{batch_id}
Seção intitulada “PUT /batches/{batch_id}”Atualiza detalhes do lote.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Body da Requisição
Seção intitulada “Body da Requisição”Todos os campos são opcionais:
{ "expected_harvest_date": "2026-04-15T00:00:00Z", "survival_rate": 82.0, "notes": "Taxa de sobrevivência ajustada após evento"}Resposta 200 OK
Seção intitulada “Resposta 200 OK”Retorna o objeto do lote atualizado.
POST /batches/{batch_id}/finish
Seção intitulada “POST /batches/{batch_id}/finish”Finaliza um lote (despesca).
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Body da Requisição
Seção intitulada “Body da Requisição”{ "actual_harvest_date": "2026-04-10T00:00:00Z", "final_weight_kg": 1250.5, "notes": "Despesca bem-sucedida"}Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "id": "batch-uuid", "status": "FINISHED", "actual_harvest_date": "2026-04-10T00:00:00Z", "total_days": 92, "final_fca": 1.42}GET /batches/{batch_id}/growth-curve
Seção intitulada “GET /batches/{batch_id}/growth-curve”Obtém análise de curva de crescimento (real vs esperado).
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "batch_id": "batch-uuid", "batch_code": "LOTE-2026-001", "days_active": 7, "data_points": [ { "day": 0, "real_weight_g": 0.5, "expected_weight_g": 0.5 }, { "day": 7, "real_weight_g": 5.0, "expected_weight_g": 1.55 } ], "performance": "ABOVE_EXPECTED"}GET /batches/{batch_id}/stats
Seção intitulada “GET /batches/{batch_id}/stats”Obtém estatísticas e métricas chave do lote.
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "batch_id": "batch-uuid", "days_active": 7, "estimated_biomass_kg": 1062.5, "current_fca": 1.45, "survival_rate": 85.0, "growth_rate_g_per_day": 0.64, "total_feed_kg": 150.0}Métricas Calculadas
Seção intitulada “Métricas Calculadas”- FCA (Fator de Conversão Alimentar):
FCA = Ração Total / (Biomassa Final - Biomassa Inicial) - Estimativa de Biomassa:
(população × taxa_sobrevivência% × peso_médio_g) / 1000 - Taxa de Crescimento: Ganho de peso diário em gramas
POST /batches/{batch_id}/adjust-survival
Seção intitulada “POST /batches/{batch_id}/adjust-survival”Ajusta taxa de sobrevivência baseado em evento (doença, mortalidade, etc.).
Body da Requisição
Seção intitulada “Body da Requisição”{ "event_description": "Surto de doença detectado", "severity": 0.7}Parâmetros
Seção intitulada “Parâmetros”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
event_description | string | ✅ | Descrição do evento |
severity | float | ✅ | Gravidade (0.0 a 1.0) |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "batch_id": "batch-uuid", "old_survival_rate": 85.0, "new_survival_rate": 78.5, "adjustment": -6.5, "event_description": "Surto de doença detectado"}Fluxo de Trabalho Típico
Seção intitulada “Fluxo de Trabalho Típico”- Criar Lote -
POST /batches/ao iniciar novo ciclo - Registrar Biometrias - Adicionar medições semanais
- Monitorar Crescimento -
GET /batches/{id}/growth-curve - Ajustar Sobrevivência - Se houver eventos de mortalidade
- Analisar Estatísticas -
GET /batches/{id}/stats - Finalizar Lote -
POST /batches/{id}/finishna despesca
GET /batches/{batch_id}/growth-analysis
Seção intitulada “GET /batches/{batch_id}/growth-analysis”Obtém análise detalhada de crescimento incluindo métricas de desempenho.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "batch_id": "batch-uuid", "batch_code": "LOTE-2026-001", "analysis": { "total_days": 45, "initial_weight_g": 0.5, "current_weight_g": 12.8, "weight_gain_g": 12.3, "adg": 0.27, "expected_adg": 0.15, "performance_percentage": 180.0, "projected_harvest_weight_g": 25.0, "projected_harvest_date": "2026-04-08T00:00:00Z" }, "recommendations": [ "Taxa de crescimento está acima do esperado. Considere manter o regime de alimentação atual.", "Projeção de alcançar peso de despesca 7 dias antes do programado." ]}Campos de Análise
Seção intitulada “Campos de Análise”| Campo | Descrição |
|---|---|
adg | Ganho Diário Médio (g/dia) |
performance_percentage | Crescimento real vs esperado (%) |
projected_harvest_weight_g | Peso estimado na despesca |
projected_harvest_date | Data estimada de despesca baseada no crescimento atual |
GET /batches/{batch_id}/growth-chart
Seção intitulada “GET /batches/{batch_id}/growth-chart”Obtém dados formatados para visualização de gráfico de crescimento.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Nome | Tipo | Descrição |
|---|---|---|
batch_id | UUID | Identificador do lote |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "batch_id": "batch-uuid", "batch_code": "LOTE-2026-001", "chart_data": { "labels": ["Dia 0", "Dia 7", "Dia 14", "Dia 21", "Dia 28", "Dia 35", "Dia 42"], "datasets": [ { "label": "Peso Real (g)", "data": [0.5, 1.2, 2.5, 4.0, 6.5, 9.0, 12.8], "borderColor": "#22c55e", "fill": false }, { "label": "Peso Esperado (g)", "data": [0.5, 1.55, 2.6, 3.65, 4.7, 5.75, 6.8], "borderColor": "#3b82f6", "borderDash": [5, 5], "fill": false } ] }, "summary": { "above_expected": true, "variance_percentage": 88.2 }}