from django.db import migrations


def ensure_company_max_team_members(apps, schema_editor):
    SystemSetting = apps.get_model("contract", "SystemSetting")
    setting = SystemSetting.objects.filter(key="COMPANY_MAX_TEAM_MEMBERS").first()
    if setting is None:
        SystemSetting.objects.create(
            key="COMPANY_MAX_TEAM_MEMBERS",
            value="10",
            description="Maximum active members plus pending invitations allowed per company workspace.",
            is_active=True,
        )
        return

    updates = []
    if not str(setting.value or "").strip() or str(setting.value or "").strip() == "0":
        setting.value = "10"
        updates.append("value")
    if not setting.is_active:
        setting.is_active = True
        updates.append("is_active")
    if not str(setting.description or "").strip():
        setting.description = "Maximum active members plus pending invitations allowed per company workspace."
        updates.append("description")
    if updates:
        setting.save(update_fields=updates)


class Migration(migrations.Migration):

    dependencies = [
        ("contract", "0041_seed_company_max_team_members"),
    ]

    operations = [
        migrations.RunPython(ensure_company_max_team_members, migrations.RunPython.noop),
    ]
