from fastapi import HTTPException, status # Базовое исключение class BlackPhoenixException(HTTPException): status_code = 500 detail = "" def __init__(self): super().__init__(status_code=self.status_code, detail=self.detail) class UserAlreadyExistsException(BlackPhoenixException): status_code = status.HTTP_409_CONFLICT detail = "Пользователь с таким ником или почтой уже существует" class UsernameAlreadyInUseException(BlackPhoenixException): status_code = status.HTTP_409_CONFLICT detail = "Ник занят" class IncorrectAuthDataException(BlackPhoenixException): status_code = status.HTTP_401_UNAUTHORIZED detail = "Введены не верные данные" class IncorrectTokenFormatException(BlackPhoenixException): status_code = status.HTTP_401_UNAUTHORIZED detail = "Некорректный формат токена" class TokenAbsentException(BlackPhoenixException): status_code = status.HTTP_401_UNAUTHORIZED detail = "Токен отсутствует" class TokenExpiredException(BlackPhoenixException): status_code = status.HTTP_401_UNAUTHORIZED detail = "Токен истёк" class UserIsNotPresentException(BlackPhoenixException): status_code = status.HTTP_401_UNAUTHORIZED class PasswordIsTooShortException(BlackPhoenixException): status_code = status.HTTP_409_CONFLICT detail = "Пароль должен быть не менее 8 символов" class IncorrectLengthOfNicknameException(BlackPhoenixException): status_code = status.HTTP_409_CONFLICT detail = "Ник должен быть не короче 2 и не длиннее 30 символов" class UserDontHavePermissionException(BlackPhoenixException): status_code = status.HTTP_409_CONFLICT detail = "У вас нет прав для этого действия" class MessageNotFoundException(BlackPhoenixException): status_code = status.HTTP_404_NOT_FOUND detail = "Сообщение не найдено"