package com.srsystem.exception; import lombok.Getter; import org.springframework.http.HttpStatus; @Getter public enum ErrorCode { RESIGNED_EMPLOYEE(HttpStatus.BAD_REQUEST, "EMP_ERR_001", "퇴사 처리된 직원 정보는 수정할 수 없습니다"), LOCKED_REPORT(HttpStatus.BAD_REQUEST, "RPT_ERR_001", "결재 완료 보고서는 수정/삭제할 수 없습니다"), FUTURE_REPORT_DATE(HttpStatus.BAD_REQUEST, "RPT_ERR_002", "미래 날짜의 업무 보고는 작성할 수 없습니다"), CLOSED_TICKET_MOD(HttpStatus.BAD_REQUEST, "TCK_ERR_001", "종료된 티켓은 댓글/수정이 불가능합니다"), ASSIGNEE_REQUIRED(HttpStatus.BAD_REQUEST, "TCK_ERR_002", "담당자 미배정 티켓은 IN_PROGRESS 전환 불가"), EQUIP_NOT_AVAILABLE(HttpStatus.BAD_REQUEST, "EQP_ERR_001", "지급 가능한 재고 상태가 아닙니다"), INVALID_ASSIGNEE(HttpStatus.BAD_REQUEST, "EQP_ERR_002", "재직 중인 직원에게만 장비 지급 가능"), SYSTEM_CONCURRENCY(HttpStatus.CONFLICT, "SYS_ERR_001", "동시성 충돌 - 다시 시도해 주세요"), DUPLICATE_LOGIN_ID(HttpStatus.CONFLICT, "EMP_ERR_002", "이미 사용 중인 로그인 ID 입니다"), INVALID_CREDENTIALS(HttpStatus.UNAUTHORIZED, "AUTH_ERR_001", "아이디 또는 비밀번호가 일치하지 않습니다"), EMPLOYEE_NOT_FOUND(HttpStatus.NOT_FOUND, "EMP_ERR_003", "직원을 찾을 수 없습니다"), TICKET_NOT_FOUND(HttpStatus.NOT_FOUND, "TCK_ERR_003", "티켓을 찾을 수 없습니다"), PROJECT_NOT_FOUND(HttpStatus.NOT_FOUND, "PRJ_ERR_001", "프로젝트를 찾을 수 없습니다"), EQUIPMENT_NOT_FOUND(HttpStatus.NOT_FOUND, "EQP_ERR_003", "장비를 찾을 수 없습니다"), REPORT_NOT_FOUND(HttpStatus.NOT_FOUND, "RPT_ERR_003", "보고서를 찾을 수 없습니다"), INVALID_ROLE(HttpStatus.FORBIDDEN, "AUTH_ERR_002", "권한이 없습니다"), DISPATCH_NOT_FOUND(HttpStatus.NOT_FOUND, "DSP_ERR_001", "파견 이력을 찾을 수 없습니다"), AUTH_INVALID_CREDENTIALS(HttpStatus.BAD_REQUEST, "AUTH_ERR_003", "현재 비밀번호가 일치하지 않습니다"), CODE_NOT_FOUND(HttpStatus.NOT_FOUND, "COD_ERR_001", "공통코드를 찾을 수 없습니다"), PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "PLN_ERR_001", "주간 계획을 찾을 수 없습니다"); private final HttpStatus httpStatus; private final String errorCode; private final String message; ErrorCode(HttpStatus httpStatus, String errorCode, String message) { this.httpStatus = httpStatus; this.errorCode = errorCode; this.message = message; } }