-/**
- * Chat Website Model
- */
+'use strict';
-var crypto = require('crypto');
+const _ = require('lodash');
module.exports = function(sequelize, DataTypes) {
var FaxMessage = sequelize.define('FaxMessage', {
- actionid: DataTypes.STRING,
+ from: DataTypes.STRING,
+ to: DataTypes.STRING,
+ status: {
+ type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED', 'NOTE'),
+ defaultValue: 'SENDING'
+ },
+ // actionid: DataTypes.STRING,
channel: DataTypes.STRING,
channelstate: DataTypes.INTEGER,
channelstatedesc: DataTypes.STRING,
calleridname: DataTypes.STRING,
connectedlinenum: DataTypes.STRING,
connectedlinename: DataTypes.STRING,
- status: {
- type: DataTypes.ENUM('RECEIVED', 'NOT SENT', 'SENDING', 'SENT',
- 'FAILED'),
- allowNull: true
- },
- read: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- favorite: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- language: DataTypes.STRING,
accountcode: DataTypes.STRING,
context: DataTypes.STRING,
exten: DataTypes.STRING,
priority: DataTypes.INTEGER,
uniqueid: DataTypes.STRING,
+ linkedid: DataTypes.STRING,
localstationid: DataTypes.STRING,
remotestationid: DataTypes.STRING,
- pagestransferred: DataTypes.INTEGER,
+ pagestransferred: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
+ },
resolution: DataTypes.STRING,
transferrate: DataTypes.STRING,
filename: DataTypes.STRING,
- filenamePDF: DataTypes.STRING,
- operation: DataTypes.STRING,
- uuid: DataTypes.STRING,
- laststatus: DataTypes.STRING,
+ lastStatus: DataTypes.STRING,
error: DataTypes.STRING,
- body: DataTypes.TEXT
+ // body: DataTypes.TEXT,
+ text: {
+ type: DataTypes.BLOB,
+ get: function() {
+ if (this.getDataValue('text')) {
+ return _.toString(this.getDataValue('text'));
+ }
+ }
+ },
+ retry: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
+ }
}, {
tableName: 'fax_messages',
+ paranoid: true,
associate: function(models) {
- FaxMessage.belongsTo(models.FaxRoom);
- FaxMessage.belongsTo(models.Contact, {
- as: 'From'
- });
- FaxMessage.belongsTo(models.Contact, {
- as: 'To'
+ FaxMessage.belongsTo(models.FaxRoom, {
+ onDelete: 'cascade'
});
+ FaxMessage.belongsTo(models.User);
+ FaxMessage.hasMany(models.FaxAttachment);
}
});