Built motion from commit 1333b3551.|1.0.38
[motion.git] / server / models / int_salesforce_account.js
1 'use strict';
2
3 module.exports = function(sequelize, DataTypes) {
4   return sequelize.define('SalesforceAccount', {
5     name: DataTypes.STRING,
6     description: DataTypes.STRING,
7     username: {
8       type: DataTypes.STRING,
9       unique: 'username'
10     },
11     remoteUri: DataTypes.STRING,
12     password: DataTypes.STRING,
13     clientId: DataTypes.STRING,
14     clientSecret: DataTypes.STRING,
15     securityToken: DataTypes.STRING,
16     serverUrl: DataTypes.STRING,
17     integrationType: {
18       type: DataTypes.ENUM('classic', 'embedded'),
19       defaultValue: 'embedded'
20     }
21   }, {
22     tableName: 'int_salesforce_accounts',
23     associate: function(models) {
24       models.SalesforceAccount.hasMany(models.SalesforceConfiguration, {
25         as: 'Configurations',
26         foreignKey: 'AccountId'
27       });
28       models.SalesforceAccount.addScope('configurations', {
29         include: [{
30           model: models.SalesforceConfiguration,
31           as: 'Configurations',
32           required: false,
33           attributes: ['id', 'name']
34         }]
35       });
36     }
37   });
38 };