import moment from "moment";
import log from "../config/log";
import transactionDB from "../models/transaction.model";

const generateTransId = async () => {
  try {
    const start = moment().format("YYMMDDHH");
    let id: string =
      start + (Math.floor(Math.random() * 9998) + 98759).toString();

    let isExists = await transactionDB.getByGId({ gId: id });

    while (isExists) {
      id = start + (Math.floor(Math.random() * 9998) + 98759).toString();
      isExists = await transactionDB.getByGId({ gId: id });
    }

    return id;
  } catch (error: any) {
    log.info(
      `[Utils], [${generateTransId}], Error: ${error?.message || error}`
    );
    return "";
  }
};

export default generateTransId;
