4.4 KiB
4.4 KiB
Farm Hub & Sensor Catalog Changes
این فایل برای تیم فرانت آماده شده و فقط تغییرات موثر روی قرارداد API و دادهها را توضیح میدهد.
1) تغییر اصلی
مدل قدیمی plant از جریان اصلی حذف شده و اطلاعات محصول حالا از مدل Product در اپ farm_hub خوانده میشود.
به همین خاطر endpoint زیر:
/api/farm-hub/farm-types/{farm_type_uuid}/products/
اکنون باید دادههای هر محصول را از جدول products برگرداند، نه از جدول قدیمی plant.
2) endpoint های مرتبط
لیست نوع مزرعه
GET /api/farm-hub/farm-types/
نمونه پاسخ:
{
"code": 200,
"msg": "success",
"data": [
{
"uuid": "farm-type-uuid",
"name": "زراعی",
"description": "",
"metadata": {}
}
]
}
لیست محصولات بر اساس نوع مزرعه
GET /api/farm-hub/farm-types/{farm_type_uuid}/products/
نمونه پاسخ جدید:
{
"code": 200,
"msg": "success",
"data": [
{
"uuid": "product-uuid",
"name": "گندم",
"description": "",
"metadata": {},
"light": "",
"watering": "",
"soil": "لومی",
"temperature": "",
"planting_season": "پاییز",
"harvest_time": "اواخر بهار",
"spacing": "",
"fertilizer": "",
"health_profile": {},
"irrigation_profile": {},
"growth_profile": {}
}
]
}
3) فیلدهای جدید هر product
قبلا فرانت فقط اینها را میگرفت:
uuidnamedescriptionmetadata
الان این فیلدها هم اضافه شدهاند:
lightwateringsoiltemperatureplanting_seasonharvest_timespacingfertilizerhealth_profileirrigation_profilegrowth_profile
4) نکات مهم برای فرانت
health_profile،irrigation_profileوgrowth_profileاز نوعJSON objectهستند- بعضی فیلدها ممکن است رشته خالی
""یا آبجکت خالی{}برگردانند - بهتر است UI برای نبودن داده fallback داشته باشد
- مرتبسازی محصولات در endpoint بر اساس
nameاست
5) سیدرهای جدید catalog
برای farm type ها و product ها سیدر گستردهتر اضافه شده است.
farm type ها
زراعیدرختیغرقابیگلخانه ای
محصولات seed شده
زراعی
گندمذرتجوکلزاپنبه
درختی
سیبپستهانگورانار
غرقابی
برنج
گلخانه ای
گوجه فرنگیخیارفلفل دلمه ای
6) تغییرات مرتبط با farm object
در پاسخ farm، این فیلدها هم الان مهم هستند:
area_uuidsensors[].sensor_catalog_uuidsensors[].physical_device_uuid
و این فیلدها از مدل حذف شدهاند:
customizationدر سطح farmcustomizationدر سطح sensor
7) sensor_catalog/apps.py
فایل:
sensor_catalog/apps.py
محتوا:
- اپ با نام
sensor_catalogثبت شده - کلاس کانفیگ آن
SensorCatalogConfigاست verbose_nameبرابرSensor Catalogاست
نکته مهم برای فرانت:
- خود
sensor_catalog/apps.pyخروجی API را تغییر نمیدهد - اثر عملی آن این است که اپ
sensor_catalogبه صورت رسمی در پروژه register شده و دادههای سنسور حالا درfarm_hubاستفاده میشوند - از این به بعد فرانت میتواند روی
sensor_catalog_uuidبرای سنسورها حساب کند
8) نتیجه نهایی برای فرانت
- منبع نمایش محصولات باید
farm_hub.productsباشد - endpoint اصلی برای لیست محصولات هر نوع مزرعه:
GET /api/farm-hub/farm-types/{farm_type_uuid}/products/
- UI جزئیات محصول میتواند فیلدهای زراعی/رشد/آبیاری را مستقیم از response بخواند
- برای سنسورها باید از
sensor_catalog_uuidوphysical_device_uuidاستفاده شود