/**
 * PII (Personally Identifiable Information) Masking Utility
 * Helps redact sensitive data before saving to public or shared documents.
 */

export const maskPII = (text: string): string => {
    let maskedText = text;

    // 1. Phone Numbers (Korea style: 010-1234-5678, 02-123-4567, etc.)
    const phoneRegex = /(\d{2,3})[-. ]?(\d{3,4})[-. ]?(\d{4})/g;
    maskedText = maskedText.replace(phoneRegex, (match, p1, p2, p3) => {
        return `${p1}-${p2.replace(/./g, '*')}-${p3.replace(/./g, '*')}`;
    });

    // 2. Resident Registration Numbers (Korea: 123456-1234567)
    const rrnRegex = /(\d{6})[-. ]?([1-8]\d{6})/g;
    maskedText = maskedText.replace(rrnRegex, (match, p1, p2) => {
        return `${p1}-*******`;
    });

    // 3. Email addresses (Simple version)
    const emailRegex = /([a-zA-Z0-9._%-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/g;
    maskedText = maskedText.replace(emailRegex, (match, p1, p2) => {
        const firstChar = p1.charAt(0);
        return `${firstChar}${'*'.repeat(p1.length - 1)}@${p2}`;
    });

    return maskedText;
};
