import django.db.models.deletion
from django.db import migrations, models


def organization_field():
    return models.ForeignKey(
        on_delete=django.db.models.deletion.PROTECT, related_name="+", to="organizations.organization"
    )


class Migration(migrations.Migration):

    dependencies = [
        ("infrastructure", "0004_attendance_organization_backfill"),
    ]

    operations = [
        migrations.AlterField(model_name=name, name="organization", field=organization_field())
        for name in ("attendance", "holiday", "workschedule", "leaverequest")
    ] + [
        migrations.RemoveConstraint(model_name="attendance", name="unique_user_date_attendance"),
        migrations.RemoveIndex(model_name="attendance", name="attendances_user_id_e63f54_idx"),
        migrations.RemoveIndex(model_name="leaverequest", name="leave_reque_user_id_51928d_idx"),
        migrations.AlterField(model_name="holiday", name="date", field=models.DateField()),
        migrations.AlterField(
            model_name="workschedule", name="date", field=models.DateField(blank=True, null=True)
        ),
        migrations.AddIndex(
            model_name="attendance",
            index=models.Index(fields=["organization", "user", "date"], name="attendances_organiz_bcbd07_idx"),
        ),
        migrations.AddIndex(
            model_name="leaverequest",
            index=models.Index(fields=["organization", "user", "date"], name="leave_reque_organiz_bed95d_idx"),
        ),
        migrations.AddConstraint(
            model_name="attendance",
            constraint=models.UniqueConstraint(
                fields=("organization", "user", "date"), name="unique_org_user_date_attendance"
            ),
        ),
        migrations.AddConstraint(
            model_name="holiday",
            constraint=models.UniqueConstraint(fields=("organization", "date"), name="unique_org_holiday_date"),
        ),
        migrations.AddConstraint(
            model_name="workschedule",
            constraint=models.UniqueConstraint(fields=("organization", "date"), name="unique_org_schedule_date"),
        ),
    ]
