"use strict"; module.exports = function(sequelize, DataTypes) { //The id field is auto added and made primary key. var Category = sequelize.define('Category', { id: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, autoIncrement: true }, name: { type: DataTypes.STRING, allowNull: false }, createdAt: { type: DataTypes.DATE, allowNull: false }, updatedAt: { type: DataTypes.DATE, allowNull: false }, deletedAt: { type: DataTypes.DATE, allowNull: true } }, { freezeTableName: true, // Model tableName will be the same as the model name paranoid: true, classMethods: { associate: function(models) { Category.hasMany(models.Subcategory, {as: 'subcategories', foreignKey: {name: 'categoryId', field: 'categoryId'}}); } } }); return Category; };