Built motion from commit 06df96e on branch develop.
[motion.git] / server / models / mail_message.js
1 /**
2  * Chat Website Model
3  */
4
5 var crypto = require('crypto');
6
7 module.exports = function(sequelize, DataTypes) {
8
9         var MailMessage = sequelize.define('MailMessage', {
10                 messageId: DataTypes.STRING,
11                 inReplyTo: DataTypes.STRING,
12                 subject: DataTypes.STRING,
13                 from: DataTypes.STRING,
14                 to: DataTypes.STRING,
15                 cc: DataTypes.STRING,
16                 attachment: DataTypes.TEXT,
17                 html: DataTypes.TEXT,
18                 text: DataTypes.TEXT,
19                 reason: DataTypes.TEXT,
20                 status: {
21                         type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED')
22                 }
23         }, {
24                 tableName: 'mail_messages',
25                 associate: function(models) {
26                         MailMessage.belongsTo(models.MailRoom);
27
28                         MailMessage.belongsTo(models.Contact, {
29                                 as: 'From',
30                                 onDelete: 'cascade'
31                         });
32
33                         MailMessage.belongsToMany(models.Contact, {
34                                 as: 'To',
35                                 through: 'mail_message_has_to',
36                                 onDelete: 'cascade'
37                         });
38
39                         MailMessage.belongsToMany(models.Contact, {
40                                 as: 'Cc',
41                                 through: 'mail_message_has_cc',
42                                 onDelete: 'cascade'
43                         });
44
45                         MailMessage.belongsToMany(models.MailAttachment, {
46                                 through: 'mail_message_has_attachment',
47                                 onDelete: 'cascade'
48                         });
49                 }
50         });
51
52         return MailMessage;
53 };