const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Player extends Model { /** * Helper method for defining associations. * This method is not a part of the Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static associate(models) { Player.belongsTo(models.User, { foreignKey: "userId", as: "user" }); Player.belongsToMany(models.Team, { through: "PlayerTeams", foreignKey: 'playerId', otherKey: 'teamId', as: 'teams', }); Player.belongsToMany(models.Position, { through: "PlayerPositions", foreignKey: 'playerId', otherKey: 'positionId', as: 'positions', }) } } Player.init({ height: { type: DataTypes.FLOAT }, weight: { type: DataTypes.FLOAT }, gender: { type: DataTypes.ENUM('male', 'female', 'other'), allowNull: false }, bats: { type: DataTypes.ENUM('left', 'right', 'both'), }, throws: { type: DataTypes.ENUM('left', 'right'), }, jerseyNumber: { type: DataTypes.INTEGER, }, state: { type: DataTypes.ENUM('active', 'injured', 'inactive'), } }, { sequelize, modelName: 'Player', tableName: "Players" }); return Player; };