98 lines
2.1 KiB
JSON
98 lines
2.1 KiB
JSON
{
|
|
"name": "Harvest",
|
|
"type": "object",
|
|
"properties": {
|
|
"plant_id": {
|
|
"type": "string",
|
|
"description": "ID tanaman yang dipanen"
|
|
},
|
|
"land_id": {
|
|
"type": "string",
|
|
"description": "ID lahan"
|
|
},
|
|
"farmer_id": {
|
|
"type": "string",
|
|
"description": "ID petani"
|
|
},
|
|
"commodity_name": {
|
|
"type": "string",
|
|
"description": "Nama komoditas"
|
|
},
|
|
"harvest_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Tanggal panen"
|
|
},
|
|
"quantity_kg": {
|
|
"type": "number",
|
|
"description": "Jumlah hasil panen dalam kg"
|
|
},
|
|
"grade": {
|
|
"type": "string",
|
|
"enum": [
|
|
"A",
|
|
"B",
|
|
"C",
|
|
"D",
|
|
"rejected"
|
|
],
|
|
"description": "Grade kualitas hasil panen"
|
|
},
|
|
"grade_notes": {
|
|
"type": "string",
|
|
"description": "Catatan grading"
|
|
},
|
|
"graded_by": {
|
|
"type": "string",
|
|
"description": "Email offtaker yang melakukan grading"
|
|
},
|
|
"graded_by_name": {
|
|
"type": "string",
|
|
"description": "Nama offtaker"
|
|
},
|
|
"graded_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Waktu grading dilakukan"
|
|
},
|
|
"price_per_kg": {
|
|
"type": "number",
|
|
"description": "Harga per kg berdasarkan grade"
|
|
},
|
|
"total_value": {
|
|
"type": "number",
|
|
"description": "Total nilai hasil panen"
|
|
},
|
|
"photo_url": {
|
|
"type": "string",
|
|
"description": "Foto hasil panen"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending_grade",
|
|
"graded",
|
|
"sold",
|
|
"rejected"
|
|
],
|
|
"default": "pending_grade",
|
|
"description": "Status hasil panen"
|
|
},
|
|
"sync_status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"synced",
|
|
"failed"
|
|
],
|
|
"default": "pending"
|
|
}
|
|
},
|
|
"required": [
|
|
"land_id",
|
|
"farmer_id",
|
|
"commodity_name",
|
|
"harvest_date",
|
|
"quantity_kg"
|
|
]
|
|
} |