31 lines
1.4 KiB
Python
31 lines
1.4 KiB
Python
"""پاکسازی یکبارهٔ فیلدهای تلفن مشتریان (phone1/phone2/phone3).
|
|
|
|
روی دیتابیس production (سرور اصلی) هم قابل اجرا است؛ idempotent است و اجرای
|
|
دوبارهاش تغییری ایجاد نمیکند.
|
|
|
|
python manage.py fix_customer_phones --dry-run # فقط گزارش، بدون تغییر
|
|
python manage.py fix_customer_phones # اجرای واقعی
|
|
"""
|
|
from django.core.management.base import BaseCommand
|
|
|
|
from admin_panel.sms.phone_cleanup import clean_all
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "استخراج و استانداردسازی شمارههای قدیمی مشتریان؛ متنهای حذفشده در فیلد توضیحات میمانند."
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument(
|
|
"--dry-run", action="store_true",
|
|
help="فقط گزارش کن که چه چیزی تغییر میکند؛ چیزی ذخیره نکن.",
|
|
)
|
|
|
|
def handle(self, *args, **options):
|
|
dry = options["dry_run"]
|
|
stats = clean_all(dry_run=dry)
|
|
prefix = "شبیهسازی (بدون تغییر): " if dry else "پاکسازی انجام شد: "
|
|
self.stdout.write(
|
|
f"{prefix}{stats['customers']} مشتری، {stats['fields']} فیلد اصلاح شد، "
|
|
f"{stats['noted']} یادداشت ثبت شد."
|
|
)
|