import { ResultSetHeader, RowDataPacket } from "mysql2";
import DB from "../config/database/db";
import transactionLogsTypes from "../schemas/transactionLogs.schema";

let transactionLogsDB: any = {};

transactionLogsDB.add = async ({
  tenantId,
  clientId,
  roomId,
  propId,
  amount,
  gId,
  paymentMode,
  udf1,
  udf2,
  udf3,
  udf4,
  udf5,
  requestData,
  gateway = 1
}: transactionLogsTypes) => {
  const query = `INSERT INTO TransactionLogs (tenantId, clientId, roomId, propId, amount, gId, paymentMode, udf1, udf2, udf3, udf4, udf5, requestData, gateway) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
  const data = [
    tenantId,
    clientId,
    roomId,
    propId,
    amount,
    gId,
    paymentMode,
    udf1,
    udf2,
    udf3,
    udf4,
    udf5,
    requestData,
    gateway
  ];
  await DB.execute<ResultSetHeader[]>(query, data);
  return true;
};

transactionLogsDB.getByGId = async ({ gId }: transactionLogsTypes) => {
  const query = "Select * from TransactionLogs where gId = ?";
  const data = [gId];
  const [rows] = await DB.execute<RowDataPacket[]>(query, data);
  if (rows?.length > 0) return rows[0];
  else return false;
};

export default transactionLogsDB;