# Generated by Django 5.1.1 on 2026-10-07 09:49 import apps.payments.alert_templates import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('notifications', '0018_alter_smstemplate_body'), ('payments', '0006_normalize_deposit_identifiers'), ] operations = [ migrations.CreateModel( name='PaymentReceiptAlertConfiguration', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('bale_enabled', models.BooleanField(default=False, verbose_name='ارسال تصویر فیش به بله')), ('bale_token', models.CharField(blank=True, max_length=500, verbose_name='توکن ربات بله پرداخت')), ('bale_chat_id', models.CharField(blank=True, max_length=150, verbose_name='شناسه گروه بله')), ('bale_caption', models.TextField(default='فیش واریزی جدید\nمشتری: {customer_name}\nشماره تماس: {customer_mobile}\nمبلغ: {amount_rial} ریال\nزمان ارسال: {received_at}\nتاریخ واریز: {paid_date}\nشماره فیش: {receipt_number} · نسخه {revision_version}\n{receipt_link}', help_text='تگ\u200cهای مجاز: {amount_rial}، {customer_name}، {customer_mobile}، {received_at}، {paid_date}، {receipt_number}، {receipt_link}، {revision_version}، {manager_name}', max_length=3000, validators=[apps.payments.alert_templates.validate_alert_template], verbose_name='متن همراه تصویر')), ('sms_enabled', models.BooleanField(default=False, verbose_name='پیامک فیش جدید به مدیران')), ('sms_template', models.TextField(default='فیش واریزی به مبلغ {amount_rial} ریال توسط {customer_name} به شماره تماس {customer_mobile} ارسال شد.', help_text='تگ\u200cهای مجاز: {amount_rial}، {customer_name}، {customer_mobile}، {received_at}، {paid_date}، {receipt_number}، {receipt_link}، {revision_version}، {manager_name}', max_length=1000, validators=[apps.payments.alert_templates.validate_alert_template], verbose_name='متن پیامک مدیران')), ('notify_revisions', models.BooleanField(default=True, verbose_name='اطلاع\u200cرسانی فیش اصلاح\u200cشده مشتری')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='آخرین ویرایش')), ], options={ 'verbose_name': 'تنظیمات اطلاع\u200cرسانی فیش مشتری', 'verbose_name_plural': 'تنظیمات اطلاع\u200cرسانی فیش مشتری', 'permissions': [('manage_receipt_alerts', 'Manage receipt alert settings and recipients')], 'constraints': [models.CheckConstraint(condition=models.Q(('pk', 1)), name='pay_receipt_alert_singleton')], }, ), migrations.CreateModel( name='PaymentReceiptAlertRecipient', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=150, verbose_name='نام مدیر')), ('mobile', models.CharField(max_length=20, verbose_name='شماره موبایل مدیر')), ('is_active', models.BooleanField(default=True, verbose_name='دریافت پیامک فعال')), ('configuration', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='recipients', to='payments.paymentreceiptalertconfiguration')), ], options={ 'verbose_name': 'مدیر دریافت\u200cکننده پیامک فیش', 'verbose_name_plural': 'مدیران دریافت\u200cکننده پیامک فیش', }, ), migrations.CreateModel( name='PaymentReceiptAlert', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('recipient_name', models.CharField(blank=True, max_length=150, verbose_name='نام گیرنده هنگام ثبت')), ('recipient_mobile', models.CharField(blank=True, max_length=20, verbose_name='موبایل گیرنده هنگام ثبت')), ('bale_chat_id', models.CharField(blank=True, max_length=150, verbose_name='گروه هنگام ثبت')), ('context', models.JSONField()), ('message_template', models.TextField(verbose_name='قالب هنگام ثبت')), ('rendered_body', models.TextField(blank=True, verbose_name='متن ارسال')), ('job', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name='receipt_alert', to='notifications.notificationjob')), ('revision', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='alerts', to='payments.paymentreceiptrevision')), ('recipient', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='payments.paymentreceiptalertrecipient')), ], options={ 'verbose_name': 'سابقه اعلان فیش مشتری', 'verbose_name_plural': 'سوابق اعلان فیش مشتری', }, ), migrations.AddConstraint( model_name='paymentreceiptalertrecipient', constraint=models.UniqueConstraint(fields=('configuration', 'mobile'), name='pay_receipt_alert_mobile'), ), ]