Untitled
import { DataTypes, Model, InferAttributes, InferCreationAttributes, CreationOptional, } from 'sequelize'; import db from '.'; import Teams from './TeamModesl'; class Matches extends Model<InferAttributes<Matches>, InferCreationAttributes<Matches>> { id!: CreationOptional<number>; homeTeamId!: number; homeTeamGoals!: number; awayTeamId!: number; awayTeamGoals!: number; inProgress!: boolean; homeTeam?: Teams; awayTeam?: Teams; } Matches.init({ id: { type: DataTypes.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true, }, homeTeamId: { type: DataTypes.INTEGER, allowNull: false, field: 'home_team_id', }, homeTeamGoals: { type: DataTypes.INTEGER, allowNull: false, field: 'home_team_goals', }, awayTeamId: { type: DataTypes.DATE, allowNull: false, field: 'away_team_id', }, awayTeamGoals: { type: DataTypes.STRING, allowNull: false, field: 'away_team_goals', }, inProgress: { type: DataTypes.BOOLEAN, allowNull: false, field: 'in_progress', }, }, { sequelize: db, modelName: 'matches', timestamps: false, underscored: true, }); Teams.hasMany(Matches, { foreignKey: 'awayTeamId', as: 'awayMatches' }); Teams.hasMany(Matches, { foreignKey: 'homeTeamId', as: 'homeMatches' }); Matches.belongsTo(Teams, { foreignKey: 'awayTeamId', as: 'awayTeam' }); Matches.belongsTo(Teams, { foreignKey: 'homeTeamId', as: 'homeTeam' }); export default Matches;
Leave a Comment