/**
 * 문자열 마스킹 처리를 위한 유틸리티
 */
const StringMaskingUtil = {

    // null, empty 체크
    isValidString: function(str) {
        return str != null && str !== '';
    },

    // 이름 마스킹 처리
    maskName: function(name) {
        if (!this.isValidString(name)) {
            return name;
        }
        return name.length > 1 ?
            name.substring(0, name.length - 1) + "*" :
            name;
    },

    // 이메일 마스킹 처리
    maskEmail: function(email) {
        if (!this.isValidString(email) || !email.includes('@')) {
            return email;
        }

        const parts = email.split('@');
        if (parts.length !== 2) {
            return email;
        }

        const localPart = parts[0];
        let maskedLocal;

        if (localPart.length <= 3) {
            maskedLocal = localPart.substring(0, 1) +
                '*'.repeat(localPart.length - 1);
        } else {
            maskedLocal = localPart.substring(0, localPart.length - 3) + '***';
        }

        return maskedLocal + '@' + parts[1];
    },

    // 휴대폰 번호 마스킹 처리
    maskMobileNumber: function(number) {
        if (!this.isValidString(number)) {
            return number;
        }

        const parts = number.split('-');
        if (parts.length === 3) {
            return parts[0] + '-****-' + parts[2];
        }
        return number;
    }
};