from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ("location_data", "0008_soillocation_block_layout"),
    ]

    operations = [
        migrations.CreateModel(
            name="BlockSubdivision",
            fields=[
                ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
                ("block_code", models.CharField(help_text="شناسه بلوکی که این خردسازی برای آن انجام شده است.", max_length=64)),
                ("source_boundary", models.JSONField(blank=True, default=dict, help_text="مرز همان بلوکی که به سرویس subdivision داده شده است.")),
                ("chunk_size_sqm", models.PositiveIntegerField(default=100, help_text="اندازه هر chunk به متر مربع.")),
                ("grid_points", models.JSONField(blank=True, default=list, help_text="نقاط اولیه شبکه داخل مرز بلوک.")),
                ("centroid_points", models.JSONField(blank=True, default=list, help_text="مراکز نهایی بخش‌های خردشده.")),
                ("grid_point_count", models.PositiveIntegerField(default=0)),
                ("centroid_count", models.PositiveIntegerField(default=0)),
                ("status", models.CharField(default="created", help_text="وضعیت تولید subdivision برای این بلوک.", max_length=32)),
                ("metadata", models.JSONField(blank=True, default=dict)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                ("soil_location", models.ForeignKey(on_delete=models.deletion.CASCADE, related_name="block_subdivisions", to="location_data.soillocation")),
            ],
            options={
                "ordering": ["soil_location", "block_code", "-updated_at"],
                "verbose_name": "خردسازی بلوک",
                "verbose_name_plural": "خردسازی بلوک‌ها",
            },
        ),
        migrations.AddConstraint(
            model_name="blocksubdivision",
            constraint=models.UniqueConstraint(fields=("soil_location", "block_code"), name="location_block_subdivision_unique_location_block_code"),
        ),
    ]
