import apps.procurements.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):
    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ("finance", "0008_budgetitem_allocation"),
        ("procurements", "0009_requisition_operational_scope"),
    ]
    operations = [
        migrations.AddField(model_name="purchaseorder", name="created_by", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="created_purchase_orders", to=settings.AUTH_USER_MODEL)),
        migrations.AddField(model_name="purchaseorder", name="issued_by", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="issued_purchase_orders", to=settings.AUTH_USER_MODEL)),
        migrations.AddField(model_name="purchaseorder", name="issued_at", field=models.DateTimeField(blank=True, null=True)),
        migrations.AddField(model_name="purchaseorder", name="currency", field=models.CharField(default="IDR", max_length=10)),
        migrations.CreateModel(
            name="BudgetCommitment",
            fields=[
                ("id", models.UUIDField(default=apps.procurements.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ("amount", models.DecimalField(decimal_places=2, max_digits=18)),
                ("currency", models.CharField(default="IDR", max_length=10)),
                ("status", models.CharField(choices=[("active", "Active"), ("consumed", "Consumed"), ("released", "Released")], default="active", max_length=20)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("released_at", models.DateTimeField(blank=True, null=True)),
                ("budget_item", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="procurement_commitments", to="finance.budgetitem")),
                ("purchase_order", models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, related_name="budget_commitment", to="procurements.purchaseorder")),
            ],
            options={"db_table": "procurement_budget_commitments"},
        ),
    ]
