# Generated by Django 6.0.4 on 2026-07-12 14:38

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('order_module', '0005_zone_order_package_height_order_package_length_and_more'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='shippingrate',
            options={'ordering': ('method', 'zone', 'min_weight', 'max_weight'), 'verbose_name': 'نرخ ارسال', 'verbose_name_plural': 'نرخ\u200cهای ارسال'},
        ),
        migrations.AddField(
            model_name='shippingrate',
            name='min_weight',
            field=models.PositiveIntegerField(default=0, help_text='حداقل وزن مشمول این نرخ، بر حسب گرم', verbose_name='حداقل وزن (گرم)'),
        ),
        migrations.AddField(
            model_name='shippingrate',
            name='zone',
            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='shipping_rates', to='order_module.zone', verbose_name='زون'),
            preserve_default=False,
        ),
        migrations.AlterField(
            model_name='shippingrate',
            name='max_weight',
            field=models.PositiveIntegerField(help_text='حداکثر وزن مشمول این نرخ، بر حسب گرم', verbose_name='حداکثر وزن (گرم)'),
        ),
        migrations.AlterField(
            model_name='shippingrate',
            name='method',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rates', to='order_module.shippingmethod', verbose_name='روش ارسال'),
        ),
        migrations.AlterField(
            model_name='shippingrate',
            name='price',
            field=models.DecimalField(decimal_places=0, help_text='هزینه ارسال به تومان', max_digits=10, verbose_name='قیمت'),
        ),
        migrations.AddIndex(
            model_name='shippingrate',
            index=models.Index(fields=['method', 'zone', 'min_weight', 'max_weight'], name='shipping_rate_lookup_idx'),
        ),
        migrations.AddConstraint(
            model_name='shippingrate',
            constraint=models.UniqueConstraint(fields=('method', 'zone', 'min_weight', 'max_weight'), name='unique_shipping_rate_method_zone_weight_range'),
        ),
        migrations.AddConstraint(
            model_name='shippingrate',
            constraint=models.CheckConstraint(check=models.Q(('max_weight__gte', models.F('min_weight'))), name='shipping_rate_max_weight_gte_min_weight'),
        ),
    ]
