Built motion from commit 6cace3e.|0.0.96
[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                 // status: {
25                 //      type: DataTypes.ENUM('RECEIVED', 'NOT SENT', 'SENDING', 'SENT',
26                 //              'FAILED'),
27                 //      allowNull: true
28                 // },
29                 // read: {
30                 //      type: DataTypes.BOOLEAN,
31                 //      defaultValue: false
32                 // },
33                 // favorite: {
34                 //      type: DataTypes.BOOLEAN,
35                 //      defaultValue: false
36                 // },
37                 // language: DataTypes.STRING,
38                 accountcode: DataTypes.STRING,
39                 context: DataTypes.STRING,
40                 exten: DataTypes.STRING,
41                 priority: DataTypes.INTEGER,
42                 uniqueid: DataTypes.STRING,
43                 linkedid: DataTypes.STRING,
44                 localstationid: DataTypes.STRING,
45                 remotestationid: DataTypes.STRING,
46                 pagestransferred: DataTypes.INTEGER,
47                 resolution: DataTypes.STRING,
48                 transferrate: DataTypes.STRING,
49                 filename: DataTypes.STRING,
50                 // filenamePDF: DataTypes.STRING,
51                 // operation: DataTypes.STRING,
52                 // uuid: DataTypes.STRING,
53                 // laststatus: DataTypes.STRING,
54                 // error: DataTypes.STRING,
55                 // body: DataTypes.TEXT,
56                 text: {
57                         type: DataTypes.BLOB,
58                         get: function() {
59                                 if (this.getDataValue('text')) {
60                                         return _.toString(this.getDataValue('text'));
61                                 }
62                         }
63                 }
64         }, {
65                 tableName: 'fax_messages',
66                 paranoid: true,
67                 associate: function(models) {
68                         FaxMessage.belongsTo(models.FaxRoom, {
69                                 onDelete: 'cascade'
70                         });
71                         FaxMessage.belongsTo(models.User);
72                         FaxMessage.hasMany(models.FaxAttachment);
73                 }
74         });
75
76         return FaxMessage;
77 };