4.5 KiB
4.5 KiB
Fertilization Plan APIs
این فایل APIهای مدیریت برنامههای کودی را توضیح میدهد.
Base path:
/api/fertilization/
این APIها فقط روی برنامههای متعلق به کاربر لاگینشده عمل میکنند.
1) دریافت لیست برنامههای کودی
Request
- Method:
GET - URL:
/api/fertilization/plans/ - Query params:
farm_uuidالزامیpageاختیاریpage_sizeاختیاری، حداکثر100
Example
GET /api/fertilization/plans/?farm_uuid=11111111-1111-1111-1111-111111111111&page=1&page_size=10
Success Response
{
"code": 200,
"msg": "success",
"data": [
{
"plan_uuid": "6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1",
"source": "free_text",
"source_label": "متن آزاد کاربر",
"title": "برنامه کودی گندم",
"crop_id": "گندم",
"plant_name": "گندم",
"growth_stage": "flowering",
"is_active": false,
"created_at": "2025-02-24T10:20:30Z"
}
],
"pagination": {
"page": 1,
"page_size": 10,
"total_pages": 1,
"total_items": 1,
"has_next": false,
"has_previous": false,
"next": null,
"previous": null
}
}
Notes
- فقط planهایی برگردانده میشوند که
is_deleted=Falseباشند. - ترتیب لیست از جدید به قدیم است.
- در هر مزرعه، در هر نوع plan فقط یک plan میتواند
is_active=trueباشد.
2) دریافت جزئیات یک برنامه کودی
Request
- Method:
GET - URL:
/api/fertilization/plans/{plan_uuid}/ - Path param:
plan_uuidالزامی
Example
GET /api/fertilization/plans/6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1/
Success Response
{
"code": 200,
"msg": "success",
"data": {
"plan_uuid": "6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1",
"source": "free_text",
"source_label": "متن آزاد کاربر",
"title": "برنامه کودی گندم",
"crop_id": "گندم",
"plant_name": "گندم",
"growth_stage": "flowering",
"is_active": false,
"created_at": "2025-02-24T10:20:30Z",
"updated_at": "2025-02-24T10:20:30Z",
"plan_payload": {
"title": "برنامه کودی گندم",
"items": [
{
"name": "NPK 20-20-20"
}
]
}
}
}
Not Found
{
"code": 404,
"msg": "Plan not found."
}
Notes
- فقط اگر plan متعلق به کاربر باشد و حذف نشده باشد برگردانده میشود.
3) حذف برنامه کودی
Request
- Method:
DELETE - URL:
/api/fertilization/plans/{plan_uuid}/
Example
DELETE /api/fertilization/plans/6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1/
Success Response
{
"code": 200,
"msg": "success",
"data": {
"plan_uuid": "6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1",
"is_deleted": true
}
}
Behavior
- حذف بهصورت
soft deleteانجام میشود. - در عمل:
is_deleted = trueis_active = falsedeleted_atمقداردهی میشود
Not Found
{
"code": 404,
"msg": "Plan not found."
}
4) تغییر وضعیت فعال بودن برنامه کودی
Request
- Method:
PATCH - URL:
/api/fertilization/plans/{plan_uuid}/status/ - Body:
is_activeالزامی،boolean
Example
PATCH /api/fertilization/plans/6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1/status/
Content-Type: application/json
{
"is_active": false
}
Success Response
{
"code": 200,
"msg": "success",
"data": {
"plan_uuid": "6d6a1f0d-1a9b-4f2f-8fe1-2d73d9d2d9f1",
"is_active": true
}
}
Validation Error
{
"is_active": [
"This field is required."
]
}
Not Found
{
"code": 404,
"msg": "Plan not found."
}
Summary
- planهای جدید بهصورت پیشفرض
inactiveساخته میشوند. - در هر مزرعه فقط یک plan از این نوع میتواند
activeباشد. GET /api/fertilization/plans/لیست برنامههاGET /api/fertilization/plans/{plan_uuid}/جزئیات برنامهDELETE /api/fertilization/plans/{plan_uuid}/حذف نرم برنامهPATCH /api/fertilization/plans/{plan_uuid}/status/فعال/غیرفعال کردن برنامه