318 lines
6.7 KiB
JavaScript
318 lines
6.7 KiB
JavaScript
const db = require('../models');
|
|
const Users = db.users;
|
|
|
|
const Games = db.games;
|
|
|
|
const ProgressReports = db.progress_reports;
|
|
|
|
const GamesData = [
|
|
{
|
|
date_played: new Date('2023-10-01T14:30:00Z'),
|
|
|
|
result: 'win',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
score: 100,
|
|
},
|
|
|
|
{
|
|
date_played: new Date('2023-10-02T15:00:00Z'),
|
|
|
|
result: 'win',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
score: 85,
|
|
},
|
|
|
|
{
|
|
date_played: new Date('2023-10-03T16:00:00Z'),
|
|
|
|
result: 'win',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
score: 95,
|
|
},
|
|
|
|
{
|
|
date_played: new Date('2023-10-04T17:00:00Z'),
|
|
|
|
result: 'win',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
score: 70,
|
|
},
|
|
|
|
{
|
|
date_played: new Date('2023-10-05T18:00:00Z'),
|
|
|
|
result: 'loss',
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
// type code here for "relation_one" field
|
|
|
|
score: 110,
|
|
},
|
|
];
|
|
|
|
const ProgressReportsData = [
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
total_wins: 3,
|
|
|
|
total_losses: 2,
|
|
|
|
win_rate: 60,
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
total_wins: 2,
|
|
|
|
total_losses: 3,
|
|
|
|
win_rate: 40,
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
total_wins: 0,
|
|
|
|
total_losses: 0,
|
|
|
|
win_rate: 0,
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
total_wins: 0,
|
|
|
|
total_losses: 0,
|
|
|
|
win_rate: 0,
|
|
},
|
|
|
|
{
|
|
// type code here for "relation_one" field
|
|
|
|
total_wins: 0,
|
|
|
|
total_losses: 0,
|
|
|
|
win_rate: 0,
|
|
},
|
|
];
|
|
|
|
// Similar logic for "relation_many"
|
|
|
|
async function associateGameWithPlayer() {
|
|
const relatedPlayer0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game0 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Game0?.setPlayer) {
|
|
await Game0.setPlayer(relatedPlayer0);
|
|
}
|
|
|
|
const relatedPlayer1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game1 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Game1?.setPlayer) {
|
|
await Game1.setPlayer(relatedPlayer1);
|
|
}
|
|
|
|
const relatedPlayer2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game2 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Game2?.setPlayer) {
|
|
await Game2.setPlayer(relatedPlayer2);
|
|
}
|
|
|
|
const relatedPlayer3 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game3 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 3,
|
|
});
|
|
if (Game3?.setPlayer) {
|
|
await Game3.setPlayer(relatedPlayer3);
|
|
}
|
|
|
|
const relatedPlayer4 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game4 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 4,
|
|
});
|
|
if (Game4?.setPlayer) {
|
|
await Game4.setPlayer(relatedPlayer4);
|
|
}
|
|
}
|
|
|
|
async function associateGameWithOpponent() {
|
|
const relatedOpponent0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game0 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (Game0?.setOpponent) {
|
|
await Game0.setOpponent(relatedOpponent0);
|
|
}
|
|
|
|
const relatedOpponent1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game1 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (Game1?.setOpponent) {
|
|
await Game1.setOpponent(relatedOpponent1);
|
|
}
|
|
|
|
const relatedOpponent2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game2 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (Game2?.setOpponent) {
|
|
await Game2.setOpponent(relatedOpponent2);
|
|
}
|
|
|
|
const relatedOpponent3 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game3 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 3,
|
|
});
|
|
if (Game3?.setOpponent) {
|
|
await Game3.setOpponent(relatedOpponent3);
|
|
}
|
|
|
|
const relatedOpponent4 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const Game4 = await Games.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 4,
|
|
});
|
|
if (Game4?.setOpponent) {
|
|
await Game4.setOpponent(relatedOpponent4);
|
|
}
|
|
}
|
|
|
|
async function associateProgressReportWithPlayer() {
|
|
const relatedPlayer0 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const ProgressReport0 = await ProgressReports.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 0,
|
|
});
|
|
if (ProgressReport0?.setPlayer) {
|
|
await ProgressReport0.setPlayer(relatedPlayer0);
|
|
}
|
|
|
|
const relatedPlayer1 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const ProgressReport1 = await ProgressReports.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 1,
|
|
});
|
|
if (ProgressReport1?.setPlayer) {
|
|
await ProgressReport1.setPlayer(relatedPlayer1);
|
|
}
|
|
|
|
const relatedPlayer2 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const ProgressReport2 = await ProgressReports.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 2,
|
|
});
|
|
if (ProgressReport2?.setPlayer) {
|
|
await ProgressReport2.setPlayer(relatedPlayer2);
|
|
}
|
|
|
|
const relatedPlayer3 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const ProgressReport3 = await ProgressReports.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 3,
|
|
});
|
|
if (ProgressReport3?.setPlayer) {
|
|
await ProgressReport3.setPlayer(relatedPlayer3);
|
|
}
|
|
|
|
const relatedPlayer4 = await Users.findOne({
|
|
offset: Math.floor(Math.random() * (await Users.count())),
|
|
});
|
|
const ProgressReport4 = await ProgressReports.findOne({
|
|
order: [['id', 'ASC']],
|
|
offset: 4,
|
|
});
|
|
if (ProgressReport4?.setPlayer) {
|
|
await ProgressReport4.setPlayer(relatedPlayer4);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
await Games.bulkCreate(GamesData);
|
|
|
|
await ProgressReports.bulkCreate(ProgressReportsData);
|
|
|
|
await Promise.all([
|
|
// Similar logic for "relation_many"
|
|
|
|
await associateGameWithPlayer(),
|
|
|
|
await associateGameWithOpponent(),
|
|
|
|
await associateProgressReportWithPlayer(),
|
|
]);
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.bulkDelete('games', null, {});
|
|
|
|
await queryInterface.bulkDelete('progress_reports', null, {});
|
|
},
|
|
};
|