63162aca43802df5b1206fbf5c8b2c329c227f05
[motion.git] / server / models / chat_website.js
1 /**
2  * Chat Website Model
3  */
4
5 var crypto = require('crypto');
6
7 module.exports = function(sequelize, DataTypes) {
8
9         var ChatWebsite = sequelize.define('ChatWebsite', {
10                 name: DataTypes.STRING,
11                 address: {
12                         type: DataTypes.STRING,
13                         unique: true
14                 },
15                 description: DataTypes.STRING,
16                 color: {
17                         type: DataTypes.STRING,
18                         defaultValue: '#000080'
19                 },
20                 color_focus: {
21                         type: DataTypes.STRING,
22                         defaultValue: '#000080'
23                 },
24                 color_button: {
25                         type: DataTypes.STRING,
26                         defaultValue: '#000080'
27                 },
28                 remote: DataTypes.STRING,
29                 animation: {
30                         type: DataTypes.BOOLEAN,
31                         defaultValue: true
32                 },
33                 header_shape: {
34                         type: DataTypes.ENUM('rounded', 'squared'),
35                         defaultValue: 'rounded'
36                 },
37                 header_online: {
38                         type: DataTypes.STRING,
39                         defaultValue: 'We are here!'
40                 },
41                 online_message: {
42                         type: DataTypes.STRING,
43                         defaultValue: '<strong>Questions?<\/strong><br \/>Insert your name and email address to start a live-chat with our support team.'
44                 },
45                 username_placeholder: {
46                         type: DataTypes.STRING,
47                         defaultValue: 'Your name'
48                 },
49                 email_placeholder: {
50                         type: DataTypes.STRING,
51                         defaultValue: 'Your e-mail address'
52                 },
53                 start_chat_button: {
54                         type: DataTypes.STRING,
55                         defaultValue: 'Chat'
56                 },
57                 header_offline: {
58                         type: DataTypes.STRING,
59                         defaultValue: 'Contact us'
60                 },
61                 offline_message: {
62                         type: DataTypes.STRING,
63                         defaultValue: '<strong>We\'re not online.<\/strong><br \/>It doesn\'t mean we\'re not there to help - leave your message below and we\'ll be in touch as soon as possible.'
64                 },
65                 enquiry_message_placeholder: {
66                         type: DataTypes.STRING,
67                         defaultValue: 'Your message...'
68                 },
69                 enquiry_button: {
70                         type: DataTypes.STRING,
71                         defaultValue: 'Leave message'
72                 },
73                 download_transcript: {
74                         type: DataTypes.BOOLEAN,
75                         defaultValue: true
76                 },
77                 enquiry_forwarding: {
78                         type: DataTypes.BOOLEAN,
79                         defaultValue: false
80                 },
81                 enquiry_forwarding_address: {
82                         type: DataTypes.STRING
83                 },
84                 enquiry_enable: {
85                         type: DataTypes.BOOLEAN,
86                         defaultValue: true
87                 },
88                 rating_enable: {
89                         type: DataTypes.BOOLEAN,
90                         defaultValue: true
91                 },
92                 rating_message: {
93                         type: DataTypes.STRING,
94                         defaultValue: 'Would you like rate this chat?'
95                 },
96                 rating_send: {
97                         type: DataTypes.STRING,
98                         defaultValue: 'Send'
99                 },
100                 rating_skip: {
101                         type: DataTypes.STRING,
102                         defaultValue: 'Skip'
103                 },
104                 show_service_name: {
105                         type: DataTypes.BOOLEAN,
106                         defaultValue: false
107                 },
108                 service_name: {
109                         type: DataTypes.STRING
110                 },
111                 fidelity: {
112                         type: DataTypes.BOOLEAN,
113                         defaultValue: false
114                 },
115                 timeout: {
116                         type: DataTypes.INTEGER,
117                         defaultValue: 0
118                 }
119         }, {
120                 tableName: 'chat_websites',
121                 associate: function(models) {
122                         // hasMany relations
123                         ChatWebsite.belongsTo(models.Template, {
124                                 as: 'OfflineTemplate'
125                         });
126                         ChatWebsite.hasMany(models.ChatRoom);
127                         ChatWebsite.hasMany(models.ChatApplication);
128                         ChatWebsite.hasMany(models.ChatWebsitesField, {
129                                 as: 'Online',
130                                 foreignKey: 'OnlineId'
131                         });
132                         ChatWebsite.hasMany(models.ChatWebsitesField, {
133                                 as: 'Offline',
134                                 foreignKey: 'OfflineId'
135                         });
136                         ChatWebsite.hasMany(models.ChatProactiveAction);
137                 }
138         });
139
140         return ChatWebsite;
141 };