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

const propertyDocumentDB: any = {};

propertyDocumentDB.addDoc = async ({
  clientId,
  propId,
  title,
  value,
}: propertyDocumentsTypes) => {
  const query =
    "Insert into PropertyDocuments (clientId, propId, title, value) values (?,?,?,?)";
  const data = [clientId, propId, title, value];
  const [rows] = await DB.query<ResultSetHeader>(query, data);
  return rows.insertId;
};

propertyDocumentDB.updateDoc = async ({
  clientId,
  propId,
  title,
  value,
  id,
}: propertyDocumentsTypes) => {
  const query =
    "Update PropertyDocuments set title = ?, clientId = ?, propId = ?, value = ? where id = ?";
  const data = [title, clientId, propId, value, id];
  const [rows] = await DB.query<ResultSetHeader>(query, data);
  return rows.insertId;
};

propertyDocumentDB.getByClientIdAndPropId = async ({
  propId,
  clientId,
}: propertyDocumentsTypes) => {
  const query =
    "Select * from PropertyDocuments where propId = ? and clientId =?";
  const data = [propId, clientId];
  const [rows] = await DB.execute<RowDataPacket[]>(query, data);
  if (rows?.length > 0) return rows;
  else return false;
};

export default propertyDocumentDB;