package com.kt.event.user.exception;

import com.kt.event.common.exception.ErrorCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * User Service 에러 코드
 *
 * Common 모듈의 ErrorCode enum을 사용
 * User Service에서 사용하는 에러 코드만 열거
 *
 * @author Backend Developer
 * @since 1.0
 */
@Getter
@RequiredArgsConstructor
public enum UserErrorCode {

    // User 관련 에러 - Common ErrorCode 사용
    USER_DUPLICATE_EMAIL(ErrorCode.USER_001),
    USER_DUPLICATE_PHONE(ErrorCode.USER_001),  // 중복 사용자로 처리
    USER_NOT_FOUND(ErrorCode.USER_003),

    // Authentication 관련 에러 - Common ErrorCode 사용
    AUTH_FAILED(ErrorCode.AUTH_001),
    AUTH_INVALID_TOKEN(ErrorCode.AUTH_002),
    AUTH_TOKEN_EXPIRED(ErrorCode.AUTH_003),
    AUTH_UNAUTHORIZED(ErrorCode.AUTH_001),

    // Password 관련 에러 - Common ErrorCode 사용
    PWD_INVALID_CURRENT(ErrorCode.USER_004),
    PWD_SAME_AS_CURRENT(ErrorCode.USER_004);

    private final ErrorCode errorCode;

    public String getCode() {
        return errorCode.getCode();
    }

    public String getMessage() {
        return errorCode.getMessage();
    }
}
