Files
Logic/Modules/Ai/crop_simulation/migrations/0001_initial.py
T

126 lines
4.8 KiB
Python
Raw Normal View History

2026-05-11 03:27:21 +03:30
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="SimulationScenario",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(blank=True, default="", max_length=255)),
(
"scenario_type",
models.CharField(
choices=[
("single", "Single Simulation"),
("crop_comparison", "Crop Comparison"),
("fertilization_comparison", "Fertilization Comparison"),
],
db_index=True,
default="single",
max_length=64,
),
),
(
"model_name",
models.CharField(default="Wofost72_WLP_CWB", max_length=128),
),
(
"status",
models.CharField(
choices=[
("pending", "Pending"),
("running", "Running"),
("success", "Success"),
("failure", "Failure"),
],
db_index=True,
default="pending",
max_length=32,
),
),
("input_payload", models.JSONField(blank=True, default=dict)),
("result_payload", models.JSONField(blank=True, default=dict)),
("error_message", models.TextField(blank=True, default="")),
("created_at", models.DateTimeField(auto_now_add=True, db_index=True)),
("updated_at", models.DateTimeField(auto_now=True)),
],
options={
"ordering": ["-created_at"],
"verbose_name": "Simulation Scenario",
"verbose_name_plural": "Simulation Scenarios",
},
),
migrations.CreateModel(
name="SimulationRun",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("run_key", models.CharField(max_length=64)),
("label", models.CharField(max_length=255)),
(
"status",
models.CharField(
choices=[
("pending", "Pending"),
("running", "Running"),
("success", "Success"),
("failure", "Failure"),
],
db_index=True,
default="pending",
max_length=32,
),
),
("weather_payload", models.JSONField(blank=True, default=list)),
("soil_payload", models.JSONField(blank=True, default=dict)),
("crop_payload", models.JSONField(blank=True, default=dict)),
("site_payload", models.JSONField(blank=True, default=dict)),
("agromanagement_payload", models.JSONField(blank=True, default=list)),
("result_payload", models.JSONField(blank=True, default=dict)),
("error_message", models.TextField(blank=True, default="")),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
(
"scenario",
models.ForeignKey(
on_delete=models.deletion.CASCADE,
related_name="runs",
to="crop_simulation.simulationscenario",
),
),
],
options={
"ordering": ["scenario_id", "id"],
"verbose_name": "Simulation Run",
"verbose_name_plural": "Simulation Runs",
},
),
migrations.AddConstraint(
model_name="simulationrun",
constraint=models.UniqueConstraint(
fields=("scenario", "run_key"),
name="crop_simulation_unique_run_key_per_scenario",
),
),
]