-var _0x764b=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x64\x75\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x64\x75\x6C\x65\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x764b[0]]=function(_0x948fx1,_0x948fx2){var _0x948fx3=_0x948fx1[_0x764b[6]](_0x764b[1],{name:{type:_0x948fx2[_0x764b[2]],unique:true,allowNull:false,validate:{notEmpty:true}},title:_0x948fx2[_0x764b[2]]},{tableName:_0x764b[3],associate:function(_0x948fx4){_0x948fx3[_0x764b[5]](_0x948fx4.User,{through:_0x764b[4]})}});return _0x948fx3}
\ No newline at end of file
+/**
+ * Module Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+ var Module = sequelize.define('Module', {
+ name: {
+ type: DataTypes.STRING,
+ allowNull: false,
+ validate: {
+ notEmpty: true
+ }
+ },
+ title: DataTypes.STRING,
+ path: DataTypes.STRING
+ }, {
+ tableName: 'modules',
+ associate: function(models) {
+ Module.belongsToMany(models.User, {
+ through: models.UserHasModule,
+ required: false
+ });
+ Module.hasMany(models.Module, {
+ as: 'SubModules'
+ });
+ Module.addScope('submodules', {
+ include: [{
+ model: models.Module,
+ as: 'SubModules',
+ required: false,
+ include: [{
+ all: true
+ }]
+ }]
+ });
+ }
+ });
+
+ return Module;
+};