feat(sprint-6): Phase 5 — Full grow calendar (sensors, photos, feeding, harvest traceability)
Deploy to Production / test (push) Has been cancelled
Deploy to Production / deploy (push) Has been cancelled

- V9 migration: grow_entries, grow_stage_logs, sensor_readings, grow_photos, feeding_logs
- 5 entities + GrowStage enum (7 stages) + SensorReadingType enum
- GrowCalendarService: CRUD + stage advancement + harvest-to-batch linking
- GrowCalendarController: 8 endpoints (/api/v1/grow/*)
- Frontend: /grow list + /grow/[id] detail (timeline, sensor charts, photo gallery, feeding log)
- Sensor chart (Recharts line: temp + humidity over time)
- Harvest completion links grow entry → batch (full traceability)
- React Query hooks for all grow operations
- Full i18n (de/en) with 7 grow stage labels
- Sidebar navigation updated with Anbau/Grow entry
This commit is contained in:
Patrick Plate
2026-06-12 22:51:45 +02:00
parent 05933a08ca
commit 076fd6f9b3
34 changed files with 1843 additions and 2 deletions
+46 -1
View File
@@ -444,5 +444,50 @@
"PAYMENT_RECEIVED": "Payment received",
"PAYMENT_FAILED": "Payment failed"
}
},
"grow": {
"title": "Grow Calendar",
"newGrow": "Start New Grow",
"name": "Grow Name",
"strain": "Strain",
"stage": "Stage",
"startedAt": "Started",
"expectedHarvest": "Expected Harvest",
"daysInStage": "Days in stage",
"stages": {
"SEEDLING": "Seedling",
"VEGETATIVE": "Vegetative",
"FLOWERING": "Flowering",
"HARVEST": "Harvest",
"DRYING": "Drying",
"CURING": "Curing",
"COMPLETE": "Complete"
},
"advanceStage": "Next Stage",
"completeHarvest": "Complete Harvest",
"harvestGrams": "Harvest (g)",
"linkBatch": "Link to Batch",
"sensors": "Sensor Data",
"addReading": "Add Reading",
"temperature": "Temperature",
"humidity": "Humidity",
"co2": "CO₂",
"ph": "pH",
"ec": "EC",
"photos": "Photos",
"addPhoto": "Add Photo",
"caption": "Caption",
"feeding": "Feeding",
"addFeeding": "Add Feeding",
"nutrient": "Nutrient",
"amountMl": "Amount (ml)",
"waterLiters": "Water (L)",
"phAfter": "pH after",
"ecAfter": "EC after",
"timeline": "Timeline",
"noGrows": "No grow entries yet.",
"created": "Grow started.",
"stageAdvanced": "Stage advanced to {stage}.",
"harvestComplete": "Harvest completed — {grams}g linked to batch."
}
}
}