Built motion from commit c2984ba.|0.0.114
[motion.git] / server / models / chat_queue.js
index e8ed7f0..ac292ff 100644 (file)
@@ -5,17 +5,29 @@ module.exports = function(sequelize, DataTypes) {
   var ChatQueue = sequelize.define('ChatQueue', {
     name: {
       type: DataTypes.STRING,
-      unique: true
+      unique: true,
+      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')
-    }
+      type: DataTypes.ENUM('rrmemory', 'beepall', 'roundrobin')
+    },
+    lastAgent: {
+      type: DataTypes.INTEGER,
+      defaultValue: 0
+    },
   }, {
     tableName: 'chat_queues',
     associate: function(models) {
@@ -23,6 +35,19 @@ module.exports = function(sequelize, DataTypes) {
       ChatQueue.belongsToMany(models.User, {
         through: models.UserHasChatQueue
       });
+
+      ChatQueue.belongsToMany(models.User, {
+        through: models.UserHasChatQueuePermit,
+        as: 'PChatQueues'
+      });
+
+      //SCOPES
+      ChatQueue.addScope('default', {
+        include: [{
+          model: models.User,
+          attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'chatPause', 'pauseType']
+        }]
+      });
     }
   });