const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'sqlite', logging: false, storage: 'database.sqlite', }); const Users = require('./models/users.js')(sequelize, Sequelize.DataTypes); const Games = require('./models/games.js')(sequelize, Sequelize.DataTypes); const LoggedGames = require('./models/beatenGames.js')(sequelize, Sequelize.DataTypes); const Changelog = require('./models/changelog.js')(sequelize, Sequelize.DataTypes); // Create userId foreignKey in LoggedGames Users.hasMany(LoggedGames); LoggedGames.belongsTo(Users); // Create gameId foreignKey in LoggedGames Games.hasMany(LoggedGames); LoggedGames.belongsTo(Games); // Create userId foreignKey in Changelog Users.hasMany(Changelog); Changelog.belongsTo(Users); // Create gameId foreignKey in Changelog Games.hasMany(Changelog); Changelog.belongsTo(Games); Reflect.defineProperty(Users.prototype, 'addUser', { value: async function addUser(userData) { const user = await Users.findOne({ where: { user_id: userData.id }, }); if (!user) { return Users.create({ user_id: userData.discord_id, username: userData.username }); } }, }); Reflect.defineProperty(Users.prototype, 'getUser', { value: function getUser(userData) { return Users.findAll({ where: { user_id: userData.discord_id }, }); }, }); sequelize.sync({ alter: true }) .catch((err) => { console.log(err); }); module.exports = { sequelize, Users, Games, LoggedGames, Changelog };