from fastapi import HTTPException, status class AuthenticationError(HTTPException): """인증 오류""" def __init__(self, detail: str = "인증에 실패했습니다"): super().__init__(status_code=status.HTTP_401_UNAUTHORIZED, detail=detail) class PermissionDeniedError(HTTPException): """권한 부족 오류""" def __init__(self, detail: str = "권한이 없습니다"): super().__init__(status_code=status.HTTP_403_FORBIDDEN, detail=detail) class NotFoundError(HTTPException): """리소스를 찾을 수 없음""" def __init__(self, detail: str = "리소스를 찾을 수 없습니다"): super().__init__(status_code=status.HTTP_404_NOT_FOUND, detail=detail) class BadRequestError(HTTPException): """잘못된 요청""" def __init__(self, detail: str = "잘못된 요청입니다"): super().__init__(status_code=status.HTTP_400_BAD_REQUEST, detail=detail) class ConflictError(HTTPException): """충돌 오류 (중복 등)""" def __init__(self, detail: str = "이미 존재하는 리소스입니다"): super().__init__(status_code=status.HTTP_409_CONFLICT, detail=detail) class InternalServerError(HTTPException): """서버 내부 오류""" def __init__(self, detail: str = "서버 오류가 발생했습니다"): super().__init__(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=detail)