360d848fdedf1cbf71cf1462e82ae4e81f8a04f2
[motion.git] / server / models / sms_queue.js
1 'use strict';
2
3 module.exports = function(sequelize, DataTypes) {
4   return sequelize.define('SmsQueue', {
5     name: {
6       type: DataTypes.STRING,
7       unique: true,
8       validate: {
9         notEmpty: true,
10         is: /^[A-Za-z0-9\.\_]+$/i
11       }
12     },
13     description: {
14       type: DataTypes.STRING,
15     },
16     timeout: {
17       type: DataTypes.INTEGER,
18       validate: {
19         min: 1
20       }
21     },
22     strategy: {
23       type: DataTypes.ENUM('rrmemory', 'beepall', 'roundrobin')
24     },
25     lastAgent: {
26       type: DataTypes.INTEGER,
27       defaultValue: 0
28     },
29   }, {
30     tableName: 'sms_queues',
31     associate: function(models) {
32       // RELATIONS
33       models.SmsQueue.belongsToMany(models.User, {
34         through: models.UserHasSmsQueue,
35         required: false
36       });
37       models.SmsQueue.belongsToMany(models.User, {
38         through: models.UserHasSmsQueuePermit,
39         as: 'PSmsQueues'
40       });
41       //SCOPES
42       models.SmsQueue.addScope('default', {
43         include: [{
44           model: models.User,
45           attributes: ['id', 'name', 'fullname', 'email',
46             'online', 'lastLoginAt'
47           ]
48         }]
49       });
50     }
51   });
52 };