توضیحات
مستندات کامل API پروژه اتوماسیون ملک سلطانی — داشبورد مدیریت املاک
معرفی پروژه
اتوماسیون ملک سلطانی یک بکاند مبتنی بر Django REST Framework برای مدیریت روزمره دفاتر املاک است: احراز هویت، مدیریت مشاوران و منشیها، ثبت/پیگیری فایلهای ملکی، و دادههای پایه (شهر، منطقه، نوع ملک، مالک).
تکنولوژیها
- Backend: Django + Django REST Framework
- Database: PostgreSQL
- Auth: JWT (SimpleJWT) + OTP
- Cache: Django Cache Framework (LocMem در لوکال)
- Docs: HTML Docs + Swagger/ReDoc (drf-spectacular)
- Editor: CKEditor 5
ماژولها
- Accounts — OTP، JWT، me
- RBAC — نقش سازمانی کارمند + دسترسی ریزدانهای بخشها
- Agents — پروفایل مشاور
- Properties — ملک + دادههای پایه
- Staff — پرسنل با نقش سازمانی (منشی، CRM، ...)
- Tracking — رصد ملک بعد از تأیید (ورکلاین + مهلتها)
- Notifications — اعلان و badge
- Notes — یادداشت شخصی روزانه
- Tasks — تسک مرحلهای، ارجاع و پیگیری کامل
- Reports — آمار داشبورد و گزارشهای عملیاتی
- Documents — همین مستندات
Base URL
مسیرها بدون پیشوند /api/ هستند:
http://127.0.0.1:8000/auth/
http://127.0.0.1:8000/agents/
http://127.0.0.1:8000/properties/
http://127.0.0.1:8000/staff/
Swagger: /api/schema/swagger-ui/ — ReDoc: /api/schema/redoc/
احراز هویت
- Access Token: ۶۰ دقیقه
- Refresh Token: ۳۰ روز
- Header:
Authorization: Bearer <access_token>
جزئیات در Accounts API.
نکات مهم فرانت
- آپلود فایلها با
multipart/form-data - سایر درخواستها با
application/json - خطاها JSON هستند و معمولاً کلید
detailیا فیلدبه فیلد
نمونههای خطا
400 Bad Request
{
"title": ["این فیلد نمیتواند خالی باشد."],
"location": ["منطقه انتخابی متعلق به شهر انتخابی نیست."]
}
401 Unauthorized
{"detail": "اعتبارنامه احراز هویت ارائه نشده است."}
403 Forbidden
{"detail": "شما دسترسی لازم را ندارید."}
404 Not Found
{"detail": "یافت نشد."}
429 Too Many Requests (OTP)
{"detail": "درخواستهای شما بیش از حد مجاز است. لطفاً بعداً دوباره تلاش کنید."}
کدهای وضعیت
- 200 OK — موفق / تکراری قابل ویرایش در create
- 201 Created — ایجاد موفق
- 204 No Content — حذف موفق
- 400 / 401 / 403 / 404 / 429
Pagination
لیست املاک:
{
"count": 150,
"page": 1,
"page_size": 20,
"total_pages": 8,
"next": 2,
"previous": null,
"results": []
}
نکته: next/previous شماره صفحه هستند نه URL.
نقشها
| نقش | کاربرد |
|---|---|
| admin | دسترسی کامل مدیریتی |
| staff | منشی؛ لیست املاک فقط ok؛ نوشتن دادههای پایه |
| agent | مشاور؛ فایلهای خودش + خواندن دادههای پایه |