import moment from "moment";
import log from "../config/log";
import payOutTransactionDB from "../models/payoutTransaction.model";

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

    let isExists = await payOutTransactionDB.getByTransId({ transId: id });

    while (isExists) {
      id = start + (Math.floor(Math.random() * 9998) + 98759).toString();
      isExists = await payOutTransactionDB.getByTransId({ transId: id });
    }

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

export default generatePayOutTransId;
