feat: enhance purge commands with environment handling and testing improvements

This commit is contained in:
hamed
2026-07-20 11:54:02 +03:30
parent 28725792d7
commit a8d33ceeaf
5 changed files with 70 additions and 25 deletions
+5
View File
@@ -280,6 +280,9 @@ php bin/console app:doctors:purge-unclaimed --all-sources # هر منبعِ غ
| `--all-sources` | هر پزشک claim‌نشدهٔ غیرِ `manual` |
| `--i-know-this-is-prod` | لازم برای اجرا روی `APP_ENV=prod` |
> محیط از kernel خوانده می‌شود (`%kernel.environment%`)، نه `$_ENV['APP_ENV']` — تا اگر
> APP_ENV از راهی غیر از dotenv ست شده باشد گارد دور زده نشود.
> حذف FK-safe است (همان ۱۶ جدول وابستهٔ `app:doctors:purge`). اگر نوبتی به پزشک
> claim‌نشده وصل باشد در dry-run هشدار می‌دهد چون آن نوبت هم حذف می‌شود. کاربر جانشین
> فقط وقتی حذف می‌شود که غیرفعال (`status=0`) و با موبایلِ `imp_` باشد — تا کاربر واقعی
@@ -302,6 +305,8 @@ php bin/console app:doctors:purge --force # حذف واقعی + کاربرا
> `dev`/`test` اجرا می‌شود**؛ روی هر `APP_ENV` دیگری (از جمله `prod`) بدون هیچ راه
> فراری با خطا متوقف می‌شود. سوییچ `--i-know-this-is-prod` اینجا **وجود ندارد** —
> تنها کامند این خانواده است که هیچ راهی برای اجرا روی prod ندارد.
> محیط از `%kernel.environment%` می‌آید، پس با دست‌کاری `$_ENV` هم دور نمی‌خورد.
> (تست‌ها: `PurgeDoctorsCommandTest`، `PurgeUnclaimedDoctorsCommandTest::testRefusesOnProdWithoutExplicitSwitch`)
### خلاصهٔ تفاوت دو کامند حذف