# Generated by Django 6.1.1 on 2026-11-01 22:22

import django.db.models.deletion
import uuid
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('careers', '0004_player_retirement_legacy_engine'),
        ('clubs', '0008_clubidentitydesign_cluboperationevent_and_more'),
        ('matches', '0031_governed_friendlies'),
        ('staff', '0002_match_analyst_role'),
    ]

    operations = [
        migrations.CreateModel(
            name='StaffMatchEffect',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('payload', models.JSONField()),
                ('evidence_hash', models.CharField(max_length=64)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.RemoveConstraint(
            model_name='clubstaffassignment',
            name='uq_active_staff_role',
        ),
        migrations.RemoveConstraint(
            model_name='clubstaffassignment',
            name='staff_assign_valid_role',
        ),
        migrations.RemoveConstraint(
            model_name='staffmember',
            name='staff_valid_specialty',
        ),
        migrations.RemoveConstraint(
            model_name='staffmember',
            name='staff_source_specialty_ok',
        ),
        migrations.AddField(
            model_name='staffmember',
            name='catalog_key',
            field=models.CharField(blank=True, max_length=80, null=True, unique=True),
        ),
        migrations.AddField(
            model_name='staffmember',
            name='minimum_salary',
            field=models.DecimalField(decimal_places=2, default=5, max_digits=18),
        ),
        migrations.AddField(
            model_name='staffmember',
            name='tier',
            field=models.CharField(choices=[('AMATEUR', 'AMATEUR'), ('NORMAL', 'NORMAL'), ('PROFESSIONAL', 'PROFESSIONAL'), ('SUPERSTAR', 'SUPERSTAR')], default='AMATEUR', max_length=16),
        ),
        migrations.AlterField(
            model_name='clubstaffassignment',
            name='role',
            field=models.CharField(choices=[('HEAD_COACH', 'Head Coach'), ('ASSISTANT_COACH', 'Assistant Coach'), ('FITNESS_COACH', 'Fitness Coach'), ('GOALKEEPER_COACH', 'Goalkeeper Coach'), ('ANALYST', 'Analyst'), ('DOCTOR', 'Doctor')], max_length=24),
        ),
        migrations.AlterField(
            model_name='staffmember',
            name='specialty',
            field=models.CharField(choices=[('HEAD_COACH', 'Head Coach'), ('ASSISTANT_COACH', 'Assistant Coach'), ('FITNESS_COACH', 'Fitness Coach'), ('GOALKEEPER_COACH', 'Goalkeeper Coach'), ('ANALYST', 'Analyst'), ('DOCTOR', 'Doctor')], max_length=24),
        ),
        migrations.AddConstraint(
            model_name='clubstaffassignment',
            constraint=models.CheckConstraint(condition=models.Q(('role__in', ('HEAD_COACH', 'ASSISTANT_COACH', 'FITNESS_COACH', 'GOALKEEPER_COACH', 'ANALYST', 'DOCTOR'))), name='staff_assign_valid_role'),
        ),
        migrations.AddConstraint(
            model_name='clubstaffassignment',
            constraint=models.UniqueConstraint(condition=models.Q(('status', 'ACTIVE'), models.Q(('role', 'ASSISTANT_COACH'), _negated=True)), fields=('club', 'role'), name='uq_active_staff_role'),
        ),
        migrations.AddConstraint(
            model_name='staffmember',
            constraint=models.CheckConstraint(condition=models.Q(('specialty__in', ('HEAD_COACH', 'ASSISTANT_COACH', 'FITNESS_COACH', 'GOALKEEPER_COACH', 'ANALYST', 'DOCTOR'))), name='staff_valid_specialty'),
        ),
        migrations.AddConstraint(
            model_name='staffmember',
            constraint=models.CheckConstraint(condition=models.Q(models.Q(('coach_career__isnull', False), ('source_type', 'CAREER'), ('specialty', 'HEAD_COACH')), models.Q(('coach_career__isnull', True), ('source_type', 'NPC'), ('specialty__in', ('ASSISTANT_COACH', 'FITNESS_COACH', 'GOALKEEPER_COACH', 'ANALYST', 'DOCTOR'))), _connector='OR'), name='staff_source_specialty_ok'),
        ),
        migrations.AddField(
            model_name='staffmatcheffect',
            name='club',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='clubs.club'),
        ),
        migrations.AddField(
            model_name='staffmatcheffect',
            name='match',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='matches.match'),
        ),
        migrations.AddConstraint(
            model_name='staffmatcheffect',
            constraint=models.UniqueConstraint(fields=('match', 'club'), name='staff_effect_match_club_unique'),
        ),
    ]
