Built motion from commit e2ff5cd.|0.0.92
[motion.git] / server / models / chat_queue.js
1 'use strict';
2
3 module.exports = function(sequelize, DataTypes) {
4
5   var ChatQueue = sequelize.define('ChatQueue', {
6     name: {
7       type: DataTypes.STRING,
8       unique: true,
9       allowNull: false,
10       validate: {
11         notEmpty: true,
12         is: /^[A-Za-z0-9\.\_]+$/i
13       }
14     },
15     description: {
16       type: DataTypes.STRING,
17     },
18     timeout: {
19       type: DataTypes.INTEGER,
20       validate: {
21         min: 1
22       }
23     },
24     strategy: {
25       type: DataTypes.ENUM('rrmemory', 'beepall')
26     }
27   }, {
28     tableName: 'chat_queues',
29     associate: function(models) {
30       // hasMany relations
31       ChatQueue.belongsToMany(models.User, {
32         through: models.UserHasChatQueue
33       });
34
35       ChatQueue.belongsToMany(models.User, {
36         through: models.UserHasChatQueuePermit,
37         as: 'PChatQueues'
38       });
39
40       //SCOPES
41       ChatQueue.addScope('default', {
42         include: [{
43           model: models.User,
44           attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'chatPause', 'pauseType']
45         }]
46       });
47     }
48   });
49
50   return ChatQueue;
51 };