Multimedias -> campo virtual
This commit is contained in:
parent
d0901c42a9
commit
c6eadc5d21
60
modules/multimedia/multimedias.model.js
Normal file
60
modules/multimedia/multimedias.model.js
Normal file
@ -0,0 +1,60 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
const Multimedias = sequelize.define('Multimedias', {
|
||||
id: {
|
||||
type: DataTypes.UUID,
|
||||
defaultValue: DataTypes.UUIDV4,
|
||||
primaryKey: true,
|
||||
},
|
||||
entityId: {
|
||||
type: DataTypes.UUID,
|
||||
allowNull: false,
|
||||
},
|
||||
entityName: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
type: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
entity: {
|
||||
type: DataTypes.VIRTUAL,
|
||||
get: function() {
|
||||
const name = this.get('entityName');
|
||||
const id = this.get('entityId');
|
||||
let modelName = '';
|
||||
switch (name) {
|
||||
case 'post':
|
||||
modelName = 'Post';
|
||||
break;
|
||||
case 'speaker':
|
||||
modelName = 'Speaker'
|
||||
break;
|
||||
|
||||
case 'event':
|
||||
modelName = 'Event';
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return sequelize.models[modelName].findOne(id);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
indexes: [{
|
||||
unique: false,
|
||||
fields: ['entityId']
|
||||
}],
|
||||
tableName: 'multimedias',
|
||||
freezeTableName: true,
|
||||
timestamps: true,
|
||||
});
|
||||
|
||||
|
||||
|
||||
return Multimedias;
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user