// ============================================================
// part_mng / part_mng_history / attach_file_info 등 wace 운영판
// `objid bigint`(또는 numeric) 컬럼 채번 유틸.
//
// wace java `com.pms.common.CommonUtils.createObjId()` 1:1 이식:
//   1) UUID v4 생성
//   2) 하이픈 제거 → 32 hex 문자열
//   3) Java String.hashCode() (int32) 적용
//   4) 결과 정수를 문자열로 반환
// 결과 범위: -2,147,483,648 ~ 2,147,483,647 (Java int 범위).
// ============================================================
import { randomUUID } from "crypto";

function javaStringHashCode(s: string): number {
  let h = 0;
  for (let i = 0; i < s.length; i++) {
    h = (Math.imul(31, h) + s.charCodeAt(i)) | 0;
  }
  return h;
}

export function createObjId(): string {
  return String(javaStringHashCode(randomUUID().replace(/-/g, "")));
}
