/**
 * 사업자등록번호 유효성 검사 유틸리티
 */

/**
 * 사업자등록번호 포맷 검증 (000-00-00000 형식)
 */
export function validateBusinessNumberFormat(value: string): boolean {
  if (!value || value.trim() === "") {
    return false;
  }

  // 하이픈 제거
  const cleaned = value.replace(/-/g, "");

  // 숫자 10자리인지 확인
  if (!/^\d{10}$/.test(cleaned)) {
    return false;
  }

  return true;
}

/**
 * 사업자등록번호 종합 검증 (포맷만 검사)
 * 실제 국세청 검증은 백엔드에서 API 호출로 처리하는 것을 권장
 */
export function validateBusinessNumber(value: string): {
  isValid: boolean;
  message: string;
} {
  if (!value || value.trim() === "") {
    return {
      isValid: false,
      message: "사업자등록번호를 입력해주세요.",
    };
  }

  if (!validateBusinessNumberFormat(value)) {
    return {
      isValid: false,
      message: "사업자등록번호는 10자리 숫자여야 합니다.",
    };
  }

  // 포맷만 검증하고 통과
  return {
    isValid: true,
    message: "",
  };
}

/**
 * 사업자등록번호 포맷팅 (자동 하이픈 추가)
 */
export function formatBusinessNumber(value: string): string {
  if (!value) return "";

  // 숫자만 추출
  const cleaned = value.replace(/\D/g, "");

  // 최대 10자리까지만
  const limited = cleaned.slice(0, 10);

  // 하이픈 추가 (000-00-00000)
  if (limited.length <= 3) {
    return limited;
  } else if (limited.length <= 5) {
    return `${limited.slice(0, 3)}-${limited.slice(3)}`;
  } else {
    return `${limited.slice(0, 3)}-${limited.slice(3, 5)}-${limited.slice(5)}`;
  }
}

