Django_Basic_Manufacturing_3/apps/inventory/migrations/0001_initial.py
2025-08-22 17:05:22 +07:00

226 lines
7.7 KiB
Python

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