-var _0xa95f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xa95f[0];module[_0xa95f[1]]=function(_0xd4dbx1,_0xd4dbx2){var _0xd4dbx3=_0xd4dbx1[_0xa95f[10]](_0xa95f[2],{name:{type:_0xd4dbx2[_0xa95f[3]],unique:true,allowNull:false,validate:{notEmpty:true}},description:{type:_0xd4dbx2[_0xa95f[3]]},timeout:{type:_0xd4dbx2[_0xa95f[4]]},strategy:{type:_0xd4dbx2.ENUM(_0xa95f[5],_0xa95f[6])}},{tableName:_0xa95f[7],associate:function(_0xd4dbx4){_0xd4dbx3[_0xa95f[9]](_0xd4dbx4.User,{hooks:true,through:_0xd4dbx4[_0xa95f[8]]})}});return _0xd4dbx3}
\ No newline at end of file
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+ var FaxQueue = sequelize.define('FaxQueue', {
+ name: {
+ type: DataTypes.STRING,
+ unique: 'name',
+ allowNull: false,
+ validate: {
+ notEmpty: true,
+ is: /^[A-Za-z0-9\.\_]+$/i
+ }
+ },
+ description: {
+ type: DataTypes.STRING,
+ },
+ timeout: {
+ type: DataTypes.INTEGER,
+ validate: {
+ min: 1
+ }
+ },
+ strategy: {
+ type: DataTypes.ENUM('rrmemory', 'beepall', 'roundrobin')
+ },
+ lastAgent: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
+ },
+ }, {
+ tableName: 'fax_queues',
+ associate: function(models) {
+ // hasMany relations
+ FaxQueue.belongsToMany(models.User, {
+ hooks: true,
+ through: models.UserHasFaxQueue
+ });
+
+ FaxQueue.belongsToMany(models.User, {
+ through: models.UserHasFaxQueuePermit,
+ as: 'PFaxQueues'
+ });
+
+ //SCOPES
+ FaxQueue.addScope('default', {
+ include: [{
+ model: models.User,
+ attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'faxPause', 'pauseType']
+ }]
+ });
+ }
+ });
+
+ return FaxQueue;
+};