bullpen/backend/models/player.model.js

60 lines
1.6 KiB
JavaScript

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;
};