1 const moment = require('moment');
4 module.exports = function(sequelize, DataTypes) {
5 var SmsRoom = sequelize.define('SmsRoom', {
7 type: DataTypes.STRING,
13 type: DataTypes.INTEGER,
17 type: DataTypes.INTEGER,
21 type: DataTypes.ENUM('NEW', 'OPEN', 'PENDING', 'CLOSED'),
23 set: function(status) {
24 this.setDataValue('status', status);
28 this.setDataValue('arrivedAt', moment().format('YYYY-MM-DD HH:mm:ss'));
31 this.setDataValue('closedAt', moment().format('YYYY-MM-DD HH:mm:ss'));
39 type: DataTypes.ENUM('SENDING', 'SENT', 'RECEIVED', 'FAILED', 'NOTE')
45 type: DataTypes.BOOLEAN,
52 if (this.getDataValue('tags')) {
53 tags = this.getDataValue('tags').split(';');
61 this.setDataValue('tags', val && val.length ? val.join(';') + ';' : null);
65 type: DataTypes.STRING
67 openReason: DataTypes.STRING,
75 type: DataTypes.INTEGER
78 type: DataTypes.BOOLEAN,
82 type: DataTypes.STRING
85 tableName: 'sms_rooms',
86 associate: function(models) {
88 SmsRoom.hasMany(models.SmsMessage);
89 SmsRoom.hasMany(models.SmsRoomStatus, {
90 plural: 'SmsRoomStatuses'
92 SmsRoom.belongsToMany(models.User, {
93 through: 'user_has_sms_rooms'
95 SmsRoom.belongsTo(models.SmsAccount);
96 SmsRoom.addScope('default', {
101 model: models.SmsAccount
103 model: models.SmsMessage,
106 attributes: ['id', 'name', 'fullname', 'email']
110 attributes: ['id', 'name', 'fullname', 'email']
113 SmsRoom.addScope('agent', function(id) {