Built motion from commit 1020cd7.|0.0.107
[motion.git] / server / models / fax_message.js
1 /**
2  * Chat Website Model
3  */
4
5 var _ = require('lodash');
6
7 module.exports = function(sequelize, DataTypes) {
8
9         var FaxMessage = sequelize.define('FaxMessage', {
10                 from: DataTypes.STRING,
11                 to: DataTypes.STRING,
12                 status: {
13                         type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED', 'NOTE'),
14                         defaultValue: 'SENDING'
15                 },
16                 // actionid: DataTypes.STRING,
17                 channel: DataTypes.STRING,
18                 channelstate: DataTypes.INTEGER,
19                 channelstatedesc: DataTypes.STRING,
20                 calleridnum: DataTypes.STRING,
21                 calleridname: DataTypes.STRING,
22                 connectedlinenum: DataTypes.STRING,
23                 connectedlinename: DataTypes.STRING,
24                 accountcode: DataTypes.STRING,
25                 context: DataTypes.STRING,
26                 exten: DataTypes.STRING,
27                 priority: DataTypes.INTEGER,
28                 uniqueid: DataTypes.STRING,
29                 linkedid: DataTypes.STRING,
30                 localstationid: DataTypes.STRING,
31                 remotestationid: DataTypes.STRING,
32                 pagestransferred: {
33                         type: DataTypes.INTEGER,
34                         defaultValue: 0
35                 },
36                 resolution: DataTypes.STRING,
37                 transferrate: DataTypes.STRING,
38                 filename: DataTypes.STRING,
39                 lastStatus: DataTypes.STRING,
40                 error: DataTypes.STRING,
41                 // body: DataTypes.TEXT,
42                 text: {
43                         type: DataTypes.BLOB,
44                         get: function() {
45                                 if (this.getDataValue('text')) {
46                                         return _.toString(this.getDataValue('text'));
47                                 }
48                         }
49                 },
50                 retry: {
51                         type: DataTypes.INTEGER,
52                         defaultValue: 0
53                 }
54         }, {
55                 tableName: 'fax_messages',
56                 paranoid: true,
57                 associate: function(models) {
58                         FaxMessage.belongsTo(models.FaxRoom, {
59                                 onDelete: 'cascade'
60                         });
61                         FaxMessage.belongsTo(models.User);
62                         FaxMessage.hasMany(models.FaxAttachment);
63                 }
64         });
65
66         return FaxMessage;
67 };