const { DataTypes } = require('sequelize'); module.exports = (sequelize) => { const Event = sequelize.define('Event', { uniqueId: { type: DataTypes.STRING, allowNull: true }, eventTypeId: { type: DataTypes.INTEGER, allowNull: true }, event_place_id: { type: DataTypes.INTEGER, allowNull: true }, name: { type: DataTypes.STRING, allowNull: true }, date: { type: DataTypes.DATE, allowNull: true }, time: { type: DataTypes.TIME, allowNull: true }, endTime: { type: DataTypes.TIME, allowNull: true }, dayOfWeek: { type: DataTypes.INTEGER, allowNull: true }, description: { type: DataTypes.TEXT, allowNull: true }, alsoOnHomepage: { type: DataTypes.INTEGER, allowNull: false }, relatedImage: { type: DataTypes.STRING, allowNull: true } }, { tableName: 'events', timestamps: true }); Event.associate = function(models) { Event.belongsTo(models.Institution, { foreignKey: 'institution_id', as: 'institution' }); Event.belongsTo(models.EventPlace, { foreignKey: 'event_place_id', as: 'eventPlace' }); Event.belongsTo(models.EventType, { foreignKey: 'eventTypeId', as: 'eventType' }); Event.belongsToMany(models.ContactPerson, { through: 'EventContactPerson', foreignKey: 'event_id', otherKey: 'contact_person_id', as: 'contactPersons' }); Event.belongsTo(models.Image, { foreignKey: 'relatedImage', as: 'relatedImageAssociation' }) }; return Event; };