UNPKG

lisa-box

Version:
58 lines 2.12 kB
const _ = require('lodash'); const ModelPassport = require('trailpack-passport/api/models/User'); const ModelPermissions = require('trailpack-acl/api/models/User'); module.exports = class User extends ModelPassport { static config(app, Sequelize) { return { options: { classMethods: { associate: (models) => { ModelPassport.config(app, Sequelize).options.classMethods.associate(models); ModelPermissions.config(app, Sequelize).options.classMethods.associate(models); models.User.hasMany(models.Dashboard, { as: 'dashboards', onDelete: 'CASCADE', foreignKey: { name: 'userId', allowNull: false } }); models.User.belongsToMany(models.Device, { as: 'favorites', through: 'usersFavorites' }); models.User.hasMany(models.Notification, { as: 'notifications', foreignKey: { name: 'userId' } }); } } } }; } static schema(app, Sequelize) { const userTrailpackSchema = ModelPassport.schema(app, Sequelize); const schema = { firstname: { type: Sequelize.STRING }, lang: { type: Sequelize.STRING, defaultValue: 'en' }, lastname: { type: Sequelize.STRING }, mobile: { type: Sequelize.STRING }, avatar: { type: Sequelize.STRING } }; return _.assign({}, userTrailpackSchema, schema); } }; //# sourceMappingURL=User.js.map