# Содержание школы бабочковода
from dataclasses import dataclass
from typing import List


@dataclass
class Question:
    """Класс для вопроса школы"""
    number: int
    title: str
    learning_text: str
    question_text: str
    options: List[str]
    correct_answer: int  # 0-3
    explanation: str


# Школа бабочковода - 5 вопросов
SCHOOL_CURRICULUM = [
    Question(
        number=1,
        title="Кто такие бабочки?",
        learning_text=(
            "🦋 **Интересный факт:**\n\n"
            "Бабочки — это насекомые с четырьмя крыльями, покрытыми чешуйками. "
            "Их крылья создают прекрасные узоры, которые помогают им общаться с другими бабочками. "
            "Есть более 400 000 видов бабочек! Красиво, правда? ✨"
        ),
        question_text="Сколько крыльев у бабочки?",
        options=["2 крыла", "4 крыла", "6 крыльев", "8 крыльев"],
        correct_answer=1,
        explanation="Правильно! У бабочек 4 крыла, расположенные попарно спереди и сзади. Они используют их, чтобы летать в поисках цветов и друзей."
    ),
    Question(
        number=2,
        title="Что едят бабочки?",
        learning_text=(
            "🌸 **Вкусная жизнь:**\n\n"
            "Бабочки — большие любительницы сладкого! Они пьют нектар из цветов, "
            "используя свой длинный хоботок (как соломинка). "
            "Некоторые бабочки также едят спелые фрукты и грязь для получения минералов."
        ),
        question_text="Как бабочка пьет нектар из цветка?",
        options=["Грызёт цветок", "Использует хоботок как трубочку", "Проглатывает весь цветок", "Не пьет вообще"],
        correct_answer=1,
        explanation="Умница! Бабочки имеют длинный хоботок (спираль), который они разворачивают и вставляют в цветок, как соломинку, чтобы пить нектар."
    ),
    Question(
        number=3,
        title="Жизненный цикл бабочки",
        learning_text=(
            "🔄 **Волшебное превращение:**\n\n"
            "Бабочка проходит четыре стадии жизни:\n"
            "1️⃣ Яйцо (самое маленькое)\n"
            "2️⃣ Гусеница (очень голодная и прожорливая!)\n"
            "3️⃣ Куколка (спит внутри кокона)\n"
            "4️⃣ Бабочка (летает и радуется жизни)\n\n"
            "Всё это называется метаморфозом — чудесным преобразованием!"
        ),
        question_text="Сколько стадий в жизни бабочки?",
        options=["1 стадия", "2 стадии", "3 стадии", "4 стадии"],
        correct_answer=3,
        explanation="Отлично! Бабочка проходит 4 стадии: яйцо → гусеница → куколка → бабочка. Это невероятное путешествие длится несколько недель!"
    ),
    Question(
        number=4,
        title="Где живут бабочки?",
        learning_text=(
            "🌍 **По всему миру:**\n\n"
            "Бабочки живут почти везде на Земле! Они встречаются в лесах, полях, горах, "
            "садах, парках и даже в городах. Одни бабочки любят тепло, другие — прохладу. "
            "Больше всего бабочек в тропических лесах, где очень много разных цветов!"
        ),
        question_text="Где ты можешь встретить бабочку?",
        options=["Только в лесу", "Только в пустыне", "Только в горах", "В садах, лесах, полях и парках"],
        correct_answer=3,
        explanation="Верно! Бабочки встречаются почти везде, особенно там, где растут цветы. Прогулка по парку летом — отличный способ увидеть их!"
    ),
    Question(
        number=5,
        title="Как стать ловцом бабочек?",
        learning_text=(
            "🎯 **Искусство наблюдения:**\n\n"
            "Настоящий ловец бабочек — это не тот, кто их ловит! "
            "Это человек, который понимает, уважает и защищает бабочек. "
            "Ловец наблюдает, учится, делится знаниями и помогает сохранить эти чудесные создания. "
            "Присоединись к нашему сообществу Fly-Fly и стань часть большой стаи ловцов!"
        ),
        question_text="Что нужно ловцу бабочек в первую очередь?",
        options=["Сачок и банка", "Терпение и знания", "Огромная коллекция", "Быстрые ноги"],
        correct_answer=1,
        explanation="Совершенно верно! Настоящий ловец полон терпения и знаний. Он наблюдает, учится, и со временем становится экспертом в мире бабочек!"
    ),
]


def get_question(number: int) -> Question:
    """Получить вопрос по номеру (1-5)"""
    if 1 <= number <= 5:
        return SCHOOL_CURRICULUM[number - 1]
    return None


def validate_answer(question_number: int, answer_index: int) -> bool:
    """Проверить, правильный ли ответ"""
    question = get_question(question_number)
    if question:
        return answer_index == question.correct_answer
    return False


def get_answer_explanation(question_number: int) -> str:
    """Получить объяснение после ответа"""
    question = get_question(question_number)
    if question:
        return question.explanation
    return ""
