cubash-archive/models/itemcategory.js

45 lines
1.3 KiB
JavaScript

let randomColor = require('randomcolor')
module.exports = (sequelize, DataTypes) => {
let ItemCategory = sequelize.define('ItemCategory', {
name: {
type: DataTypes.STRING(191),
unique: true,
allowNull: false,
validate: {
notEmpty: {
msg: 'The category name can\'t be empty'
},
isString (val) {
if(typeof val !== 'string') {
throw new sequelize.ValidationError('The category name must be a string')
}
}
}
},
value: {
type: DataTypes.STRING(191),
unique: true
},
locked: {
type: DataTypes.BOOLEAN,
default: false
}
}, {
hooks: {
beforeCreate (category) {
if(!category.name) {
throw new sequelize.ValidationError('The category name cant\'t be empty')
} else {
let underscored = category.name.trim().replace(/\s/g, '_').toUpperCase()
category.value = underscored
}
}
}})
ItemCategory.associate = function (models) {
ItemCategory.hasMany(models.Item)
}
return ItemCategory
}