Built motion from commit c2984ba.|0.0.114
[motion.git] / server / models / fax_queue.js
1 'use strict';
2
3 module.exports = function(sequelize, DataTypes) {
4
5   var FaxQueue = sequelize.define('FaxQueue', {
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', 'roundrobin')
26     },
27     lastAgent: {
28       type: DataTypes.INTEGER,
29       defaultValue: 0
30     },
31   }, {
32     tableName: 'fax_queues',
33     associate: function(models) {
34       // hasMany relations
35       FaxQueue.belongsToMany(models.User, {
36         hooks: true,
37         through: models.UserHasFaxQueue
38       });
39
40       FaxQueue.belongsToMany(models.User, {
41         through: models.UserHasFaxQueuePermit,
42         as: 'PFaxQueues'
43       });
44
45       //SCOPES
46       FaxQueue.addScope('default', {
47         include: [{
48           model: models.User,
49           attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'faxPause', 'pauseType']
50         }]
51       });
52     }
53   });
54
55   return FaxQueue;
56 };