package go.kr.project.api.config;

/**
 * 애플리케이션 전역에서 사용되는 상수를 관리하는 클래스
 *
 * <p>이 클래스는 하드코딩된 값들을 상수로 관리하여 유지보수성을 향상시킵니다.</p>
 * <ul>
 *   <li>연계 결과 코드</li>
 *   <li>시스템 상수</li>
 * </ul>
 */
public class ApiConstant {

    /*
    *
    코드	코드 상세	비고
    MSG50000	EAI 연계 호출을 성공적으로 처리하였습니다.	　
    MSG50001	요청하신 자료가 존재하지 않습니다.	　
    MSG50002	EAI 연계 호출결과 기준치보다 많은 결과조회로 인해 열람이 불가합니다.	　
    MSG50110	EAI 호출을 위한 Message(Header) 구성에 실패하였습니다.	기타 Exception에 의해  EAI 호출을 위한 Message(Header) 구성에 실패하였습니다.
    MSG50111	요청하신 연계정보 ID가 연계정보 테이블에 존재하지 않아, Message(Header)를 구성하는데 실패하였습니다.	EAI Client에서 Request Message Header 정보를 구성시 Header 정보가 연계정보 테이블에 없습
    MSG50112	요청하신 연계정보 ID가 interface.properties에 존재하지 않아 Message(Header)를 구성하는데 실패하였습니다.	　
    MSG50120	EAI 호출을 위한 Message(Common) 구성에 실패하였습니다.	　
    MSG50121	요청하신 연계정보 ID가 연계정보 테이블에 존재하지 않아, Message(Common)를 구성하는데 실패하였습니다.	　
    MSG50122	사용자 Session정보 획득에 실패하여, Message(Common)  구성에 실패하였습니다.	　
    MSG50130	EAI 호출을 위한 Message(Body) 구성에 실패하였습니다.	　
    MSG50131	자동차관리정보시스템 호출을위한 Message(DataSet)구성에 실패하였습니다.	　
    MSG50140	EAI Client Application Factory에서 Application Instance 획득에 실패하였습니다.	　
    MSG50150	EAI Client Application에서 Http Connection Exception이 발생하였습니다.	　
    MSG50160	기타 오류로 EAI Request가 실패하였습니다.	　
    MSG50170	EAI Response Message Parsing에 실패하였습니다.	　
    MSG50171	EAI Response Message의 Body가 Null입니다.	　
    MSG50172	EAI Response Message의 Body Parsing에 실패하였습니다.	　
    MSG50180	연계신청번호 생성에 실패하였습니다.	　
    MSG50190	모니터링 통계로그 생성에 실패하였습니다.	　
    MSG50191	모니터링 통계로그 Update에 실패하였습니다.	　
    MSG50210	EAI-HUB 구간 요청(신청)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	EAI-HUB 구간 요청(신청)데이터 오류
    MSG50220	EAI-HUB 구간 응답(결과)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	EAI-HUB 구간 응답(결과)데이터 오류
    MSG50230	EAI-HUB 구간 내부자료변환 오류 : FlowRule처리 오류, MappingRule처리 오류, 내부 비즈니스로직 오류	EAI-HUB 구간 내부자료변환 오류
    MSG50240	EAI-HUB 구간 암호화오류 : Encrypt 오류, Decrypt 오류, Sign 오류, LDAP오류, 검증(OCSP, CRL)오류	EAI-HUB 구간 암호화오류
    MSG50250	EAI-HUB 구간 통신장애 오류 : 연결 오류 , Timeout 오류, 송신 오류, 수신 오류	EAI-HUB 구간 통신장애 오류
    MSG50260	EAI-HUB 구간 시스템 오류: 기타 시스템 오류	EAI-HUB 구간 시스템 오류
    MSG50310	내부-EAI-RA 구간 요청(신청)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	내부-EAI-RA 구간 요청(신청)데이터 오류
    MSG50320	내부-EAI-RA 구간 응답(결과)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	내부-EAI-RA 구간 응답(결과)데이터 오류
    MSG50330	내부-EAI-RA 구간 내부자료변환 오류 : FlowRule처리 오류, MappingRule처리 오류, 내부 비즈니스로직 오류	내부-EAI-RA 구간 내부자료변환 오류
    MSG50340	내부-EAI-RA 구간 암호화오류 : Encrypt 오류, Decrypt 오류, Sign 오류, LDAP오류, 검증(OCSP, CRL)오류	내부-EAI-RA 구간 암호화오류
    MSG50350	내부-EAI-RA 구간 통신장애 오류 : 연결 오류 , Timeout 오류, 송신 오류, 수신 오류	내부-EAI-RA 구간 통신장애 오류
    MSG50360	내부-EAI-RA 구간 시스템 오류 : 기타 시스템 오류	내부-EAI-RA 구간 시스템 오류
    MSG50410	외부-EAI-RA 구간 요청(신청)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	외부-EAI-RA 구간 요청(신청)데이터 오류
    MSG50420	외부-EAI-RA 구간 응답(결과)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	외부-EAI-RA 구간 응답(결과)데이터 오류
    MSG50430	외부-EAI-RA 구간 내부자료변환 오류 : FlowRule처리 오류, MappingRule처리 오류, 내부 비즈니스로직 오류	외부-EAI-RA 구간 내부자료변환 오류
    MSG50440	외부-EAI-RA 구간 암호화오류 : Encrypt 오류, Decrypt 오류, Sign 오류, LDAP오류, 검증(OCSP, CRL)오류	외부-EAI-RA 구간 암호화오류
    MSG50450	외부-EAI-RA 구간 통신장애 오류 : 연결 오류 , Timeout 오류, 송신 오류, 수신 오류	외부-EAI-RA 구간 통신장애 오류
    MSG50460	외부-EAI-RA 구간 시스템 오류 : 기타 시스템 오류	외부-EAI-RA 구간 시스템 오류
    MSG50510	제공기관 구간 요청(신청)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	제공기관 구간 요청(신청)데이터 오류
    MSG50520	제공기관 구간 응답(결과)데이터 오류 : Format 오류, 필수값 미입력,  Validation 오류	제공기관 구간 응답(결과)데이터 오류
    MSG50530	제공기관 구간 내부자료변환 오류 : FlowRule처리 오류, MappingRule처리 오류, 내부 비즈니스로직 오류	제공기관 구간 내부자료변환 오류
    MSG50540	제공기관 구간 암호화오류 :  Encrypt 오류, Decrypt 오류, Sign 오류, LDAP오류, 검증(OCSP, CRL)오류	제공기관 구간 암호화오류
    MSG50550	제공기관 구간 통신장애 오류 : 연결 오류 , Timeout 오류, 송신 오류, 수신 오류	제공기관 구간 통신장애 오류
    MSG50560	제공기관 구간 시스템 오류 : 기타 시스템 오류	제공기관 구간 시스템 오류
    * */
    // ===== 연계 결과 코드 (CNTC_RESULT_CODE) =====

    /**
     * 연계 결과 코드: 성공
     * <p>EAI 연계 호출을 성공적으로 처리하였습니다.</p>
     */
    public static final String CNTC_RESULT_CODE_SUCCESS = "MSG50000";

    /**
     * 연계 결과 코드: 에러
     * <p>외부 API 호출 중 에러가 발생했음을 나타냅니다.</p>
     */
    public static final String CNTC_RESULT_CODE_ERROR = "ERROR";

    // ===== 시스템 상수 =====

    /**
     * 기본 등록자: SYSTEM
     * <p>시스템에서 자동으로 등록한 레코드의 등록자명입니다.</p>
     */
    public static final String DEFAULT_REGISTRANT = "SYSTEM";

    // ===== Private Constructor =====

    /**
     * 유틸리티 클래스이므로 인스턴스 생성을 방지합니다.
     */
    private ApiConstant() {
        throw new AssertionError("Constraint 클래스는 인스턴스화할 수 없습니다.");
    }
}
