package com.eactive.eai.rms.onl.apim.masking;

/**
 * 개인정보 마스킹 유틸리티 (eapim-admin)
 *
 * <p>실제 마스킹 규칙은 보안아키텍처 표준 구현인
 * {@link com.eactive.eai.common.util.MaskingUtils}(elink-online-core)에 위임한다.
 * 기존 호출부 호환을 위해 메서드명/시그니처는 그대로 유지한다.</p>
 *
 * <pre>
 *   이메일   eact***@gmail.com (구) → **ct1**@gmail.com (앞2·뒤2, 4자 이하 전체)
 *   이름     홍길* (구) → 홍*동 (2자 뒤1, 3자↑ 가운데 전체)
 *   전화     010-****-5678 (구) → 010-12**-56** (세그먼트별 뒤 2자리)
 *   IPv4     192.168.***.1 (3번째 옥텟) / IPv6 마지막 그룹, 콤마 다중 IP 지원
 * </pre>
 */
public class MaskingUtils {

    private MaskingUtils() {}

    /**
     * 이메일 주소의 ID 부분을 마스킹 처리
     * 예: aajjbacc@gmail.com => **jjba**@gmail.com
     */
    public static String maskEmailId(String email) {
        return com.eactive.eai.common.util.MaskingUtils.maskEmail(email);
    }

    /**
     * 이름 마스킹 처리 (2자: 뒤 1자리, 3자 이상: 앞뒤 제외 가운데 전체)
     * 예: 홍길동 => 홍*동
     */
    public static String maskName(String name) {
        return com.eactive.eai.common.util.MaskingUtils.maskKoreanName(name);
    }

    /**
     * 전화번호/휴대폰/FAX 마스킹 처리 (2·3번째 세그먼트 각각 뒤 2자리)
     * 예: 010-1234-5678 => 010-12**-56**
     */
    public static String maskPhoneNumber(String phoneNumber) {
        return com.eactive.eai.common.util.MaskingUtils.maskPhoneNumber(phoneNumber);
    }

    /**
     * IP 주소 마스킹 처리 (IPv4 3번째 옥텟 / IPv6 마지막 그룹, 콤마 다중 IP 지원)
     * 예: 192.168.1.1 => 192.168.***.1
     */
    public static String maskIpAddress(String ipAddresses) {
        return com.eactive.eai.common.util.MaskingUtils.maskIpAddress(ipAddresses);
    }
}
