export interface PointStandard {
  id: string;
  eventCode: string;
  point: number;
  limitPoint: number;
  isDuplicable: boolean;
  description: string;
  isActive: boolean;
  updatedAt: string;
}

export const EMPTY_FIELD_PLACEHOLDER = '-';

/** 제한포인트가 0이면 일 누적 제한이 없다(기획 PTS10100002_p ③). */
export const UNLIMITED_LIMIT_POINT = 0;

export function formatOptionalValue(
  value: string | number | null | undefined
): string {
  return value === null || value === undefined || value === ''
    ? EMPTY_FIELD_PLACEHOLDER
    : String(value);
}

export function formatPoint(value: number): string {
  return value.toLocaleString('ko-KR');
}

export function formatLimitPoint(value: number): string {
  return value === UNLIMITED_LIMIT_POINT ? '제한 없음' : formatPoint(value);
}

export function formatDuplicableLabel(isDuplicable: boolean): string {
  return isDuplicable ? '중복 가능' : '중복 불가';
}

export function formatActiveLabel(isActive: boolean): string {
  return isActive ? '사용' : '사용안함';
}
