first commit
This commit is contained in:
commit
b54624be96
226 files changed
+108840
No files matched your search
@@ -0,0 +1,170 @@
|
||||
from django.db import models
|
||||
|
||||
from apps.farms.models import Cycle, Flock
|
||||
|
||||
|
||||
class IotPanel(models.Model):
|
||||
panel_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
timestamp = models.DateTimeField(null=True, blank=True)
|
||||
wind_speed = models.FloatField(default=0.0)
|
||||
humidity = models.FloatField(default=0.0)
|
||||
water_total = models.FloatField(default=0.0)
|
||||
average_temperature = models.FloatField(default=0.0)
|
||||
experience_temperature = models.FloatField(default=0.0)
|
||||
flock = models.ForeignKey(Flock, on_delete=models.CASCADE, related_name="iot_panels")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "iot_panel"
|
||||
ordering = ["-date"]
|
||||
verbose_name = "IoT Panel"
|
||||
verbose_name_plural = "IoT Panels"
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["flock", "timestamp"], name="uniq_iot_panel_flock_timestamp")
|
||||
]
|
||||
|
||||
|
||||
class AIInsight(models.Model):
|
||||
date = models.DateField()
|
||||
insight_text = models.TextField()
|
||||
alert = models.CharField(max_length=100)
|
||||
section = models.CharField(max_length=100)
|
||||
session = models.CharField(max_length=100)
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="ai_insights")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "ai_insight"
|
||||
ordering = ["-date"]
|
||||
|
||||
|
||||
class FeedSacks(models.Model):
|
||||
fs_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
in_today = models.IntegerField(default=0)
|
||||
out_today = models.IntegerField(default=0)
|
||||
in_total = models.IntegerField(default=0)
|
||||
out_total = models.IntegerField(default=0)
|
||||
feed_use_today = models.IntegerField(default=0)
|
||||
feed_use_total = models.IntegerField(default=0)
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="feed_sacks")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "feed_sacks"
|
||||
ordering = ["-date"]
|
||||
verbose_name_plural = "Feed sacks"
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["cycle", "date"], name="uniq_feed_sacks_cycle_date")
|
||||
]
|
||||
|
||||
|
||||
class ChickenCounting(models.Model):
|
||||
cc_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
total_count = models.IntegerField(default=0)
|
||||
mortality_count = models.IntegerField(default=0)
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="chicken_countings")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "chicken_counting"
|
||||
ordering = ["-date"]
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["cycle", "date"], name="uniq_chicken_counting_cycle_date")
|
||||
]
|
||||
|
||||
|
||||
class ChickenWeight(models.Model):
|
||||
cw_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
age = models.IntegerField()
|
||||
doc_weight = models.IntegerField()
|
||||
average_weight = models.FloatField()
|
||||
chicken_count = models.IntegerField()
|
||||
uniformity = models.FloatField()
|
||||
average_daily_gain = models.FloatField()
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="chicken_weights")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "chicken_weight"
|
||||
ordering = ["-date"]
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["cycle", "date"], name="uniq_cw_cycle_date")
|
||||
]
|
||||
|
||||
|
||||
class ManualInput(models.Model):
|
||||
manual_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
age_manual = models.IntegerField(default=0)
|
||||
mortality_manual = models.IntegerField(default=0)
|
||||
mortality_manual_total = models.IntegerField(default=0)
|
||||
feed_in_manual = models.IntegerField(default=0)
|
||||
feed_use_manual = models.IntegerField(default=0)
|
||||
feed_in_manual_total = models.IntegerField(default=0)
|
||||
feed_use_manual_total = models.IntegerField(default=0)
|
||||
feed_out_manual = models.IntegerField(default=0)
|
||||
feed_out_manual_total = models.IntegerField(default=0)
|
||||
harvest_manual = models.IntegerField(default=0)
|
||||
harvest_manual_total = models.IntegerField(default=0)
|
||||
harvest_weight_manual = models.FloatField(default=0.0)
|
||||
harvest_weight_manual_total = models.FloatField(default=0.0)
|
||||
manual_weight = models.FloatField(default=0.0)
|
||||
average_harvest_day_manual = models.FloatField(default=0.0)
|
||||
average_harvest_weight_manual = models.FloatField(default=0.0)
|
||||
fcr_manual = models.FloatField(default=0.0)
|
||||
eef_manual = models.FloatField(default=0.0)
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="manual_inputs")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "manual_input"
|
||||
ordering = ["-date"]
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["cycle", "date"], name="uniq_manual_input_cycle_date")
|
||||
]
|
||||
|
||||
|
||||
class KPI(models.Model):
|
||||
kpi_id = models.BigAutoField(primary_key=True)
|
||||
date = models.DateField()
|
||||
age = models.IntegerField(default=0)
|
||||
mortality = models.IntegerField(default=0)
|
||||
mortality_total = models.IntegerField(default=0)
|
||||
feed = models.IntegerField(default=0)
|
||||
feed_total = models.IntegerField(default=0)
|
||||
harvest = models.IntegerField(default=0)
|
||||
harvest_total = models.IntegerField(default=0)
|
||||
harvest_weight = models.FloatField(default=0.0)
|
||||
harvest_weight_total = models.FloatField(default=0.0)
|
||||
chicken_life = models.IntegerField(default=0)
|
||||
chicken_life_percentage = models.FloatField(default=0.0)
|
||||
iot_weight = models.FloatField(default=0.0)
|
||||
average_harvest_day = models.FloatField(default=0.0)
|
||||
average_harvest_weight = models.FloatField(default=0.0)
|
||||
fcr = models.FloatField(default=0.0)
|
||||
eef = models.FloatField(default=0.0)
|
||||
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name="kpis")
|
||||
cc = models.ForeignKey(ChickenCounting, on_delete=models.RESTRICT, related_name="kpis")
|
||||
cw = models.ForeignKey(ChickenWeight, on_delete=models.RESTRICT, related_name="kpis")
|
||||
fs = models.ForeignKey(FeedSacks, on_delete=models.RESTRICT, related_name="kpis")
|
||||
manual = models.ForeignKey(ManualInput, on_delete=models.RESTRICT, related_name="kpis")
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "kpi"
|
||||
ordering = ["-date"]
|
||||
verbose_name_plural = "KPIs"
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["cycle", "date"], name="uniq_kpi_cycle_date")
|
||||
]
|
||||
Reference in new issue
Block a user