var MailAccount = sequelize.define('MailAccount', {
description: DataTypes.STRING,
name: {
+ type: DataTypes.STRING
+ },
+ address: {
type: DataTypes.STRING,
- unique: true
+ unique: true,
+ isEmail: true,
+ set: function(address) {
+ if (address) {
+ this.setDataValue('address', address.toLowerCase());
+ }
+ },
+ },
+ fidelity: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: false
+ },
+ timeout: {
+ type: DataTypes.INTEGER,
+ defaultValue: 0
},
- address: DataTypes.STRING,
+ whiteLabel: {
+ type: DataTypes.STRING
+ }
}, {
tableName: 'mail_accounts',
associate: function(models) {
+ // RELATIONS
+ MailAccount.belongsTo(models.List);
+ MailAccount.belongsTo(models.Template);
MailAccount.hasMany(models.MailRoom);
- MailAccount.hasMany(models.MailTemplate);
+ MailAccount.hasMany(models.MailDisposition);
MailAccount.hasMany(models.MailApplication);
MailAccount.hasOne(models.MailServerIn, {
onDelete: 'cascade',
onDelete: 'cascade',
hooks: true
});
+
+ // SCOPES
+ MailAccount.addScope('default', {
+ include: [{
+ model: models.MailServerIn,
+ attributes: ['id', 'host', 'port', 'username', 'password', 'ssl', 'delete', 'filter', 'state', 'mailbox', 'connTimeout', 'authTimeout', 'keepalive', 'source']
+ }, {
+ model: models.MailServerOut,
+ attributes: ['id', 'host', 'port', 'username', 'password', 'ssl', 'service', 'state', 'source']
+ }, {
+ model: models.MailApplication,
+ include: [{
+ model: models.User,
+ attributes: ['id',
+ 'name',
+ 'email',
+ 'internal',
+ 'fullname'
+ ]
+ }, {
+ model: models.MailQueue
+ }]
+ }]
+ });
}
});