"""Кастомные исключения для приложения""" class AppException(Exception): """Базовое исключение приложения""" def __init__(self, message: str, details: dict = None): self.message = message self.details = details or {} super().__init__(self.message) class CallEventAlreadyExistsError(AppException): """Событие звонка с таким call_session_id уже существует""" def __init__(self, call_session_id: int): super().__init__( message=f"Call event with session_id {call_session_id} already exists", details={"call_session_id": call_session_id} ) class DatabaseError(AppException): """Ошибка работы с базой данных""" pass class ValidationError(AppException): """Ошибка валидации данных""" pass