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,
30 if (this.getDataValue('tags')) {
31 tags = this.getDataValue('tags').split(';');
39 this.setDataValue('tags', val && val.length ? val.join(';') + ';' : null);
43 type: DataTypes.STRING
46 tableName: 'chat_rooms',
47 associate: function(models) {
48 ChatRoom.hasMany(models.ChatMessage);
49 ChatRoom.belongsTo(models.ChatVisitor);
50 ChatRoom.belongsTo(models.ChatWebsite);
51 ChatRoom.belongsToMany(models.User, {
52 through: models.UserHasChatRoom
54 ChatRoom.addScope('online', {