/**
 * ⚠️ WARNING: THIS FILE IS AUTO-GENERATED ⚠️
 * 
 * This file is generated by the type generation system.
 * Any manual changes will be overwritten on next server start and should always be committed.
 * 
 */

import { Type } from "@sinclair/typebox"

export const InteractionLinkSchema = {
  $id: "#interactionLink/base",
  title: "core/interactionLink",
  type: "object",
  required: [
    "_id",
    "composition",
    "slotType",
    "triggers",
    "tags",
    "author",
    "lastEditor",
    "createdAt",
    "updatedAt",
    "isDeleted",
  ],
  properties: {
    _id: {
      type: "string",
    },
    composition: {
      type: "string",
    },
    slotType: {
      type: "string",
    },
    triggers: {
      default: [],
      type: "array",
      items: {
        $id: "#trigger/base",
        title: "core/trigger",
        type: "object",
        required: [
          "type",
        ],
        properties: {
          type: {
            type: "string",
          },
          settings: {
            type: "object",
            patternProperties: {
              "^(.*)$": {},
            },
          },
        },
      },
    },
    queryParameters: {
      type: "array",
      items: {
        type: "string",
      },
    },
    description: {
      type: "string",
    },
    tags: {
      default: [],
      type: "array",
      items: {
        type: "string",
      },
    },
    isLandingPage: {
      default: false,
      type: "boolean",
    },
    author: {
      type: "string",
    },
    lastEditor: {
      type: "string",
    },
    createdAt: {
      format: "date-time",
      type: "string",
    },
    updatedAt: {
      format: "date-time",
      type: "string",
    },
    isDeleted: {
      default: false,
      type: "boolean",
    },
  },
}



export default InteractionLinkSchema
