package com.takensoft.common.message; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; /** * @author takensoft * @since 2025.01.22 * @modification * since | author | description * 2025.01.22 | takensoft | 최초 등록 * 2025.03.21 | 하석형 | FILE_UPLOAD_FAIL, COMMON_PROHIBITION_WORD 추가 * * 시스템에서 발생할 수 있는 코드 메시지들을 정의 */ @AllArgsConstructor @Getter public enum MessageCode { // 공통 COMMON_SUCCESS("common.success", HttpStatus.OK), // 처리 성공 COMMON_UNKNOWN_ERROR("common.unknown", HttpStatus.INTERNAL_SERVER_ERROR), // 일반적인 오류 발생 COMMON_BAD_REQUEST("common.bad_request", HttpStatus.BAD_REQUEST), // 잘못된 요청 COMMON_NULL_POINT("common.null_point", HttpStatus.BAD_REQUEST), // NullPointer 발생 COMMON_ILLEGAL_ARGUMENT("common.illegal_argument", HttpStatus.BAD_REQUEST), // IllegalArgument 발생 COMMON_NOT_FOUND("common.not_found", HttpStatus.NOT_FOUND), // 정보가 존재 하지 않음 COMMON_METHOD_NOT_ALLOWED("common.method_not_allowed", HttpStatus.METHOD_NOT_ALLOWED), // 지원하지 않는 HTTP 메서드 COMMON_INSERT_FAIL("common.insert_fail", HttpStatus.INTERNAL_SERVER_ERROR), // 등록 실패 시 COMMON_UPDATE_FAIL("common.update_fail", HttpStatus.INTERNAL_SERVER_ERROR), // 수정 실패 시 COMMON_DELETE_FAIL("common.delete_fail", HttpStatus.INTERNAL_SERVER_ERROR), // 삭제 실패 시 COMMON_PAYLOAD_TOO_LARGE("common.payload_too_large",HttpStatus.PAYLOAD_TOO_LARGE), //파일 용량 초과 시 COMMON_DUPLICATION_CODE("common.duplication_code",HttpStatus.INTERNAL_SERVER_ERROR), //중복 코드 COMMON_DUPLICATION_DATA("common.duplication_data",HttpStatus.INTERNAL_SERVER_ERROR), //중복 데이터 COMMON_PROHIBITION_WORD("common.prohibition_word",HttpStatus.INTERNAL_SERVER_ERROR), //금지어 사용 시 //네트워크 관련 NETWORK_UNKNOWN_HOST("network.unknown_host", HttpStatus.BAD_REQUEST), // 알 수 없는 호스트 // SQL 관련 SQL_NULL_VALUE("sql.null_value", HttpStatus.BAD_REQUEST), // Null 값 위반 SQL_DUPLICATE_KEY("sql.duplicate_key", HttpStatus.CONFLICT), // 중복 키 위반 SQL_DATA_INTEGRITY("sql.data_integrity", HttpStatus.BAD_REQUEST), // 데이터 무결성 위반 SQL_UNKNOWN("sql.unknown", HttpStatus.INTERNAL_SERVER_ERROR), // 알 수 없는 SQL 에러 // jwt 관련 JWT_EXPIRED("jwt.expired", HttpStatus.UNAUTHORIZED), // JWT 토큰 만료 JWT_SIGNATURE_INVALID("jwt.signature_invalid", HttpStatus.UNAUTHORIZED), // JWT 서명 오류 JWT_INSUFFICIENT_AUTHENTICATION("jwt.insufficient_authentication", HttpStatus.FORBIDDEN), // 인증 정보 부족 // 접근 관련 ACCESS_DENIED("access.denied", HttpStatus.FORBIDDEN), // 권한 없음 UNAUTHORIZED_ACCESS("access.unauthorized", HttpStatus.UNAUTHORIZED), // 잘못된 접근 // 사용자 관련 SIGNUP_SUCCESS("user.signup.success", HttpStatus.OK), // 회원가입 성공 SIGNUP_ID_TAKEN("user.signup.id_taken", HttpStatus.CONFLICT), // 아이디 중복 SIGNUP_EMAIL_TAKEN("user.signup.email_taken", HttpStatus.CONFLICT), // 이메일 중복 LOGIN_USER_NOT_FOUND("user.login.user_not_found", HttpStatus.NOT_FOUND), // 사용자가 존재 하지 않는 경우 LOGIN_INVALID_CREDENTIALS("user.login.invalid_credentials", HttpStatus.UNAUTHORIZED), // 비밀번호 불일치 LOGIN_AUTHENTICATION_REQUIRED("user.login.authentication_required", HttpStatus.FORBIDDEN), // 인증 거부 LOGIN_ACCOUNT_LOCKED("user.login.account_locked", HttpStatus.LOCKED), // 계정 잠김 상태 LOGIN_ACCOUNT_DISABLED("user.login.account_disabled", HttpStatus.FORBIDDEN), // 계정 비활성화 LOGIN_ACCOUNT_EXPIRED("user.login.account_expired", HttpStatus.FORBIDDEN), // 계정 만료 LOGIN_CREDENTIALS_EXPIRED("user.login.credentials_expired", HttpStatus.FORBIDDEN), // 비밀번호 유효기간 만료 LOGOUT_SUCCESS("user.logout.success", HttpStatus.OK), // 로그아웃 성공 // 파일 관련 FILE_UPLOAD_FAIL("file.upload_fail", HttpStatus.INTERNAL_SERVER_ERROR); // 파일 업로드 실패 private final String messageKey; // 메시지 private final HttpStatus status; // HTTP 상태 }