import type { ValueTransformer } from 'typeorm';

// bigint 컬럼 변환기 — TypeORM 은 bigint 를 문자열로 반환하므로 number 로 복원한다.
// (파일 크기 등 Number.MAX_SAFE_INTEGER 이내 값에 사용)
export const numericColumnTransformer: ValueTransformer = {
  // 저장: number → DB(bigint). null/undefined 는 그대로.
  to(value: number | null | undefined): number | null | undefined {
    return value;
  },
  // 조회: DB 문자열 → number. null 은 그대로.
  from(value: string | null): number | null {
    return value === null ? null : Number(value);
  },
};
