Built motion from commit d415888.|0.0.73
[motion.git] / server / models / tools_interval.js
1 /* jshint indent: 2 */
2
3 module.exports = function(sequelize, DataTypes) {
4   var Interval = sequelize.define('Interval', {
5     name: {
6       type: DataTypes.STRING
7     },
8     description: DataTypes.STRING,
9     interval: {
10       type: DataTypes.STRING,
11       allowNull: true
12     }
13   }, {
14     tableName: 'tools_intervals',
15     associate: function(models) {
16       Interval.hasMany(models.Interval, {
17         as: 'SubIntervals',
18         onDelete: 'cascade',
19         hooks: true,
20         required: false
21       });
22       Interval.hasMany(models.VoiceExtension, {
23         as: 'VoiceExtensions',
24         foreignKey: 'IntervalId',
25         onDelete: 'restrict'
26       });
27       Interval.hasMany(models.MailApplication, {
28         as: 'MailApplications'
29       });
30       Interval.hasMany(models.MailApplication, {
31         as: 'ChatApplications'
32       });
33       // SCOPES MANAGEMENT
34       Interval.addScope('subintervals', {
35         include: [{
36           model: models.Interval,
37           as: 'SubIntervals',
38           required: false,
39           attributes: ['name', 'interval']
40         }]
41       });
42
43       Interval.addScope('intervals', {
44         where: {
45           IntervalId: null
46         }
47       });
48     }
49   });
50
51
52   return Interval;
53 };