const Sequelize = require('sequelize'); module.exports = function (sequelize, DataTypes) { const Location = sequelize.define('Location', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, country: { type: DataTypes.STRING(125), allowNull: false }, city: { type: DataTypes.STRING(125), allowNull: false }, description: { type: DataTypes.STRING, }, }, { tableName: 'locations', freezeTableName: true, timestamps: true, indexes: [{ unique: true, fields: ['country', 'city'] }] }); Location.associate = function (models) { //Location.Events = Location.hasMany(models.Event, { as: 'events', foreignKey: ['country', 'city'] }); //OJO antes de force comentar // OJO GENERA UN FOREIGN KEY Con eventos y habrĂ¡ ID de otras entidades que no exitan en la tabla eventos, porque son post o speakers Location.Multimedias = Location.hasMany(models.Multimedia, { foreignKey: 'entityId', as: { singular: 'multimedia', plural: 'multimedias' }, }); }; Location.addScope('includeMultimedias', () => { return { include: [{ model: sequelize.models.Multimedia, as: { singular: 'multimedia', plural: 'multimedias' }, required: false, include: [{ model: sequelize.models.MultimediaFile, as: "multimediaFile" }] }, ] } }); return Location; };