5 var moment = require('moment');
7 module.exports = function(sequelize, DataTypes) {
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,
17 set: function(queuecallerleaveAt) {
18 var a = moment(queuecallerleaveAt);
19 var b = moment(this.getDataValue('queuecallerjoinAt')).format("YYYY-MM-DD HH:mm:ss");
20 var holdtime = a.diff(b, 'seconds');
22 this.setDataValue('queuecallerleaveAt', queuecallerleaveAt);
23 this.setDataValue('holdtime', holdtime || null);
26 position: DataTypes.INTEGER,
27 count: DataTypes.INTEGER,
29 type: DataTypes.BOOLEAN,
32 queuecallerabandonAt: DataTypes.DATE,
33 queuecallercomplete: {
34 type: DataTypes.BOOLEAN,
37 queuecallercompleteAt: DataTypes.DATE,
39 type: DataTypes.BOOLEAN,
42 queuecallerexitAt: DataTypes.DATE,
43 queuecallerexitreason: DataTypes.STRING,
44 originalposition: DataTypes.INTEGER,
45 channel: DataTypes.STRING,
46 channelstate: DataTypes.INTEGER,
47 channelstatedesc: DataTypes.STRING,
48 connectedlinenum: DataTypes.STRING,
49 connectedlinename: DataTypes.STRING,
50 language: DataTypes.STRING,
51 accountcode: DataTypes.STRING,
52 context: DataTypes.STRING,
53 exten: DataTypes.STRING,
54 priority: DataTypes.STRING,
55 holdtime: DataTypes.INTEGER
57 tableName: 'report_queue',
61 associate: function(models) {
64 .addScope('queueFilter', function(queues) {
75 .addScope('waiting', {
77 queuecallerleaveAt: null