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

const eqaroLandlordsDB: any = {};

eqaroLandlordsDB.getByClientId = async ({ clientId }: eqaroLandlordsType) => {
  const query = "Select * from EqaroLandlords where clientId = ?";
  const data = [clientId];
  const [rows] = await DB.query<RowDataPacket[]>(query, data);
  return rows[0];
};

eqaroLandlordsDB.updateAccessTokens = async ({
  mobile,
  accessToken,
  tokenExpiresAt,
}: eqaroLandlordsType) => {
  const query =
    "UPDATE EqaroLandlords SET accessToken = ?, tokenExpiresAt = ? WHERE mobile = ?";
  const data = [accessToken, tokenExpiresAt, mobile];
  const [rows] = await DB.query<ResultSetHeader>(query, data);
  return rows;
};

eqaroLandlordsDB.getByMobile = async ({ mobile }: eqaroLandlordsType) => {
  const query = "Select * from EqaroLandlords where mobile = ?";
  const data = [mobile];
  const [rows] = await DB.query<RowDataPacket[]>(query, data);
  if (rows.length === 0) return false;
  return rows[0];
};

export default eqaroLandlordsDB;
