"""
Sube la reserva manual de 200 a 1000.

`AlterField` sola no alcanza: cambiar el valor por omisión de una columna sólo
afecta a las filas que se creen de ahora en adelante, y los dominios que ya
existen seguirían con 200. Como el dato que se nota es **cuántas URLs entran en
una tanda manual**, sin migrar los existentes el botón seguiría procesando 200 y
el cambio parecería no haber pasado.

Se suben **sólo los que están en 200**, que es el valor por omisión anterior: un
dominio con otro número lo tiene porque alguien lo eligió, y pisarlo sería
descartar esa decisión sin avisar.

En sentido inverso baja de 1000 a 200 con el mismo criterio, para que la
migración se pueda deshacer sin dejar los dominios con un valor que no eligió
nadie.
"""

from django.db import migrations, models

OLD_DEFAULT = 200
NEW_DEFAULT = 1000


def raise_reserve(apps, schema_editor):
    Domain = apps.get_model('domains', 'Domain')
    Domain.objects.filter(manual_reserve=OLD_DEFAULT).update(manual_reserve=NEW_DEFAULT)


def lower_reserve(apps, schema_editor):
    Domain = apps.get_model('domains', 'Domain')
    Domain.objects.filter(manual_reserve=NEW_DEFAULT).update(manual_reserve=OLD_DEFAULT)


class Migration(migrations.Migration):
    dependencies = [
        ('domains', '0005_domain_deactivated_at'),
    ]

    operations = [
        migrations.AlterField(
            model_name='domain',
            name='manual_reserve',
            field=models.PositiveIntegerField(default=NEW_DEFAULT),
        ),
        migrations.RunPython(raise_reserve, lower_reserve),
    ]
