"""
Crea el módulo Search Console, único del primer corte.

Las APIs y los permisos viven en la fila y no en el código porque son
exactamente lo que la guía le muestra al usuario: la pantalla los lee de acá, de
modo que agregar un módulo nuevo no obliga a tocar ninguna plantilla.
"""

import uuid

from django.db import migrations

CODE = 'SEARCH_CONSOLE'


def crear_modulo(apps, schema_editor):
    Module = apps.get_model('credentials', 'Module')
    Module.objects.update_or_create(
        code=CODE,
        defaults={
            'id': uuid.uuid4(),
            'name': 'Search Console',
            'required_apis': [
                {
                    'service': 'searchconsole.googleapis.com',
                    'name': 'Google Search Console API',
                    'console_path': 'APIs y servicios → Biblioteca → Google Search Console API',
                }
            ],
            # De sólo lectura: alcanza para leer cobertura y listar sitemaps, y
            # el envío de sitemaps usa el mismo permiso. Pedir el alcance de
            # escritura completo daría acceso a cosas que el producto no hace.
            'required_scopes': ['https://www.googleapis.com/auth/webmasters'],
        },
    )


def borrar_modulo(apps, schema_editor):
    Module = apps.get_model('credentials', 'Module')
    Module.objects.filter(code=CODE).delete()


class Migration(migrations.Migration):
    dependencies = [('credentials', '0001_initial')]

    operations = [migrations.RunPython(crear_modulo, borrar_modulo)]
