# 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 = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Category", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=100)), ("description", models.TextField(blank=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name="Product", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("code", models.CharField(max_length=50, unique=True)), ("name", models.CharField(max_length=200)), ("description", models.TextField(blank=True)), ( "product_type", models.CharField( choices=[ ("raw_material", "Raw Material"), ("finished_good", "Finished Good"), ("component", "Component"), ], max_length=20, ), ), ( "reorder_level", models.DecimalField(decimal_places=2, default=0, max_digits=10), ), ( "selling_price", models.DecimalField( blank=True, decimal_places=2, max_digits=10, null=True ), ), ( "cost_price", models.DecimalField( blank=True, decimal_places=2, max_digits=10, null=True ), ), ("is_active", models.BooleanField(default=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( "category", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="inventory.category", ), ), ], ), migrations.CreateModel( name="UnitOfMeasure", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=50)), ("abbreviation", models.CharField(max_length=10)), ], ), migrations.CreateModel( name="Warehouse", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=100)), ("location", models.CharField(max_length=200)), ("is_active", models.BooleanField(default=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name="StockMovement", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "movement_type", models.CharField( choices=[ ("in", "Stock In"), ("out", "Stock Out"), ("adjustment", "Adjustment"), ("transfer", "Transfer"), ], max_length=20, ), ), ("quantity", models.DecimalField(decimal_places=2, max_digits=10)), ("reference_number", models.CharField(blank=True, max_length=100)), ("notes", models.TextField(blank=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ( "created_by", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="inventory.product", ), ), ( "warehouse", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="inventory.warehouse", ), ), ], ), migrations.AddField( model_name="product", name="unit_of_measure", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to="inventory.unitofmeasure", ), ), migrations.CreateModel( name="Inventory", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "quantity", models.DecimalField(decimal_places=2, default=0, max_digits=10), ), ( "reserved_quantity", models.DecimalField(decimal_places=2, default=0, max_digits=10), ), ("updated_at", models.DateTimeField(auto_now=True)), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="inventory.product", ), ), ( "warehouse", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="inventory.warehouse", ), ), ], options={ "unique_together": {("product", "warehouse")}, }, ), ]