var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var plugin_exports = {};
__export(plugin_exports, {
  PluginWorkflowNoticeServer: () => PluginWorkflowNoticeServer,
  default: () => plugin_default
});
module.exports = __toCommonJS(plugin_exports);
var import_path = __toESM(require("path"));
var import_server = require("@tachybase/server");
var import__ = require("../..");
var import_constants = require("../common/constants");
var import_actions = require("./actions");
var import_workflowNotice = require("./collections/workflowNotice");
var import_NoticeInstruction = __toESM(require("./NoticeInstruction"));
class PluginWorkflowNoticeServer extends import_server.Plugin {
  async afterAdd() {
  }
  async beforeLoad() {
    this.app.on("afterLoadPlugin", (plugin) => {
      if (!(plugin instanceof import__.PluginWorkflow)) {
        return;
      }
      this.workflow = plugin;
      plugin.instructions.register(import_constants.NOTICE_INSTRUCTION_NAMESPACE, new import_NoticeInstruction.default(plugin));
    });
  }
  async load() {
    const { db } = this;
    db.addMigrations({
      namespace: import_constants.NOTICE_INSTRUCTION_NAMESPACE,
      directory: import_path.default.resolve(__dirname, "migrations"),
      context: {
        plugin: this
      }
    });
    await db.import({
      directory: import_path.default.resolve(__dirname, "collections")
    });
    (0, import_actions.init)(this);
    this.app.acl.allow(import_workflowNotice.COLLECTION_WORKFLOWS_NAME, ["listWorkflowNoticeFlows"], "loggedIn");
    this.app.acl.allow(import_constants.COLLECTION_NOTICE_NAME, ["get", "list", "listCentralized", "submit"], "loggedIn");
  }
  async install() {
  }
  async afterEnable() {
  }
  async afterDisable() {
  }
  async remove() {
  }
}
var plugin_default = PluginWorkflowNoticeServer;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  PluginWorkflowNoticeServer
});
