5 var crypto = require('crypto');
7 module.exports = function(sequelize, DataTypes) {
9 var ChatRoom = sequelize.define('ChatRoom', {
10 type: DataTypes.ENUM('internal', 'external', 'group'),
12 type: DataTypes.STRING,
16 type: DataTypes.ENUM('NEW', 'OPEN', 'CLOSED', 'ABANDON', 'UNMANAGED'),
19 rating: DataTypes.ENUM('good', 'bad'),
20 ratingMessage: DataTypes.TEXT,
21 completeReason: DataTypes.ENUM('agent', 'requester'),
23 type: DataTypes.INTEGER,
29 return this.getDataValue('tags') ? this.getDataValue('tags').split(';').pop() : [];
32 this.setDataValue('tags', val && val.length ? val.join(';') + ';' : null);
36 type: DataTypes.STRING
39 tableName: 'chat_rooms',
40 associate: function(models) {
41 ChatRoom.hasMany(models.ChatMessage);
42 ChatRoom.belongsTo(models.ChatVisitor);
43 ChatRoom.belongsTo(models.ChatWebsite);
44 ChatRoom.belongsToMany(models.User, {
45 through: models.UserHasChatRoom
47 ChatRoom.addScope('online', {