Untitled
unknown
plain_text
2 years ago
1.5 kB
18
Indexable
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;
Editor is loading...
Leave a Comment