"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/engine/query/remove.ts
var remove_exports = {};
__export(remove_exports, {
  AdapterRemoveQuery: () => AdapterRemoveQuery,
  adapterRemoveQuery: () => adapterRemoveQuery
});
module.exports = __toCommonJS(remove_exports);
function adapterRemoveQuery(args) {
  let CustomAdapterRemoveQuery = class CustomAdapterRemoveQuery extends AdapterRemoveQuery {
    static {
      __name(this, "CustomAdapterRemoveQuery");
    }
    queryData = args.queryData;
  };
  return CustomAdapterRemoveQuery;
}
__name(adapterRemoveQuery, "adapterRemoveQuery");
var AdapterRemoveQuery = class {
  static {
    __name(this, "AdapterRemoveQuery");
  }
  /**
  * This query is used to remove a certain data from the database.
  *
  * An example of how you can implement it on sequelize
  * @example
  * ```typescript
  * queryData: async (_, args) => {
  *   async function remove() {
  *     return args.modelOfEngineInstance.destroy({
  *       where: args.search,
  *       transaction: args.transaction,
  *      });
  *   }
  *
  *   if (args.shouldReturnData) {
  *     const deleted = await args.modelOfEngineInstance.findAll({
  *       where: args.search,
  *       transaction: args.transaction,
  *     });
  *     await remove();
  *
  *     return deleted.map((data: any) => data.toJSON());
  *   }
  *
  *   await remove();
  *   return [];
  * }
  */
  // eslint-disable-next-line ts/require-await
  async queryData(_engine, _args) {
    return [
      {}
    ];
  }
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  AdapterRemoveQuery,
  adapterRemoveQuery
});
