4d12b087a8f72d39e47656bafad8e43420213f0c
[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: true
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   }, {
18     tableName: 'int_salesforce_accounts',
19     associate: function(models) {
20       models.SalesforceAccount.hasMany(models.SalesforceConfiguration, {
21         as: 'Configurations',
22         foreignKey: 'AccountId'
23       });
24       models.SalesforceAccount.addScope('configurations', {
25         include: [{
26           model: models.SalesforceConfiguration,
27           as: 'Configurations',
28           required: false,
29           attributes: ['id', 'name']
30         }]
31       });
32     }
33   });
34 };