from abc import (
    ABCMeta,
)

from function_tools.errors import (
    BaseError,
)


class WebEduError(BaseError, metaclass=ABCMeta):
    """Базовый класс для ошибок в системе интеграции с продуктами Образования.

    Предоставляет основную функциональность для обработки ошибок:
    - Форматирование сообщений об ошибках
    - Сохранение контекста возникновения ошибки
    - Классификация типов ошибок
    - Механизм обработки вложенных ошибок

    Note:
        При создании конкретных типов ошибок рекомендуется:
        - Определять специфичные коды ошибок
        - Предоставлять информативные сообщения
        - Включать контекстную информацию в details
    """
