feat: add command to purge unclaimed imported doctors and their surrogates
This commit is contained in:
@@ -260,14 +260,40 @@ php bin/console app:doctors:repair --list # فهرست گامها
|
||||
> **افزودن گام جدید:** یک کلاس با `DoctorRepairStep` در `src/Doctor/Service/Repair/` بساز؛
|
||||
> خودکار کشف و اجرا میشود و نیازی به تغییر کامند نیست.
|
||||
|
||||
### حذف پزشکانِ ایمپورتشدهٔ claimنشده
|
||||
|
||||
فقط رکوردهای خزنده که هنوز مالکیتشان گرفته نشده (`owner_status='unclaimed'`) و کاربران
|
||||
جانشینِ یتیمشان را حذف میکند. پزشکان دستی (`source='manual'`) و پروفایلهای تصاحبشده
|
||||
(`claimed`/`pending_transfer`) دستنخورده میمانند.
|
||||
|
||||
```bash
|
||||
php bin/console app:doctors:purge-unclaimed # dry-run: تعداد هدف + هر جدول وابسته
|
||||
php bin/console app:doctors:purge-unclaimed --force # حذف
|
||||
php bin/console app:doctors:purge-unclaimed --source=irimc # فقط این منبع (پیشفرض irimc)
|
||||
php bin/console app:doctors:purge-unclaimed --all-sources # هر منبعِ غیر manual
|
||||
```
|
||||
|
||||
| سوییچ | اثر |
|
||||
|---|---|
|
||||
| `--force` | حذف واقعی (بدون آن فقط گزارش) |
|
||||
| `--source=X` | فقط منبع X (پیشفرض `irimc`) |
|
||||
| `--all-sources` | هر پزشک claimنشدهٔ غیرِ `manual` |
|
||||
| `--i-know-this-is-prod` | لازم برای اجرا روی `APP_ENV=prod` |
|
||||
|
||||
> حذف FK-safe است (همان ۱۶ جدول وابستهٔ `app:doctors:purge`). اگر نوبتی به پزشک
|
||||
> claimنشده وصل باشد در dry-run هشدار میدهد چون آن نوبت هم حذف میشود. کاربر جانشین
|
||||
> فقط وقتی حذف میشود که غیرفعال (`status=0`) و با موبایلِ `imp_` باشد — تا کاربر واقعی
|
||||
> بهاشتباه پاک نشود.
|
||||
|
||||
### پاکسازی کامل برای دیتابیس تست
|
||||
|
||||
حذف همهٔ پزشکان + دادههای وابسته (FK-safe) برای شروع تمیز:
|
||||
حذف **همهٔ** پزشکان + دادههای وابسته (FK-safe) برای شروع تمیز:
|
||||
|
||||
```bash
|
||||
php bin/console app:doctors:purge # dry-run: فقط گزارش تعداد هر جدول
|
||||
php bin/console app:doctors:purge --force # حذف واقعی + کاربران جانشین یتیم
|
||||
```
|
||||
|
||||
> ⚠️ مخرب — `appointments`/`comments`/`rates` را هم پاک میکند. روی prod نیازمند
|
||||
> `--i-know-this-is-prod` است و پیشفرض متوقف میشود.
|
||||
> ⚠️ مخرب — `appointments`/`comments`/`rates` را هم پاک میکند. **فقط در محیط
|
||||
> `dev`/`test` اجرا میشود**؛ روی هر `APP_ENV` دیگری (از جمله `prod`) بدون هیچ راه
|
||||
> فراری با خطا متوقف میشود.
|
||||
|
||||
Reference in New Issue
Block a user