Built motion from commit d415888.|0.0.73
[motion.git] / server / models / desk_account.js
1 'use strict';
2
3 module.exports = function(sequelize, DataTypes) {
4
5   var DeskAccount = sequelize.define('DeskAccount', {
6     name: DataTypes.STRING,
7     description: DataTypes.STRING,
8     username: {
9       type: DataTypes.STRING,
10       unique: true
11     },
12     remoteUri: {
13       type: DataTypes.STRING,
14       unique: true
15     },
16     authType: {
17       type: DataTypes.ENUM('basic', 'oauth'),
18       defaultValue: 'basic'
19     },
20     password: DataTypes.STRING,
21     consumerKey: DataTypes.STRING,
22     consumerSecret: DataTypes.STRING,
23     token: DataTypes.STRING,
24     tokenSecret: DataTypes.STRING
25   }, {
26     tableName: 'desk_accounts',
27     associate: function(models) {
28       DeskAccount.hasMany(models.DeskConfiguration, {
29         as: 'Configurations',
30         foreignKey: 'AccountId'
31       });
32       DeskAccount.addScope('configurations', {
33         include: [{
34           model: models.DeskConfiguration,
35           as: 'Configurations',
36           required: false,
37           attributes: ['id', 'name']
38         }]
39       });
40     }
41   });
42
43   return DeskAccount;
44
45 };