Built motion from commit b33b832.|1.0.17
[motion.git] / server / models / fax_queue.js
index 035bad7..c646328 100644 (file)
@@ -5,10 +5,11 @@ module.exports = function(sequelize, DataTypes) {
   var FaxQueue = sequelize.define('FaxQueue', {
     name: {
       type: DataTypes.STRING,
-      unique: true,
+      unique: 'name',
       allowNull: false,
       validate: {
         notEmpty: true,
+        is: /^[A-Za-z0-9\.\_]+$/i
       }
     },
     description: {
@@ -16,10 +17,17 @@ module.exports = function(sequelize, DataTypes) {
     },
     timeout: {
       type: DataTypes.INTEGER,
+      validate: {
+        min: 1
+      }
     },
     strategy: {
-      type: DataTypes.ENUM('rrmemory', 'beepall')
-    }
+      type: DataTypes.ENUM('rrmemory', 'beepall', 'roundrobin')
+    },
+    lastAgent: {
+      type: DataTypes.INTEGER,
+      defaultValue: 0
+    },
   }, {
     tableName: 'fax_queues',
     associate: function(models) {
@@ -28,9 +36,21 @@ module.exports = function(sequelize, DataTypes) {
         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;
-
 };