bullpen/backend/models/index.js

62 lines
1.6 KiB
JavaScript

const config = require("../config/sqlite.config");
const Sequelize = require("sequelize");
const sequelize = new Sequelize({
dialect: config.dialect,
storage: config.storage,
logQueryParameters: config.logQueryParameters,
benchmark: config.benchmark
});
// const sequelize = new Sequelize(
// config.DB,
// config.USER,
// config.PASSWORD,
// {
// host: config.HOST,
// dialect: config.dialect,
// pool: {
// max: config.pool.max,
// min: config.pool.min,
// acquire: config.pool.acquire,
// idle: config.pool.idle
// }
// }
// );
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.user = require("../models/user.model.js")(sequelize);
db.role = require("../models/role.model.js")(sequelize);
db.pitchType = require("../models/pitchType.model.js")(sequelize);
db.pitch = require("../models/pitch.model.js")(sequelize);
db.bullpenSession = require("../models/bullpenSession.model.js")(sequelize);
db.refreshToken = require("../models/refreshToken.model.js")(sequelize);
db.role.belongsToMany(db.user, {
through: "UserRoles"
});
db.user.belongsToMany(db.role, {
through: "UserRoles"
});
db.refreshToken.belongsTo(db.user, {
foreignKey: 'userId', targetKey: 'id'
});
db.user.hasOne(db.refreshToken, {
foreignKey: 'userId', targetKey: 'id'
});
db.ROLES = ["user", "admin", "moderator"];
db.bullpenSession.hasMany(db.pitch);
db.bullpenSession.belongsTo(db.user, {
as: "pitcher"
});
db.pitch.belongsTo(db.bullpenSession);
db.pitch.belongsTo(db.pitchType);
module.exports = db;