You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
680 B
JavaScript
31 lines
680 B
JavaScript
"use strict";
|
|
|
|
const { Model, QueryBuilder } = require("objection");
|
|
|
|
module.exports = function ({ db }) {
|
|
return class Tag extends Model {
|
|
static tableName = "srap_tags";
|
|
static idColumn = [ "name", "itemId" ];
|
|
|
|
static get relationMappings() {
|
|
return {
|
|
item: {
|
|
relation: Model.BelongsToOneRelation,
|
|
modelClass: db.Item,
|
|
join: { from: "srap_tags.itemId", to: "srap_items.id" }
|
|
}
|
|
};
|
|
};
|
|
|
|
static QueryBuilder = class TagQueryBuilder extends QueryBuilder {
|
|
findAllByName(name) {
|
|
return this.where({ name: name });
|
|
}
|
|
|
|
renameAll(oldName, newName) {
|
|
return this.patch({ name: newName }).where({ name: oldName });
|
|
}
|
|
};
|
|
}
|
|
};
|