"""
Paso 1 de 3 del hasheo de las claves de API: añadir las columnas nuevas.

`key_prefix` nace SIN restriccion de unicidad a proposito. Añadir una columna
unica con un valor por defecto constante a una tabla que ya tiene filas falla:
todas quedarian con el mismo valor. La unicidad se impone en el paso 3, cuando
la migracion de datos ya ha dado a cada fila su propio prefijo.
"""

from django.db import migrations, models


class Migration(migrations.Migration):
    dependencies = [
        ("keys", "0002_apikeys_active_alter_apikeys_key"),
    ]

    operations = [
        migrations.AlterModelOptions(
            name="apikeys",
            options={
                "ordering": ("-created_at",),
                "verbose_name": "Clave",
                "verbose_name_plural": "Claves",
            },
        ),
        migrations.AddField(
            model_name="apikeys",
            name="key_prefix",
            field=models.CharField(
                blank=True,
                default="",
                editable=False,
                help_text=(
                    "Parte publica de la clave. Permite identificarla sin conocerla."
                ),
                max_length=64,
                verbose_name="Prefijo",
            ),
        ),
        migrations.AddField(
            model_name="apikeys",
            name="key_hash",
            field=models.CharField(
                default="", editable=False, max_length=64, verbose_name="Hash"
            ),
        ),
        migrations.AddField(
            model_name="apikeys",
            name="last_used_at",
            field=models.DateTimeField(
                blank=True, editable=False, null=True, verbose_name="Último uso"
            ),
        ),
        migrations.AddField(
            model_name="apikeys",
            name="revoked_at",
            field=models.DateTimeField(
                blank=True, null=True, verbose_name="Revocada el"
            ),
        ),
    ]
