from django.db import migrations


def seed_story(apps, schema_editor):
    Scene = apps.get_model("core", "Scene")
    Choice = apps.get_model("core", "Choice")
    Item = apps.get_model("core", "Item")

    if Scene.objects.exists():
        return

    starter_item = Item.objects.create(
        name="Серебряный знак Стылого Волка",
        slot="trinket",
        power=1,
        description="Амулет, усиливающий чутьё на нечисть.",
    )
    blade = Item.objects.create(
        name="Клинок мокрых троп",
        slot="weapon",
        power=3,
        description="Лёгкий меч, выкованный для болотных дуэлей.",
    )

    prologue = Scene.objects.create(
        title="Угольный тракт",
        slug="prologue",
        body=(
            "Над трактом висит туман, а трактирщик шепчет о пропавших караванах. "
            "Вам предлагают золото и место у огня, если вы проверите болото."
        ),
    )
    crossroads = Scene.objects.create(
        title="Перепутье болот",
        slug="crossroads",
        body=(
            "Дорога дробится на три тропы. В одной слышен шёпот, в другой — скрежет стали, "
            "третья уходит в заросли, где поблескивает огонёк."
        ),
    )
    lair = Scene.objects.create(
        title="Логово на мели",
        slug="lair",
        body=(
            "Вы находите гнездо твари раньше, чем она замечает вас. Пахнет железом и болотной "
            "травой. Время решить, как закончится охота."
        ),
    )
    ambush = Scene.objects.create(
        title="Засада в камышах",
        slug="ambush",
        body=(
            "Тварь поднимается прямо из воды. Ваша спина касается холодного дерева, а туман "
            "съедает пути отступления."
        ),
    )
    village = Scene.objects.create(
        title="Поселение Гнилых крыш",
        slug="village",
        body=(
            "В деревне тихо. Староста готов говорить только после того, как вы разделите "
            "с ним кружку чёрного настоя."
        ),
    )

    Choice.objects.create(
        scene=prologue,
        text="Принять заказ и выдвинуться к болоту.",
        next_scene=crossroads,
    )
    Choice.objects.create(
        scene=prologue,
        text="Сначала расспросить старосту о пропавших.",
        next_scene=village,
    )
    Choice.objects.create(
        scene=crossroads,
        text="Выслеживать тварь по следам (Фокус 12).",
        required_skill="focus",
        difficulty=12,
        success_scene=lair,
        fail_scene=ambush,
        reward_item=blade,
    )
    Choice.objects.create(
        scene=crossroads,
        text="Зажечь факелы и идти напролом.",
        next_scene=ambush,
    )
    Choice.objects.create(
        scene=village,
        text="Попросить алхимические сведения (Алхимия 12).",
        required_skill="alchemy",
        difficulty=12,
        success_scene=crossroads,
        fail_scene=prologue,
    )
    Choice.objects.create(
        scene=ambush,
        text="Отступить к тракту и перегруппироваться.",
        next_scene=prologue,
    )
    Choice.objects.create(
        scene=lair,
        text="Проверить добычу и вернуться с трофеями.",
        next_scene=prologue,
        reward_item=starter_item,
    )


def unseed_story(apps, schema_editor):
    Scene = apps.get_model("core", "Scene")
    Choice = apps.get_model("core", "Choice")
    Item = apps.get_model("core", "Item")
    Choice.objects.all().delete()
    Scene.objects.all().delete()
    Item.objects.all().delete()


class Migration(migrations.Migration):
    dependencies = [
        ("core", "0001_initial"),
    ]

    operations = [
        migrations.RunPython(seed_story, unseed_story),
    ]
