100 lines
4.9 KiB
Python
100 lines
4.9 KiB
Python
|
|
from django.db import migrations, models
|
||
|
|
import django.db.models.deletion
|
||
|
|
|
||
|
|
|
||
|
|
class Migration(migrations.Migration):
|
||
|
|
dependencies = [
|
||
|
|
("crop_zoning", "0001_initial"),
|
||
|
|
]
|
||
|
|
|
||
|
|
operations = [
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropProduct",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("product_id", models.CharField(max_length=64, unique=True)),
|
||
|
|
("label", models.CharField(max_length=255)),
|
||
|
|
("color", models.CharField(max_length=32)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_products",
|
||
|
|
"ordering": ["id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropZoneCultivationRiskLayer",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("level", models.CharField(choices=[("low", "Low"), ("medium", "Medium"), ("high", "High")], max_length=16)),
|
||
|
|
("color", models.CharField(max_length=32)),
|
||
|
|
("crop_zone", models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name="cultivation_risk_layer", to="crop_zoning.cropzone")),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_zone_cultivation_risk_layers",
|
||
|
|
"ordering": ["crop_zone_id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropZoneRecommendation",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("match_percent", models.PositiveIntegerField()),
|
||
|
|
("water_need", models.CharField(max_length=128)),
|
||
|
|
("estimated_profit", models.CharField(max_length=128)),
|
||
|
|
("reason", models.TextField(blank=True, default="")),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("crop_zone", models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name="recommendation", to="crop_zoning.cropzone")),
|
||
|
|
("product", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="zone_recommendations", to="crop_zoning.cropproduct")),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_zone_recommendations",
|
||
|
|
"ordering": ["crop_zone_id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropZoneSoilQualityLayer",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("level", models.CharField(choices=[("low", "Low"), ("medium", "Medium"), ("high", "High")], max_length=16)),
|
||
|
|
("score", models.PositiveIntegerField()),
|
||
|
|
("color", models.CharField(max_length=32)),
|
||
|
|
("crop_zone", models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name="soil_quality_layer", to="crop_zoning.cropzone")),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_zone_soil_quality_layers",
|
||
|
|
"ordering": ["crop_zone_id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropZoneWaterNeedLayer",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("level", models.CharField(choices=[("low", "Low"), ("medium", "Medium"), ("high", "High")], max_length=16)),
|
||
|
|
("value", models.CharField(max_length=128)),
|
||
|
|
("color", models.CharField(max_length=32)),
|
||
|
|
("crop_zone", models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name="water_need_layer", to="crop_zoning.cropzone")),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_zone_water_need_layers",
|
||
|
|
"ordering": ["crop_zone_id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="CropZoneCriteria",
|
||
|
|
fields=[
|
||
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||
|
|
("name", models.CharField(max_length=128)),
|
||
|
|
("value", models.PositiveIntegerField()),
|
||
|
|
("sequence", models.PositiveIntegerField(default=0)),
|
||
|
|
("recommendation", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="criteria", to="crop_zoning.cropzonerecommendation")),
|
||
|
|
],
|
||
|
|
options={
|
||
|
|
"db_table": "crop_zone_criteria",
|
||
|
|
"ordering": ["sequence", "id"],
|
||
|
|
},
|
||
|
|
),
|
||
|
|
]
|