const coreModel = require("./../core/models"); module.exports = (sequelize, DataTypes) => { const Movie = sequelize.define( "movie", { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, title: DataTypes.STRING, director_id: DataTypes.INTEGER, main_genre: DataTypes.STRING, status: DataTypes.INTEGER, review: DataTypes.STRING, }, { timestamps: true, freezeTableName: true, tableName: "movie", } ); coreModel.call(this, Movie); Movie.associate = function (models) { Movie.belongsTo(models.director, { foreignKey: "director_id", as: "director", constraints: false, }); Movie.hasMany(models.review, { foreignKey: "movie_id", as: "reviews", constraints: false, }); Movie.belongsToMany(models.actor, { through: models.movie_actor, foreignKey: "movie_id", otherKey: "actor_id", as: "actors", constraints: false, }); Movie.belongsToMany(models.genre, { through: models.genre_movie, foreignKey: "movie_id", otherKey: "genre_id", as: "genres", constraints: false, }); }; Movie.allowFields = function () { return ["id", "title", "director_id", "main_genre", "status", "review"]; }; return Movie; };