-var _0xa2a6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x30","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x46\x52\x4F\x4D\x5F\x55\x4E\x49\x58\x54\x49\x4D\x45","\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x69\x3A\x25\x73","\x66\x6E","\x73\x74\x61\x74\x75\x73","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x4E\x4F\x54\x5F\x49\x4E\x55\x53\x45","\x31","\x49\x4E\x55\x53\x45","\x32","\x42\x55\x53\x59","\x33","\x49\x4E\x56\x41\x4C\x49\x44","\x34","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45","\x35","\x52\x49\x4E\x47\x49\x4E\x47","\x36","\x52\x49\x4E\x47\x49\x4E\x55\x53\x45","\x37","\x4F\x4E\x48\x4F\x4C\x44","\x38","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x4E\x4F\x57","\x70\x61\x75\x73\x65\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xa2a6[0]);module[_0xa2a6[1]]=function(_0xd6cfx2,_0xd6cfx3){var _0xd6cfx4=_0xd6cfx2[_0xa2a6[37]](_0xa2a6[2],{logged:{type:_0xd6cfx3[_0xa2a6[3]],defaultValue:false},loggedAt:{type:_0xd6cfx3[_0xa2a6[4]]},ringinuse:{type:_0xd6cfx3[_0xa2a6[3]]},penalty:{type:_0xd6cfx3[_0xa2a6[5]]},stateinterface:{type:_0xd6cfx3[_0xa2a6[6]]},queue:{type:_0xd6cfx3[_0xa2a6[6]]},membername:{type:_0xd6cfx3[_0xa2a6[6]]},interface:{type:_0xd6cfx3[_0xa2a6[6]]},membership:{type:_0xd6cfx3[_0xa2a6[6]]},callstaken:{type:_0xd6cfx3[_0xa2a6[5]]},lastcall:{type:_0xd6cfx3[_0xa2a6[4]],set:function(_0xd6cfx5){if(_0xd6cfx5===_0xa2a6[7]){this[_0xa2a6[9]](_0xa2a6[8],null)}else {this[_0xa2a6[9]](_0xa2a6[8],_0xd6cfx2[_0xa2a6[12]](_0xa2a6[10],_0xd6cfx5,_0xa2a6[11]))}}},status:{type:_0xd6cfx3[_0xa2a6[5]],set:function(_0xd6cfx6){this[_0xa2a6[9]](_0xa2a6[13],_0xd6cfx6);var _0xd6cfx7=_0xa2a6[14];switch(_0xd6cfx6){case _0xa2a6[7]:_0xd6cfx7=_0xa2a6[14];break ;;case _0xa2a6[16]:_0xd6cfx7=_0xa2a6[15];break ;;case _0xa2a6[18]:_0xd6cfx7=_0xa2a6[17];break ;;case _0xa2a6[20]:_0xd6cfx7=_0xa2a6[19];break ;;case _0xa2a6[22]:_0xd6cfx7=_0xa2a6[21];break ;;case _0xa2a6[24]:_0xd6cfx7=_0xa2a6[23];break ;;case _0xa2a6[26]:_0xd6cfx7=_0xa2a6[25];break ;;case _0xa2a6[28]:_0xd6cfx7=_0xa2a6[27];break ;;case _0xa2a6[30]:_0xd6cfx7=_0xa2a6[29];break ;;};this[_0xa2a6[9]](_0xa2a6[31],_0xd6cfx7);this[_0xa2a6[9]](_0xa2a6[32],_0xd6cfx2[_0xa2a6[12]](_0xa2a6[33]));}},statusdesc:{type:_0xd6cfx3[_0xa2a6[6]]},statusAt:{type:_0xd6cfx3[_0xa2a6[4]]},paused:{type:_0xd6cfx3[_0xa2a6[3]],defaultValue:false,set:function(_0xd6cfx8){this[_0xa2a6[9]](_0xa2a6[34],parseInt(_0xd6cfx8,10)?true:false)}},pausedAt:{type:_0xd6cfx3[_0xa2a6[4]]},reason:{type:_0xd6cfx3[_0xa2a6[6]]}},{tableName:_0xa2a6[35],indexes:[{name:_0xa2a6[36],fields:[_0xa2a6[36]]}]});return _0xd6cfx4;};
\ No newline at end of file
+/**
+ * Chat Website Model
+ */
+
+var moment = require('moment');
+
+module.exports = function(sequelize, DataTypes) {
+ var UserHasVoiceQueue = sequelize.define('UserHasVoiceQueue', {
+ logged: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: false
+ },
+ loggedAt: {
+ type: DataTypes.DATE
+ },
+ ringinuse: {
+ type: DataTypes.BOOLEAN
+ },
+ penalty: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
+ },
+ stateinterface: {
+ type: DataTypes.STRING
+ },
+ queue: {
+ type: DataTypes.STRING
+ },
+ membername: {
+ type: DataTypes.STRING
+ },
+ interface: {
+ type: DataTypes.STRING
+ },
+ membership: {
+ type: DataTypes.STRING
+ },
+ callstaken: {
+ type: DataTypes.INTEGER
+ },
+ lastcall: {
+ type: DataTypes.DATE,
+ set: function(lastcall) {
+ if (lastcall === '0') {
+ this.setDataValue('lastcall', null);
+ } else {
+ this.setDataValue('lastcall', moment().format('YYYY-MM-DD HH:mm:ss'));
+ }
+ }
+ },
+ status: {
+ type: DataTypes.INTEGER,
+ set: function(status) {
+ this.setDataValue('status', status);
+ var detail = 'UNKNOWN';
+ switch (status) {
+ case '0':
+ detail = 'UNKNOWN';
+ break;
+ case '1':
+ detail = 'NOT_INUSE';
+ break;
+ case '2':
+ detail = 'INUSE';
+ break;
+ case '3':
+ detail = 'BUSY';
+ break;
+ case '4':
+ detail = 'INVALID';
+ break;
+ case '5':
+ detail = 'UNAVAILABLE';
+ break;
+ case '6':
+ detail = 'RINGING';
+ break;
+ case '7':
+ detail = 'RINGINUSE';
+ break;
+ case '8':
+ detail = 'ONHOLD';
+ break;
+ }
+ this.setDataValue('statusdesc', detail);
+ this.setDataValue('statusAt', sequelize.fn('NOW'))
+ },
+ },
+ statusdesc: {
+ type: DataTypes.STRING
+ },
+ statusAt: {
+ type: DataTypes.DATE
+ },
+ paused: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: false,
+ set: function(paused) {
+ this.setDataValue('paused', parseInt(paused, 10) ? true : false);
+ }
+ },
+ pausedAt: {
+ type: DataTypes.DATE
+ },
+ reason: {
+ type: DataTypes.STRING
+ }
+ }, {
+ tableName: 'user_has_voice_queues',
+ indexes: [{
+ name: 'membername',
+ fields: ['membername']
+ }]
+ });
+
+ return UserHasVoiceQueue;
+};