d432711adfa3830a6603eafc1dfa1161fc7e3383
[motion.git] / server / models / report_member.js
1 /**
2  * DIAL Model
3  */
4
5 var moment = require('moment');
6
7 module.exports = function(sequelize, DataTypes) {
8
9   var ReportMember = sequelize.define('ReportMember', {
10     channel: DataTypes.STRING,
11     membername: DataTypes.STRING,
12     interface: DataTypes.STRING,
13     type: {
14       type: DataTypes.STRING,
15       defaultValue: 'DEFAULT PAUSE'
16     },
17     duration: DataTypes.INTEGER,
18     enterAt: DataTypes.DATE,
19     exitAt: {
20       type: DataTypes.DATE,
21       set: function(exitAt) {
22         var a = moment(exitAt);
23         var b = moment(this.getDataValue('enterAt'));
24         var duration = a.diff(b, 'seconds');
25
26         this.setDataValue('exitAt', exitAt);
27         this.setDataValue('duration', duration || null);
28       }
29     },
30     data1: DataTypes.STRING,
31     data2: DataTypes.STRING,
32     data3: DataTypes.STRING,
33     data4: DataTypes.STRING,
34     data5: DataTypes.STRING,
35     role: DataTypes.STRING,
36     internal: DataTypes.INTEGER(11),
37     uniqueid: DataTypes.STRING
38   }, {
39     tableName: 'report_member',
40     // indexes: [{
41     //   fields: ['membername', 'enterdate', 'exitdate']
42     // }]
43   });
44
45   return ReportMember;
46 };