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