# Generated by Django 4.2.23 on 2025-08-21 02:29 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ("inventory", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="BillOfMaterial", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("bom_code", models.CharField(max_length=50, unique=True)), ("version", models.CharField(default="1.0", max_length=20)), ("is_active", models.BooleanField(default=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="boms", to="inventory.product", ), ), ], ), migrations.CreateModel( name="ManufacturingOrder", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("mo_number", models.CharField(max_length=50, unique=True)), ( "quantity_to_produce", models.DecimalField(decimal_places=2, max_digits=10), ), ("scheduled_start_date", models.DateField()), ("scheduled_end_date", models.DateField()), ("actual_start_date", models.DateField(blank=True, null=True)), ("actual_end_date", models.DateField(blank=True, null=True)), ( "status", models.CharField( choices=[ ("in_progress", "In Progress"), ("completed", "Completed"), ("cancelled", "Cancelled"), ], default="in_progress", max_length=20, ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "bom", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="manufacturing.billofmaterial", ), ), ( "created_by", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], ), migrations.CreateModel( name="MOComponent", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "required_quantity", models.DecimalField(decimal_places=2, max_digits=10), ), ( "consumed_quantity", models.DecimalField(decimal_places=2, default=0, max_digits=10), ), ( "component", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="inventory.product", ), ), ( "mo", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="components", to="manufacturing.manufacturingorder", ), ), ], options={ "unique_together": {("mo", "component")}, }, ), migrations.CreateModel( name="BOMItem", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("quantity", models.DecimalField(decimal_places=2, max_digits=10)), ( "bom", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="items", to="manufacturing.billofmaterial", ), ), ( "component", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="bom_components", to="inventory.product", ), ), ( "unit_of_measure", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to="inventory.unitofmeasure", ), ), ], options={ "unique_together": {("bom", "component")}, }, ), ]