/**
 * 유틸리티 함수 모음
 *
 * cn(): Tailwind CSS 클래스 병합 (shadcn/ui 필수)
 * - clsx로 조건부 클래스 결합 후 tailwind-merge로 충돌 해결
 * - 42개 컴포넌트에서 사용 중
 *
 * formatCowNo(): 개체번호 포맷팅 (3-4-4-1 형식)
 */
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}

/**
 * 개체번호를 포맷팅합니다 (예: "001122334401" -> "001 1223 3440 1")
 * @param cowNo 개체번호
 * @returns 포맷팅된 개체번호
 */
export function formatCowNo(cowNo: string | undefined | null): string {
  if (!cowNo) return ''

  // 숫자만 추출
  const cleaned = cowNo.replace(/\D/g, '')

  // 12자리가 아니면 원본 반환
  if (cleaned.length !== 12) return cowNo

  // 3-4-4-1 형식으로 포맷팅
  return `${cleaned.slice(0, 3)} ${cleaned.slice(3, 7)} ${cleaned.slice(7, 11)} ${cleaned.slice(11)}`
}
