"""یادآوری تأمین موجودی چک: تغییر جهت از «پس از سررسید» به «پیش از سررسید». هدف این migration **فقط** هم‌راستا‌کردن مقدار عددی ``offset_days`` قالب ``cheque_registration`` با معنای جدید است (تعداد روز **قبل** از سررسید). آنچه این migration عمداً **نمی‌کند**: * ``text`` (متن پیامک) را تغییر نمی‌دهد — متنی که مدیر در پنل تنظیم کرده دست‌نخورده می‌ماند. اگر متن فعلی از زمان گذشته حرف می‌زند («سررسید شده است»)، مدیر می‌تواند خودش از صفحهٔ «قالب‌های پیامک» ویرایشش کند. * ``title``، ``is_enabled`` و ``auto_send`` را تغییر نمی‌دهد. * هیچ نوع/قالب دیگری را لمس نمی‌کند. مقدار ``offset_days`` روی پیش‌فرض معنای جدید (۱ روز قبل از سررسید) تنظیم می‌شود تا نصب‌های تازه و نصب‌های موجود یکسان رفتار کنند؛ اما اگر مدیر قبلاً عددی غیر از مقدار قدیمی (``1``) گذاشته باشد، به آن دست نمی‌زنیم تا انتخابش از بین نرود. idempotent است؛ اجرای دوباره بی‌خطر است. """ from django.db import migrations SMS_TYPE = "cheque_registration" # مقدار پیش‌فرضِ منطق قدیم («۱ روز پس از سررسید») که با معنای جدید هم‌عددی است؛ # فقط رکوردهایی که هنوز روی همین مقدار هستند هم‌راستا می‌شوند. OLD_DEFAULT = 1 NEW_DEFAULT = 1 def align_cheque_offset(apps, schema_editor): """``offset_days`` قالب چک را روی پیش‌فرض جدید بگذارد (بدون لمس متن).""" SMSTemplate = apps.get_model("admin_panel", "SMSTemplate") SMSTemplate.objects.filter( sms_type=SMS_TYPE, offset_days=OLD_DEFAULT, ).update(offset_days=NEW_DEFAULT) def noop(apps, schema_editor): pass class Migration(migrations.Migration): dependencies = [ ("admin_panel", "0074_alter_action_status_choices"), ] operations = [ migrations.RunPython(align_cheque_offset, noop), ]