Built motion from commit 1d6aa77.|0.0.94
[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')
26     }
27   }, {
28     tableName: 'fax_queues',
29     associate: function(models) {
30       // hasMany relations
31       FaxQueue.belongsToMany(models.User, {
32         hooks: true,
33         through: models.UserHasFaxQueue
34       });
35
36       FaxQueue.belongsToMany(models.User, {
37         through: models.UserHasFaxQueuePermit,
38         as: 'PFaxQueues'
39       });
40
41       //SCOPES
42       FaxQueue.addScope('default', {
43         include: [{
44           model: models.User,
45           attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'faxPause', 'pauseType']
46         }]
47       });
48     }
49   });
50
51   return FaxQueue;
52 };