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) {
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']
+ }]
+ });
}
});