a2e3670f07442df66ff68e7110ba5fcd9695a28a
[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                 bcc: DataTypes.STRING,
17                 attachment: DataTypes.TEXT,
18                 html: DataTypes.TEXT,
19                 text: DataTypes.TEXT,
20                 reason: DataTypes.TEXT,
21                 status: {
22                         type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED')
23                 }
24         }, {
25                 tableName: 'mail_messages',
26                 associate: function (models) {
27                         MailMessage.belongsTo(models.MailRoom);
28
29                         MailMessage.belongsTo(models.ContactEmail, {
30                                 as: 'From'
31                         });
32
33                         MailMessage.belongsToMany(models.ContactEmail, {
34                                 as: 'To',
35                                 through: 'mail_message_has_to',
36                                 onDelete: 'cascade'
37                         });
38
39                         MailMessage.belongsToMany(models.ContactEmail, {
40                                 as: 'Cc',
41                                 through: 'mail_message_has_cc',
42                                 onDelete: 'cascade'
43                         });
44
45                         MailMessage.belongsToMany(models.ContactEmail, {
46                                 as: 'Bcc',
47                                 through: 'mail_message_has_bcc',
48                                 onDelete: 'cascade'
49                         });
50
51                         MailMessage.hasMany(models.MailAttachment);
52                 }
53         });
54
55         return MailMessage;
56 };