diff --git a/modules/multimedia/multimedias.model.js b/modules/multimedia/multimedias.model.js new file mode 100644 index 0000000..44b01ce --- /dev/null +++ b/modules/multimedia/multimedias.model.js @@ -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; +}; \ No newline at end of file diff --git a/server.js b/server.js index db24351..0345504 100644 --- a/server.js +++ b/server.js @@ -49,7 +49,7 @@ server.on('error', err => { }); try { - models.sequelize.sync().then(() => { + models.sequelize.sync({ force: false }).then(() => { // Launch server. server.listen(currentState.port, (err) => { if (err) {