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

const switchRoomRecordDB: any = {};

switchRoomRecordDB.getById = async ({ id }: switchRoomRecordTypes) => {
  const query = "select * from SwitchRoomRecords where id = ?";
  const data = [id];
  const [rows] = await DB.execute<RowDataPacket[]>(query, data);
  if (rows?.length > 0) return rows[0];
  else return false;
};

switchRoomRecordDB.getByTenantIdandClientId = async ({
  tenantId,
  clientId,
}: switchRoomRecordTypes) => {
  const query =
    "select * from SwitchRoomRecords where tenantId = ? and clientId = ? order by id desc";
  const data = [tenantId, clientId];
  const [rows] = await DB.execute<RowDataPacket[]>(query, data);
  if (rows?.length > 0) return rows;
  else return false;
};

switchRoomRecordDB.add = async ({
  clientId,
  tenantId,
  propId,
  roomId,
  newRoomId,
  bedId,
  newBedId,
  floor,
  newFloor,
  rent,
  newRent,
}: switchRoomRecordTypes) => {
  const query =
    "insert into SwitchRoomRecords (clientId, tenantId, propId, roomId, bedId, floor, rent, newRoomId, newBedId, newFloor, newRent) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  const data = [
    clientId,
    tenantId,
    propId,
    roomId,
    bedId,
    floor,
    rent,
    newRoomId,
    newBedId,
    newFloor,
    newRent,
  ];
  const [rows] = await DB.query<ResultSetHeader>(query, data);
  return rows.insertId;
};
export default switchRoomRecordDB;
