1 const moment = require('moment');
3 module.exports = function(sequelize, DataTypes) {
4 var SmsRoom = sequelize.define('SmsRoom', {
6 type: DataTypes.STRING,
12 type: DataTypes.INTEGER,
16 type: DataTypes.INTEGER,
20 type: DataTypes.ENUM('NEW', 'OPEN', 'PENDING', 'CLOSED'),
22 set: function(status) {
23 this.setDataValue('status', status);
27 this.setDataValue('arrivedAt', moment().format('YYYY-MM-DD HH:mm:ss'));
30 this.setDataValue('closedAt', moment().format('YYYY-MM-DD HH:mm:ss'));
38 type: DataTypes.ENUM('SENDING', 'SENT', 'RECEIVED', 'FAILED', 'NOTE')
44 type: DataTypes.BOOLEAN,
51 if (this.getDataValue('tags')) {
52 tags = this.getDataValue('tags').split(';');
60 this.setDataValue('tags', val && val.length ? val.join(';') + ';' : null);
64 type: DataTypes.STRING
66 openReason: DataTypes.STRING,
74 type: DataTypes.INTEGER
77 type: DataTypes.BOOLEAN,
81 tableName: 'sms_rooms',
82 associate: function(models) {
84 SmsRoom.hasMany(models.SmsMessage);
85 SmsRoom.hasMany(models.SmsRoomStatus, {
86 plural: 'SmsRoomStatuses'
88 SmsRoom.belongsToMany(models.User, {
89 through: 'user_has_sms_rooms'
91 SmsRoom.belongsTo(models.SmsAccount);
92 SmsRoom.addScope('default', {
97 model: models.SmsAccount
99 model: models.SmsMessage,
102 attributes: ['id', 'name', 'fullname', 'email']
106 attributes: ['id', 'name', 'fullname', 'email']
109 SmsRoom.addScope('agent', function(id) {