Built motion from commit b33b832.|1.0.17
[motion.git] / server / models / report_call.js
index 9a56072..4ae0ed0 100644 (file)
@@ -1 +1,62 @@
-var _0x61ea=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x53\x54\x52\x49\x4E\x47","\x45\x4E\x55\x4D","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x61ea[0]]=function(_0x56aex1,_0x56aex2){var _0x56aex3=_0x56aex1[_0x61ea[17]](_0x61ea[1],{uniqueid:{type:_0x56aex2[_0x61ea[2]],unique:true},type:{type:_0x56aex2[_0x61ea[3]],values:[_0x61ea[4],_0x61ea[5],_0x61ea[6]]},tag:_0x56aex2[_0x61ea[2]],accountcode:_0x56aex2[_0x61ea[2]],source:_0x56aex2[_0x61ea[2]],destination:_0x56aex2[_0x61ea[2]],destinationcontext:_0x56aex2[_0x61ea[2]],callerid:_0x56aex2[_0x61ea[2]],channel:_0x56aex2[_0x61ea[2]],destinationchannel:_0x56aex2[_0x61ea[2]],lastapplication:_0x56aex2[_0x61ea[2]],lastdata:_0x56aex2[_0x61ea[2]],starttime:_0x56aex2[_0x61ea[7]],answertime:{type:_0x56aex2[_0x61ea[7]],set:function(_0x56aex4){if(_0x56aex4!==_0x61ea[8]){this[_0x61ea[10]](_0x61ea[9],_0x56aex4)}else {this[_0x61ea[10]](_0x61ea[9],null)}}},endtime:_0x56aex2[_0x61ea[7]],duration:_0x56aex2[_0x61ea[11]],billableseconds:_0x56aex2[_0x61ea[11]],disposition:_0x56aex2[_0x61ea[2]],amaflags:_0x56aex2[_0x61ea[2]],userfield:_0x56aex2[_0x61ea[2]]},{tableName:_0x61ea[12],associate:function(_0x56aex5){_0x56aex3[_0x61ea[15]](_0x56aex5.ReportQueue,{as:_0x61ea[13],foreignKey:_0x61ea[14],constraints:false});_0x56aex3[_0x61ea[15]](_0x56aex5.ReportAgent,{as:_0x61ea[16],foreignKey:_0x61ea[14],constraints:false})}});return _0x56aex3}
\ No newline at end of file
+/**
+ * CDR Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ReportCall = sequelize.define('ReportCall', {
+    uniqueid: {
+      type: DataTypes.STRING,
+      unique: 'uniqueid'
+    },
+    type: {
+      type: DataTypes.ENUM,
+      values: ['inbound', 'internal', 'outbound', 'inbound-fax', 'outbound-fax', 'tigerdial', 'chanspy']
+    },
+    tag: DataTypes.STRING,
+    accountcode: DataTypes.STRING,
+    source: DataTypes.STRING,
+    destination: DataTypes.STRING,
+    destinationcontext: DataTypes.STRING,
+    callerid: DataTypes.STRING,
+    channel: DataTypes.STRING,
+    destinationchannel: DataTypes.STRING,
+    lastapplication: DataTypes.STRING,
+    lastdata: DataTypes.STRING,
+    starttime: DataTypes.DATE,
+    answertime: {
+      type: DataTypes.DATE,
+      // set: function(answertime) {
+      //   if (answertime !== '') {
+      //     this.setDataValue('answertime', answertime);
+      //   } else {
+      //     this.setDataValue('answertime', null);
+      //   }
+      // }
+    },
+    endtime: DataTypes.DATE,
+    duration: DataTypes.INTEGER,
+    billableseconds: DataTypes.INTEGER,
+    disposition: DataTypes.STRING,
+    amaflags: DataTypes.STRING,
+    userfield: DataTypes.STRING,
+    agentDisposition: DataTypes.STRING,
+    contactId: DataTypes.INTEGER
+  }, {
+    tableName: 'report_call',
+    associate: function(models) {
+      ReportCall.hasMany(models.ReportQueue, {
+        as: 'QueueCalls',
+        foreignKey: 'uniqueid',
+        constraints: false
+      })
+      ReportCall.hasMany(models.ReportAgent, {
+        as: 'ReportAgents',
+        foreignKey: 'uniqueid',
+        constraints: false
+      })
+    }
+  });
+
+  return ReportCall;
+};