# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations 
from django.conf import settings

def create_api_permission(apps, schema_editor):
    """Creates the 'use_api' permission if not created.

    The 'use_api' is a fake permission in the sense it is not associated with an
    existing model and this ensure the permission is created.
    """
    ContentType = apps.get_model("contenttypes", "ContentType")
    Permission = apps.get_model("auth", "Permission")
    api_content_type, created = ContentType.objects.get_or_create(
        app_label=settings.API_CONTENT_TYPE_APP_LABEL,
        model=settings.API_CONTENT_TYPE_MODEL,
    )
    if created:
        api_content_type.save()
    api_permission, created = Permission.objects.get_or_create(
        name=settings.API_PERMISSION_NAME,
        content_type=api_content_type,
        codename=settings.API_PERMISSION_CODENAME,
    )
    if created:
        api_permission.save()

class Migration(migrations.Migration):
    initial = True
    dependencies = []
    operations = [
            migrations.RunPython(create_api_permission)
            ]