Built motion from commit 95b01fa.|0.0.70
[motion.git] / server / models / report_queue.js
1 /**
2  * QueueLog Model
3  */
4
5 var moment = require('moment');
6
7 module.exports = function(sequelize, DataTypes) {
8
9   var ReportQueue = sequelize.define('ReportQueue', {
10     uniqueid: DataTypes.STRING,
11     calleridnum: DataTypes.STRING,
12     calleridname: DataTypes.STRING,
13     queue: DataTypes.STRING,
14     queuecallerjoinAt: DataTypes.DATE,
15     queuecallerleaveAt: {
16       type: DataTypes.DATE,
17       set: function(queuecallerleaveAt) {
18         var a = moment(queuecallerleaveAt);
19         var b = moment(this.getDataValue('queuecallerjoinAt')).format("YYYY-MM-DD HH:mm:ss");
20
21         this.setDataValue('queuecallerleaveAt', queuecallerleaveAt);
22         this.setDataValue('holdtime', a.diff(b, 'seconds'));
23       }
24     },
25     position: DataTypes.INTEGER,
26     count: DataTypes.INTEGER,
27     queuecallerabandon: {
28       type: DataTypes.BOOLEAN,
29       defaultValue: false
30     },
31     queuecallerabandonAt: DataTypes.DATE,
32     queuecallercomplete: {
33       type: DataTypes.BOOLEAN,
34       defaultValue: false
35     },
36     queuecallercompleteAt: DataTypes.DATE,
37     queuecallerexit: {
38       type: DataTypes.BOOLEAN,
39       defaultValue: false
40     },
41     queuecallerexitAt: DataTypes.DATE,
42     queuecallerexitreason: DataTypes.STRING,
43     originalposition: DataTypes.INTEGER,
44     channel: DataTypes.STRING,
45     channelstate: DataTypes.INTEGER,
46     channelstatedesc: DataTypes.STRING,
47     connectedlinenum: DataTypes.STRING,
48     connectedlinename: DataTypes.STRING,
49     language: DataTypes.STRING,
50     accountcode: DataTypes.STRING,
51     context: DataTypes.STRING,
52     exten: DataTypes.STRING,
53     priority: DataTypes.STRING,
54     holdtime: DataTypes.INTEGER
55   }, {
56     tableName: 'report_queue',
57     indexes: [{
58       fields: ['uniqueid']
59     }]
60   });
61
62   return ReportQueue;
63 };