200 lines
10 KiB
Python
200 lines
10 KiB
Python
# Generated by Django 5.2.17 on 2026-08-18 08:01
|
|
|
|
import django.db.models.deletion
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('farms', '0001_initial'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='AIInsight',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('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)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ai_insights', to='farms.cycle')),
|
|
],
|
|
options={
|
|
'db_table': 'ai_insight',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ChickenCounting',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('date', models.DateField()),
|
|
('total_count', models.IntegerField(default=0)),
|
|
('mortality_count', models.IntegerField(default=0)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chicken_countings', to='farms.cycle')),
|
|
],
|
|
options={
|
|
'db_table': 'chicken_counting',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ChickenWeight',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('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()),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chicken_weights', to='farms.cycle')),
|
|
],
|
|
options={
|
|
'db_table': 'chicken_weight',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='FeedSacks',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('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)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feed_sacks', to='farms.cycle')),
|
|
],
|
|
options={
|
|
'verbose_name_plural': 'Feed sacks',
|
|
'db_table': 'feed_sacks',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='IotPanel',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('date', models.DateField()),
|
|
('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)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('flock', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='iot_panels', to='farms.flock')),
|
|
],
|
|
options={
|
|
'verbose_name': 'IoT Panel',
|
|
'verbose_name_plural': 'IoT Panels',
|
|
'db_table': 'iot_panel',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='ManualInput',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('date', models.DateField()),
|
|
('age_manual', models.IntegerField(default=0)),
|
|
('mortality_manual', models.IntegerField(default=0)),
|
|
('mortality_manual_total', models.IntegerField(default=0)),
|
|
('feed_manual', models.IntegerField(default=0)),
|
|
('feed_manual_total', models.IntegerField(default=0)),
|
|
('harvest_manual', models.IntegerField(default=0)),
|
|
('harvest_manual_total', models.IntegerField(default=0)),
|
|
('harvest_weight_manual', models.IntegerField(default=0)),
|
|
('harvest_weight_manual_total', models.IntegerField(default=0)),
|
|
('manual_weight_float', 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)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='manual_inputs', to='farms.cycle')),
|
|
],
|
|
options={
|
|
'db_table': 'manual_input',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='KPI',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('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.IntegerField(default=0)),
|
|
('harvest_weight_total', models.IntegerField(default=0)),
|
|
('chicken_life', models.IntegerField(default=0)),
|
|
('chicken_life_percentage', models.FloatField(default=0.0)),
|
|
('lot_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)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('cc', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, related_name='kpis', to='operations.chickencounting')),
|
|
('cw', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, related_name='kpis', to='operations.chickenweight')),
|
|
('cycle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='kpis', to='farms.cycle')),
|
|
('fs', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, related_name='kpis', to='operations.feedsacks')),
|
|
('manual', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, related_name='kpis', to='operations.manualinput')),
|
|
],
|
|
options={
|
|
'verbose_name_plural': 'KPIs',
|
|
'db_table': 'kpi',
|
|
'ordering': ['-date'],
|
|
},
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='chickencounting',
|
|
constraint=models.UniqueConstraint(fields=('cycle', 'date'), name='uniq_chicken_counting_cycle_date'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='chickenweight',
|
|
constraint=models.UniqueConstraint(fields=('cycle', 'date'), name='uniq_cw_cycle_date'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='feedsacks',
|
|
constraint=models.UniqueConstraint(fields=('cycle', 'date'), name='uniq_feed_sacks_cycle_date'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='iotpanel',
|
|
constraint=models.UniqueConstraint(fields=('flock', 'date'), name='uniq_iot_panel_flock_date'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='manualinput',
|
|
constraint=models.UniqueConstraint(fields=('cycle', 'date'), name='uniq_manual_input_cycle_date'),
|
|
),
|
|
migrations.AddConstraint(
|
|
model_name='kpi',
|
|
constraint=models.UniqueConstraint(fields=('cycle', 'date'), name='uniq_kpi_cycle_date'),
|
|
),
|
|
]
|