# 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'), ), ]