module.exports = function (sequelize, DataTypes) { const Entity = sequelize.define('Entity', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, name: { type: DataTypes.STRING, allowNull: false }, state: { type: DataTypes.STRING(45), allowNull: false, default: 'draft', } }, { tableName: 'entities', freezeTableName: true, timestamps: true, }); Entity.associate = function (models) { Entity.EntityTypes = Entity.belongsToMany(models.EntityType, { through: models.EntityEntitiesTypes, foreignKey: 'entityId', as: 'types' }); Entity.User = Entity.hasMany(models.User, { foreignKey: 'entityId' }); Entity.EventsReservations = Entity.hasMany(models.EventReservation, { foreignKey: 'entityId', as: 'reservations' }); }; return Entity; };