import uuid
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):
    dependencies = [
        ("transfers", "0004_transfer_completion_integrity"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]
    operations = [
        migrations.CreateModel(
            name="TransferPartyApproval",
            fields=[
                ("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ("role", models.CharField(choices=[("PLAYER", "Player"), ("SOURCE_CLUB", "Source club"), ("DESTINATION_CLUB", "Destination club")], max_length=20)),
                ("approved_at", models.DateTimeField(auto_now_add=True)),
                ("approved_by", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="transfer_party_approvals", to=settings.AUTH_USER_MODEL)),
                ("transfer", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="party_approvals", to="transfers.transfer")),
            ],
            options={"ordering": ["approved_at", "id"]},
        ),
        migrations.AddConstraint(model_name="transferpartyapproval", constraint=models.UniqueConstraint(fields=("transfer", "role"), name="uq_transfer_party_approval_role")),
        migrations.AddConstraint(model_name="transferpartyapproval", constraint=models.CheckConstraint(condition=models.Q(("role__in", ["PLAYER", "SOURCE_CLUB", "DESTINATION_CLUB"])), name="transfer_party_approval_valid_role")),
    ]
