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), ("procurements", "0014_procurement_event")]
    operations = [
        migrations.AlterField(model_name="budgetcommitment", name="purchase_order", field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="budget_commitment", to="procurements.purchaseorder")),
        migrations.AddField(model_name="procurementcontract", name="requisition", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="procurement_contracts", to="procurements.requisition")),
        migrations.AddField(model_name="procurementcontract", name="created_by", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="created_procurement_contracts", to=settings.AUTH_USER_MODEL)),
        migrations.AddField(model_name="procurementcontract", name="signed_by", field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="signed_procurement_contracts", to=settings.AUTH_USER_MODEL)),
        migrations.AddField(model_name="procurementcontract", name="signed_at", field=models.DateTimeField(blank=True, null=True)),
        migrations.AddField(model_name="procurementcontract", name="currency", field=models.CharField(default="IDR", max_length=10)),
        migrations.AlterField(model_name="procurementcontract", name="status", field=models.CharField(choices=[("draft", "Draft"), ("active", "Active"), ("expired", "Expired"), ("terminated", "Terminated")], default="draft", max_length=20)),
        migrations.AddField(model_name="budgetcommitment", name="contract", field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name="budget_commitment", to="procurements.procurementcontract")),
        migrations.AddConstraint(model_name="budgetcommitment", constraint=models.CheckConstraint(condition=models.Q(models.Q(("contract__isnull", True), ("purchase_order__isnull", False)), models.Q(("contract__isnull", False), ("purchase_order__isnull", True)), _connector="OR"), name="commitment_exactly_one_source")),
    ]
