feat(docs): add scenario documentation for importing doctors from IRIMC and managing profile ownership

This commit is contained in:
hamed
2026-07-11 10:16:14 +03:30
parent 744a40c0f6
commit 7868577c57
2 changed files with 177 additions and 2 deletions
+39 -2
View File
@@ -6,8 +6,9 @@
وارد کردن یک پزشک از سازمان نظام پزشکی (`membersearch.irimc.org`) **بدون شماره موبایل**.
برخلاف `POST /api/v1/admin/doctors` (که موبایل معتبر ایرانی می‌خواهد)، این اندپوینت برای
هر پزشک یک **کاربر جانشینِ غیرفعال** با شناسهٔ مصنوعی می‌سازد و پروفایل را در وضعیت
`unclaimed` ذخیره می‌کند تا بعداً به پزشک واقعی منتقل شود.
هر پزشک یک **کاربر جانشینِ غیرفعال** با شناسهٔ مصنوعی و نقشِ اختصاصی `ROLE_UNCLAIMED_DOCTOR`
می‌سازد و پروفایل را در وضعیت `unclaimed` ذخیره می‌کند تا بعداً به پزشک واقعی منتقل شود.
این نقش، هم کاربر جانشین را قابل‌شناسایی می‌کند و هم مبنای حذفِ امنِ او پس از انتقال است.
مصرف‌کنندهٔ اصلی: خزندهٔ پایتون (`clinicpro-crawler/pipeline.py`) که با کاربر «مالک
سیستمی» (`0000000000`) لاگین می‌کند و هر ~۶۰ ثانیه یک پزشک را می‌فرستد.
@@ -107,6 +108,42 @@
---
## انتقال مالکیت به پزشک واقعی
> **Endpoint:** `POST /api/v1/admin/doctors/{uuid}/transfer` — permission `ROLE_ADMIN`
مالکیت یک پروفایلِ `unclaimed` را به پزشک واقعی منتقل می‌کند.
```json
// Request
{ "mobile": "09120000000" }
```
مراحل اتمیک:
1. کاربر واقعی بر پایهٔ `mobile` پیدا یا ساخته می‌شود (باید موبایل معتبر ایران باشد).
2. اگر کاربر واقعی از قبل صاحب پزشک دیگری باشد → `409`.
3. `user_id` پروفایل به کاربر واقعی تغییر می‌کند، `ROLE_DOCTOR` به او داده می‌شود،
`owner_status = claimed` و `claimed_at = now` و `managed_by = null` می‌شود.
4. **کاربر جانشین حذف می‌شود** — فقط اگر واقعاً `ROLE_UNCLAIMED_DOCTOR` داشته باشد و
دیگر هیچ پزشکی به او وصل نباشد (حذف امن).
```json
// Response 200
{ "success": true, "data": {
"uuid": "…", "owner_status": "claimed",
"transferred_to": "09120000000", "placeholder_deleted": true
} }
```
| کد | حالت |
|---|---|
| `404` | پزشک یافت نشد |
| `409` | قبلاً `claimed` است، یا کاربر مقصد پزشک دیگری دارد |
| `422` | موبایل نامعتبر |
---
## کاربر سیستمی و چرخهٔ عمر
```bash