Built motion from commit 1038d87.|0.0.141
[motion.git] / server / models / chat_website.js
index 6beba8c..310ec96 100644 (file)
@@ -2,8 +2,6 @@
  * Chat Website Model
  */
 
-var crypto = require('crypto');
-
 module.exports = function(sequelize, DataTypes) {
 
        var ChatWebsite = sequelize.define('ChatWebsite', {
@@ -74,12 +72,126 @@ module.exports = function(sequelize, DataTypes) {
                        type: DataTypes.BOOLEAN,
                        defaultValue: true
                },
+               enquiry_forwarding: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: false
+               },
+               enquiry_forwarding_address: {
+                       type: DataTypes.STRING
+               },
+               enquiry_enable: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: true
+               },
+               rating_enable: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: true
+               },
+               rating_message: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Would you like rate this chat?'
+               },
+               rating_send: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Send'
+               },
+               rating_skip: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Skip'
+               },
+               show_service_name: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: false
+               },
+               service_name: {
+                       type: DataTypes.STRING
+               },
+               fidelity: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: false
+               },
+               timeout: {
+                       type: DataTypes.INTEGER,
+                       defaultValue: 0
+               },
+               agents_busy: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'In this moment all agents are busy. Try again!'
+               },
+               name_title: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Name'
+               },
+               email_title: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Email Address'
+               },
+               message_title: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Message'
+               },
+               logo: {
+                       type: DataTypes.STRING
+               },
+               defaultLogo: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: true
+               },
+               whiteLabel: {
+                       type: DataTypes.STRING,
+                       defaultValue: 'Powered by xCALLY'
+               },
+               defaultWhiteLabel: {
+                       type: DataTypes.BOOLEAN,
+                       defaultValue: true
+               },
+               acceptUrl: {
+                       type: DataTypes.STRING
+               },
+               rejectUrl: {
+                       type: DataTypes.STRING
+               },
+               closeUrl: {
+                       type: DataTypes.STRING
+               },
+               closeMethod: {
+                       type: DataTypes.ENUM('GET', 'POST')
+               },
+               acceptMethod: {
+                       type: DataTypes.ENUM('GET', 'POST')
+               },
+               rejectMethod: {
+                       type: DataTypes.ENUM('GET', 'POST')
+               },
+               actions: {
+                       type: DataTypes.STRING,
+                       get: function() {
+                               return this.getDataValue('actions') ? JSON.parse(this.getDataValue('actions')) : [];
+                       },
+                       set: function(val) {
+                               return this.setDataValue('actions', JSON.stringify(val));
+                       }
+               }
        }, {
                tableName: 'chat_websites',
                associate: function(models) {
                        // hasMany relations
+                       ChatWebsite.belongsTo(models.Template, {
+                               as: 'OfflineTemplate'
+                       });
                        ChatWebsite.hasMany(models.ChatRoom);
                        ChatWebsite.hasMany(models.ChatApplication);
+                       ChatWebsite.belongsTo(models.List);
+                       ChatWebsite.hasMany(models.ChatWebsitesField, {
+                               as: 'Online',
+                               foreignKey: 'OnlineId'
+                       });
+                       ChatWebsite.hasMany(models.ChatWebsitesField, {
+                               as: 'Offline',
+                               foreignKey: 'OfflineId'
+                       });
+                       ChatWebsite.hasMany(models.ChatProactiveAction);
+                       ChatWebsite.hasMany(models.ChatDisposition);
                }
        });