feat(doctor): prevent duplicate doctor imports based on medical system code
This commit is contained in:
@@ -39,6 +39,10 @@
|
||||
- اگر وجود داشته باشد و `owner_status != claimed` → **بهروزرسانی** میشود (`200`).
|
||||
- اگر وجود داشته باشد و `owner_status == claimed` → **رد** میشود (`200`, `skipped: "claimed"`)
|
||||
تا دادهٔ مالک واقعی بازنویسی نشود.
|
||||
- **تکرار بین منابع:** اگر پزشکی با همان `medical_system_code` ولی `source` متفاوت
|
||||
(مثلاً ثبت دستی در پنل) وجود داشته باشد → **رد** میشود (`200`, `skipped: "duplicate"`)؛
|
||||
نه رکورد جدیدی ساخته میشود و نه رکورد موجود بازنویسی میشود. `uuid` همان رکورد موجود
|
||||
برگردانده میشود (تست: `DoctorImportTest::testManualDoctorWithSameCodeIsNeverDuplicated`).
|
||||
|
||||
---
|
||||
|
||||
@@ -108,6 +112,11 @@
|
||||
{ "success": true, "data": { "uuid": "…", "created": false, "skipped": "claimed" } }
|
||||
```
|
||||
|
||||
### `200 OK` (رد بهدلیل کد نظام پزشکی تکراری با منبع دیگر)
|
||||
```json
|
||||
{ "success": true, "data": { "uuid": "…", "created": false, "skipped": "duplicate" } }
|
||||
```
|
||||
|
||||
### `422` (اعتبارسنجی)
|
||||
```json
|
||||
{ "success": false, "data": null, "errors": [ { "code": "…", "message": "کد نظام پزشکی الزامی است", "field": "medical_system_code" } ] }
|
||||
|
||||
Reference in New Issue
Block a user