localgreenchain/docs/api/vertical-farming-api.md
Claude 4111c3acf1
Add complete documentation suite for LocalGreenChain
- Add guides: quick-start, installation, configuration, grower, consumer, transport, vertical-farm
- Add API references: REST, demand, vertical-farming
- Add concepts: blockchain, seasonal-planning, carbon-footprint
- Add architecture: data-flow, transport-tracking
- Add vertical-farming: environmental-control, automation, integration
- Add examples: seed-to-harvest, demand-driven-planting, vertical-farm-setup

Completes Agent_5 documentation tasks from AGENT_REPORT.md
2025-11-22 18:48:42 +00:00

523 lines
8.9 KiB
Markdown

# Vertical Farming API Reference
Complete API reference for the LocalGreenChain Vertical Farming system.
## Overview
The Vertical Farming API enables:
- Farm registration and management
- Zone configuration and monitoring
- Crop batch lifecycle management
- Environment tracking and alerts
- Analytics and reporting
---
## Farm Management
### Register Farm
```http
POST /api/vertical-farm/register
Content-Type: application/json
{
"name": "Urban Greens VF",
"ownerId": "owner-123",
"location": {
"latitude": 40.7128,
"longitude": -74.0060,
"address": "123 Industrial Blvd",
"city": "Brooklyn",
"country": "USA",
"timezone": "America/New_York"
},
"specs": {
"totalAreaSqm": 500,
"growingAreaSqm": 400,
"numberOfLevels": 4,
"ceilingHeightM": 4,
"totalGrowingPositions": 5000,
"currentActivePlants": 0,
"powerCapacityKw": 150,
"waterStorageL": 10000,
"backupPowerHours": 24,
"certifications": ["gap", "local_food_safety"],
"buildingType": "warehouse",
"insulation": "high_efficiency"
},
"automationLevel": "semi_automated"
}
```
Response:
```json
{
"success": true,
"data": {
"id": "farm-abc123",
"name": "Urban Greens VF",
"status": "operational",
"createdAt": "2024-06-01T10:00:00Z"
}
}
```
### Get Farm
```http
GET /api/vertical-farm/{farmId}
```
### Update Farm
```http
PUT /api/vertical-farm/{farmId}
Content-Type: application/json
{
"status": "maintenance",
"specs": {
"currentActivePlants": 4500
}
}
```
### List User Farms
```http
GET /api/vertical-farm?ownerId=owner-123
```
---
## Zone Management
### Create Zone
```http
POST /api/vertical-farm/{farmId}/zones
Content-Type: application/json
{
"name": "Zone A - Leafy Greens",
"level": 1,
"areaSqm": 100,
"lengthM": 20,
"widthM": 5,
"growingMethod": "NFT",
"plantPositions": 1200,
"environmentTargets": {
"temperatureC": { "min": 18, "max": 24, "target": 21 },
"humidityPercent": { "min": 55, "max": 75, "target": 65 },
"co2Ppm": { "min": 800, "max": 1400, "target": 1000 },
"lightPpfd": { "min": 200, "max": 400, "target": 300 },
"lightHours": 16,
"nutrientEc": { "min": 1.2, "max": 1.8, "target": 1.5 },
"nutrientPh": { "min": 5.5, "max": 6.5, "target": 6.0 },
"waterTempC": { "min": 18, "max": 22, "target": 20 }
}
}
```
Response:
```json
{
"success": true,
"data": {
"id": "zone-abc123",
"name": "Zone A - Leafy Greens",
"status": "empty"
}
}
```
### Get Zones
```http
GET /api/vertical-farm/{farmId}/zones
```
### Get Zone Details
```http
GET /api/vertical-farm/{farmId}/zones/{zoneId}
```
### Update Zone
```http
PUT /api/vertical-farm/{farmId}/zones/{zoneId}
Content-Type: application/json
{
"status": "preparing",
"environmentTargets": { ... }
}
```
---
## Growing Recipes
### List Recipes
```http
GET /api/vertical-farm/recipes
```
Response:
```json
{
"success": true,
"data": [
{
"id": "recipe-lettuce-butterhead",
"name": "Butterhead Lettuce - Fast Cycle",
"cropType": "lettuce",
"variety": "butterhead",
"version": "1.0",
"expectedDays": 35,
"expectedYieldGrams": 180,
"expectedYieldPerSqm": 4000,
"requirements": {
"positions": 1,
"zoneType": "NFT",
"minimumPpfd": 200,
"idealTemperatureC": 21
},
"source": "internal",
"rating": 4.5,
"timesUsed": 156
}
]
}
```
### Get Recipe Details
```http
GET /api/vertical-farm/recipes/{recipeId}
```
Response includes full stage definitions:
```json
{
"success": true,
"data": {
"id": "recipe-lettuce-butterhead",
"stages": [
{
"name": "Germination",
"daysStart": 0,
"daysEnd": 3,
"temperature": { "day": 20, "night": 18 },
"humidity": { "day": 80, "night": 85 },
"co2Ppm": 800,
"lightHours": 18,
"lightPpfd": 150,
"nutrientRecipeId": "nutrient-seedling",
"targetEc": 0.8,
"targetPh": 6.0,
"actions": []
}
]
}
}
```
### Add Custom Recipe
```http
POST /api/vertical-farm/recipes
Content-Type: application/json
{
"name": "Custom Lettuce - High Yield",
"cropType": "lettuce",
"variety": "romaine",
"stages": [ ... ],
"expectedDays": 42,
"expectedYieldGrams": 220
}
```
---
## Crop Batches
### Start Batch
```http
POST /api/vertical-farm/batch/start
Content-Type: application/json
{
"farmId": "farm-abc123",
"zoneId": "zone-abc123",
"recipeId": "recipe-lettuce-butterhead",
"seedBatchId": "seeds-lettuce-001",
"plantCount": 200
}
```
Response:
```json
{
"success": true,
"data": {
"id": "batch-abc123",
"farmId": "farm-abc123",
"zoneId": "zone-abc123",
"cropType": "lettuce",
"plantCount": 200,
"plantingDate": "2024-06-01T10:00:00Z",
"expectedHarvestDate": "2024-07-06T10:00:00Z",
"expectedYieldKg": 36,
"currentStage": "Germination",
"currentDay": 0,
"healthScore": 100,
"status": "germinating",
"plantIds": ["batch-abc123-plant-0", "..."]
}
}
```
### Get Batch
```http
GET /api/vertical-farm/batch/{batchId}
```
### List Batches
```http
GET /api/vertical-farm/batch?farmId=farm-abc123&status=growing
```
### Update Batch Progress
```http
POST /api/vertical-farm/batch/{batchId}/progress
```
This recalculates current day, stage, and updates environment targets.
---
## Environment Tracking
### Record Environment
```http
PUT /api/vertical-farm/batch/{batchId}/environment
Content-Type: application/json
{
"timestamp": "2024-06-15T12:00:00Z",
"temperatureC": 21.5,
"humidityPercent": 68,
"co2Ppm": 1050,
"vpd": 0.85,
"ppfd": 295,
"dli": 17.0,
"waterTempC": 19.5,
"ec": 1.55,
"ph": 6.1,
"dissolvedOxygenPpm": 8.2,
"airflowMs": 0.5
}
```
Response includes any triggered alerts:
```json
{
"success": true,
"data": {
"recorded": true,
"alerts": [
{
"parameter": "temperature",
"type": "high",
"value": 21.5,
"threshold": 21,
"timestamp": "2024-06-15T12:00:00Z",
"acknowledged": false
}
],
"healthScore": 99
}
}
```
### Get Environment History
```http
GET /api/vertical-farm/batch/{batchId}/environment
?from=2024-06-01T00:00:00Z
&to=2024-06-15T00:00:00Z
```
### Acknowledge Alert
```http
POST /api/vertical-farm/batch/{batchId}/alerts/{alertId}/acknowledge
```
---
## Harvest
### Complete Harvest
```http
POST /api/vertical-farm/batch/{batchId}/harvest
Content-Type: application/json
{
"actualYieldKg": 38.5,
"qualityGrade": "A",
"notes": "Excellent crop, exceeded expectations"
}
```
Response:
```json
{
"success": true,
"data": {
"batchId": "batch-abc123",
"status": "completed",
"actualYieldKg": 38.5,
"expectedYieldKg": 36,
"yieldVariance": 6.9,
"qualityGrade": "A",
"actualHarvestDate": "2024-07-06T14:00:00Z",
"cycleLength": 35
}
}
```
---
## Analytics
### Get Farm Analytics
```http
GET /api/vertical-farm/{farmId}/analytics?period=30
```
Query Parameters:
- `period`: Number of days to analyze (default: 30)
Response:
```json
{
"success": true,
"data": {
"farmId": "farm-abc123",
"generatedAt": "2024-07-01T10:00:00Z",
"period": "30 days",
"production": {
"totalYieldKg": 450.5,
"yieldPerSqmPerYear": 4107.5,
"cropCyclesCompleted": 12,
"averageCyclesDays": 28.5
},
"quality": {
"averageQualityScore": 92.3,
"gradeAPercent": 85,
"wastagePercent": 4.5
},
"efficiency": {
"cropSuccessRate": 98,
"spaceUtilization": 88,
"laborHoursPerKg": 0.3
},
"financial": {
"revenueUsd": 9010,
"costUsd": 4505,
"profitMarginPercent": 50,
"revenuePerSqm": 22.53
},
"environmental": {
"carbonFootprintKgPerKg": 0.28,
"waterUseLPerKg": 4.5,
"energyUseKwhPerKg": 15.2
},
"topCropsByYield": [
{ "crop": "lettuce", "yieldKg": 250.2 },
{ "crop": "basil", "yieldKg": 120.5 }
],
"topCropsByRevenue": [
{ "crop": "basil", "revenueUsd": 4820 },
{ "crop": "lettuce", "revenueUsd": 3750 }
],
"topCropsByEfficiency": [
{ "crop": "microgreens", "efficiencyScore": 95 },
{ "crop": "lettuce", "efficiencyScore": 92 }
]
}
}
```
---
## Enums
### Farm Status
```typescript
type FarmStatus = 'offline' | 'starting' | 'operational' | 'maintenance' | 'emergency';
```
### Zone Status
```typescript
type ZoneStatus = 'empty' | 'preparing' | 'planted' | 'growing' | 'harvesting' | 'cleaning';
```
### Growing Method
```typescript
type GrowingMethod = 'NFT' | 'DWC' | 'ebb_flow' | 'aeroponics' | 'vertical_towers' | 'rack_system';
```
### Batch Status
```typescript
type BatchStatus = 'germinating' | 'growing' | 'ready' | 'harvesting' | 'completed' | 'failed';
```
### Alert Type
```typescript
type AlertType = 'low' | 'high' | 'critical_low' | 'critical_high' | 'sensor_fault';
```
### Quality Grade
```typescript
type QualityGrade = 'A' | 'B' | 'C' | 'processing';
```