"use strict"; const { Model } = require("objection"); module.exports = function ({ db }) { return class Item extends Model { static tableName = "srap_items"; static get relationMappings() { return { aliases: { relation: Model.HasManyRelation, modelClass: db.Alias, join: { from: "srap_items.id", to: "srap_aliases.itemId" } }, tags: { relation: Model.HasManyRelation, modelClass: db.Tag, join: { from: "srap_items.id", to: "srap_tags.itemId" } }, taskResults: { relation: Model.HasManyRelation, modelClass: db.TaskResult, join: { from: "srap_items.id", to: "srap_taskResults.itemId" } }, tasksInProgress: { relation: Model.HasManyRelation, modelClass: db.TaskInProgress, join: { from: "srap_items.id", to: "srap_tasksInProgress.itemId" } }, failedTasks: { // Not actually a many-to-many, but that's what objection calls a HasManyThrough... // https://github.com/Vincit/objection.js/issues/1148 relation: Model.ManyToManyRelation, modelClass: db.Failure, join: { from: "srap_items.id", through: { from: "srap_task_results.itemId", to: "srap_task_results.id" }, to: "srap_failures.taskResultId" } } }; }; } };