/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var executions_exports = {};
__export(executions_exports, {
  default: () => executions_default
});
module.exports = __toCommonJS(executions_exports);
var import_constants = require("../constants");
var executions_default = {
  dumpRules: {
    group: "log"
  },
  migrationRules: ["schema-only"],
  name: "executions",
  dataCategory: "business",
  shared: true,
  fields: [
    {
      type: "snowflakeId",
      name: "id",
      interface: "id",
      uiSchema: {
        type: "number",
        title: '{{t("ID")}}',
        "x-component": "Input",
        "x-component-props": {},
        "x-read-pretty": true
      },
      primaryKey: true,
      allowNull: false
    },
    {
      type: "bigInt",
      name: "workflowId",
      interface: "id",
      uiSchema: {
        type: "number",
        title: `{{t("Version ID", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "InputNumber",
        "x-component-props": {},
        "x-read-pretty": true
      }
    },
    {
      type: "belongsTo",
      name: "workflow",
      target: "workflows",
      foreignKey: "workflowId",
      interface: "m2o",
      uiSchema: {
        type: "object",
        title: `{{t("Version", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "AssociationField",
        "x-component-props": {
          fieldNames: {
            label: "id",
            value: "id"
          }
        },
        "x-read-pretty": true
      }
    },
    {
      type: "string",
      name: "key"
    },
    {
      type: "string",
      name: "eventKey",
      unique: true
    },
    {
      type: "hasMany",
      name: "jobs",
      onDelete: "CASCADE"
    },
    {
      type: "json",
      name: "context"
    },
    {
      type: "integer",
      name: "status",
      interface: "select",
      uiSchema: {
        title: `{{t("Status", { ns: "${import_constants.NAMESPACE}" })}}`,
        type: "string",
        "x-component": "Select",
        "x-decorator": "FormItem",
        enum: "{{ExecutionStatusOptions}}"
      }
    },
    {
      type: "string",
      name: "reason",
      uiSchema: {
        title: `{{t("Reason", { ns: "${import_constants.NAMESPACE}" })}}`,
        type: "string",
        "x-component": "Select",
        "x-decorator": "FormItem",
        enum: "{{ExecutionReasonOptions}}"
      }
    },
    {
      type: "boolean",
      name: "dispatched",
      defaultValue: false
    },
    {
      type: "bigInt",
      name: "parentExecutionId",
      interface: "id",
      uiSchema: {
        type: "number",
        title: `{{t("Parent execution ID", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "InputNumber",
        "x-component-props": {},
        "x-read-pretty": true
      }
    },
    {
      type: "json",
      name: "stack"
    },
    {
      type: "json",
      name: "output"
    },
    {
      type: "datetime",
      name: "startedAt",
      uiSchema: {
        type: "datetime",
        title: `{{t("Started at", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "DatePicker",
        "x-component-props": {},
        "x-read-pretty": true
      }
    },
    {
      type: "datetime",
      name: "expiresAt",
      uiSchema: {
        type: "datetime",
        title: `{{t("Expires at", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "DatePicker",
        "x-component-props": {},
        "x-read-pretty": true
      }
    },
    {
      type: "datetime",
      name: "createdAt",
      interface: "createdAt",
      uiSchema: {
        type: "datetime",
        title: `{{t("Triggered at", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "DatePicker",
        "x-component-props": {},
        "x-read-pretty": true
      }
    },
    {
      type: "boolean",
      name: "manually",
      interface: "checkbox",
      uiSchema: {
        type: "boolean",
        title: `{{t("Triggered manually", { ns: "${import_constants.NAMESPACE}" })}}`,
        "x-component": "Checkbox",
        "x-component-props": {},
        "x-read-pretty": true
      }
    }
  ],
  indexes: [
    { fields: ["dispatched", "id"] },
    { fields: ["status", "expiresAt"] },
    { fields: ["parentExecutionId", "status"] }
  ]
};
