-var _0xcbec=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x74\x6F","\x63\x61\x73\x63\x61\x64\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x43\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x63\x63","\x42\x63\x63","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x68\x61\x73\x5F\x62\x63\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xcbec[0]);module[_0xcbec[1]]=function(_0xb3afx2,_0xb3afx3){var _0xb3afx4=_0xb3afx2[_0xcbec[21]](_0xcbec[2],{messageId:_0xb3afx3[_0xcbec[3]],inReplyTo:_0xb3afx3[_0xcbec[3]],subject:_0xb3afx3[_0xcbec[3]],from:_0xb3afx3[_0xcbec[3]],to:_0xb3afx3[_0xcbec[3]],cc:_0xb3afx3[_0xcbec[3]],bcc:_0xb3afx3[_0xcbec[3]],attachment:_0xb3afx3[_0xcbec[4]],html:_0xb3afx3[_0xcbec[4]],text:_0xb3afx3[_0xcbec[4]],reason:_0xb3afx3[_0xcbec[4]],status:{type:_0xb3afx3.ENUM(_0xcbec[5],_0xcbec[6],_0xcbec[7],_0xcbec[8])}},{tableName:_0xcbec[9],associate:function(_0xb3afx5){_0xb3afx4[_0xcbec[10]](_0xb3afx5.MailRoom);_0xb3afx4[_0xcbec[10]](_0xb3afx5.ContactEmail,{as:_0xcbec[11]});_0xb3afx4[_0xcbec[15]](_0xb3afx5.ContactEmail,{as:_0xcbec[12],through:_0xcbec[13],onDelete:_0xcbec[14]});_0xb3afx4[_0xcbec[15]](_0xb3afx5.ContactEmail,{as:_0xcbec[16],through:_0xcbec[17],onDelete:_0xcbec[14]});_0xb3afx4[_0xcbec[15]](_0xb3afx5.ContactEmail,{as:_0xcbec[18],through:_0xcbec[19],onDelete:_0xcbec[14]});_0xb3afx4[_0xcbec[20]](_0xb3afx5.MailAttachment);}});return _0xb3afx4;};
\ No newline at end of file
+/**
+ * Chat Website Model
+ */
+
+var _ = require('lodash');
+
+module.exports = function(sequelize, DataTypes) {
+
+ var MailMessage = sequelize.define('MailMessage', {
+ messageId: DataTypes.STRING,
+ inReplyTo: DataTypes.STRING,
+ subject: DataTypes.STRING,
+ from: {
+ type: DataTypes.STRING,
+ get: function() {
+ return this.getDataValue('from') ? this.getDataValue('from').split(';') : [];
+ },
+ set: function(val) {
+ this.setDataValue('from', val.join(';'));
+ }
+ },
+ to: {
+ type: DataTypes.TEXT,
+ get: function() {
+ return this.getDataValue('to') ? this.getDataValue('to').split(';') : [];
+ },
+ set: function(val) {
+ this.setDataValue('to', val.join(';'));
+ }
+ },
+ cc: {
+ type: DataTypes.TEXT,
+ get: function() {
+ return this.getDataValue('cc') ? this.getDataValue('cc').split(';') : [];
+ },
+ set: function(val) {
+ this.setDataValue('cc', val.join(';'));
+ }
+ },
+ bcc: {
+ type: DataTypes.TEXT,
+ get: function() {
+ return this.getDataValue('bcc') ? this.getDataValue('bcc').split(';') : [];
+ },
+ set: function(val) {
+ this.setDataValue('bcc', val.join(';'));
+ }
+ },
+ fromId: {
+ type: DataTypes.INTEGER
+ },
+ attachment: DataTypes.TEXT,
+ text: {
+ type: DataTypes.BLOB('long'),
+ get: function() {
+ if (this.getDataValue('text')) {
+ return _.toString(this.getDataValue('text'));
+ }
+ }
+ },
+ html: {
+ type: DataTypes.BLOB('long'),
+ get: function() {
+ if (this.getDataValue('html')) {
+ if (this.getDataValue('html')) {
+ return _.toString(this.getDataValue('html'));
+ }
+ }
+ }
+ },
+ reason: DataTypes.TEXT,
+ auto: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: false
+ },
+ status: {
+ type: DataTypes.ENUM('SENDING', 'SENT', 'RECEIVED', 'FAILED', 'NOTE'),
+ defaultValue: 'SENDING'
+ },
+ retry: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
+ },
+ voiceSource: DataTypes.STRING,
+ userName: DataTypes.STRING,
+ userFullname: DataTypes.STRING,
+ accountId: DataTypes.INTEGER,
+ accountName: DataTypes.STRING
+ }, {
+ tableName: 'mail_messages',
+ paranoid: true,
+ associate: function(models) {
+ MailMessage.hasMany(models.MailAttachment);
+ MailMessage.belongsTo(models.User);
+ MailMessage.belongsTo(models.MailRoom, {
+ onDelete: 'cascade'
+ });
+ }
+ });
+
+ return MailMessage;
+};