This commit is contained in:
2026-05-05 01:32:27 +03:30
parent cfe60f6729
commit 39efd537bf
27 changed files with 1874 additions and 101 deletions
+2 -2
View File
@@ -34,7 +34,7 @@ class Migration(migrations.Migration):
options={"db_table": "sensor_catalogs", "ordering": ["code"]},
),
migrations.CreateModel(
name="FarmSensor",
name="FarmDevice",
fields=[
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
("uuid", models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, unique=True)),
@@ -47,7 +47,7 @@ class Migration(migrations.Migration):
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
("farm", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="sensors", to="farm_hub.farmhub")),
("sensor_catalog", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="farm_sensors", to="device_hub.sensorcatalog")),
("sensor_catalog", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="farm_devices", to="device_hub.sensorcatalog")),
],
options={"db_table": "farm_sensors", "ordering": ["-created_at"]},
),
@@ -0,0 +1,19 @@
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("device_hub", "0004_absorb_sensor_catalog"),
]
operations = [
migrations.SeparateDatabaseAndState(
database_operations=[],
state_operations=[
migrations.RenameModel(
old_name="FarmSensor",
new_name="FarmDevice",
),
],
),
]
@@ -0,0 +1,31 @@
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("device_hub", "0005_rename_farm_sensor_to_farm_device"),
]
operations = [
migrations.RenameModel(
old_name="SensorCatalog",
new_name="DeviceCatalog",
),
migrations.AddField(
model_name="devicecatalog",
name="device_communication_type",
field=models.CharField(
choices=[("output_only", "Output Only"), ("input_only", "Input Only")],
db_index=True,
default="output_only",
max_length=32,
),
),
migrations.AlterField(
model_name="farmdevice",
name="sensor_catalog",
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="farm_devices", to="device_hub.devicecatalog"),
),
]
@@ -0,0 +1,36 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("device_hub", "0006_rename_sensorcatalog_to_devicecatalog_and_add_communication_type"),
]
operations = [
migrations.AddField(
model_name="devicecatalog",
name="capabilities",
field=models.JSONField(blank=True, default=list),
),
migrations.AddField(
model_name="devicecatalog",
name="commands_schema",
field=models.JSONField(blank=True, default=list),
),
migrations.AddField(
model_name="devicecatalog",
name="display_schema",
field=models.JSONField(blank=True, default=dict),
),
migrations.AddField(
model_name="devicecatalog",
name="payload_mapping",
field=models.JSONField(blank=True, default=dict),
),
migrations.AddField(
model_name="devicecatalog",
name="supported_widgets",
field=models.JSONField(blank=True, default=list),
),
]
@@ -0,0 +1,23 @@
from django.db import migrations, models
def copy_sensor_catalog_to_device_catalogs(apps, schema_editor):
FarmDevice = apps.get_model("device_hub", "FarmDevice")
for farm_device in FarmDevice.objects.exclude(sensor_catalog__isnull=True).iterator():
farm_device.device_catalogs.add(farm_device.sensor_catalog_id)
class Migration(migrations.Migration):
dependencies = [
("device_hub", "0007_devicecatalog_dynamic_fields"),
]
operations = [
migrations.AddField(
model_name="farmdevice",
name="device_catalogs",
field=models.ManyToManyField(blank=True, related_name="composite_farm_devices", to="device_hub.devicecatalog"),
),
migrations.RunPython(copy_sensor_catalog_to_device_catalogs, migrations.RunPython.noop),
]