mirror of
https://github.com/farcasclaudiu/learn-build-apps-copilot-agent.git
synced 2026-06-22 07:01:37 +03:00
158 lines
5.7 KiB
JavaScript
158 lines
5.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const database_1 = require("../database");
|
|
const Activity_1 = require("../models/Activity");
|
|
const Leaderboard_1 = require("../models/Leaderboard");
|
|
const Team_1 = require("../models/Team");
|
|
const User_1 = require("../models/User");
|
|
const Workout_1 = require("../models/Workout");
|
|
const seed = async () => {
|
|
try {
|
|
await (0, database_1.connectDatabase)();
|
|
console.log("Seed the octofit_db database with test data");
|
|
await Promise.all([
|
|
Activity_1.ActivityModel.deleteMany({}),
|
|
Leaderboard_1.LeaderboardModel.deleteMany({}),
|
|
Team_1.TeamModel.deleteMany({}),
|
|
User_1.UserModel.deleteMany({}),
|
|
Workout_1.WorkoutModel.deleteMany({}),
|
|
]);
|
|
const users = await User_1.UserModel.insertMany([
|
|
{
|
|
username: "alex_runner",
|
|
email: "alex.runner@example.com",
|
|
age: 29,
|
|
heightCm: 178,
|
|
weightKg: 74,
|
|
fitnessGoal: "Half marathon in under 1h40",
|
|
},
|
|
{
|
|
username: "maya_lifter",
|
|
email: "maya.lifter@example.com",
|
|
age: 33,
|
|
heightCm: 165,
|
|
weightKg: 62,
|
|
fitnessGoal: "Increase deadlift max to 140kg",
|
|
},
|
|
{
|
|
username: "liam_hiker",
|
|
email: "liam.hiker@example.com",
|
|
age: 26,
|
|
heightCm: 182,
|
|
weightKg: 79,
|
|
fitnessGoal: "Improve endurance for alpine trekking",
|
|
},
|
|
{
|
|
username: "sofia_cycle",
|
|
email: "sofia.cycle@example.com",
|
|
age: 31,
|
|
heightCm: 170,
|
|
weightKg: 66,
|
|
fitnessGoal: "Ride a 100km gran fondo",
|
|
},
|
|
]);
|
|
const teams = await Team_1.TeamModel.insertMany([
|
|
{
|
|
name: "Pulse Pacers",
|
|
city: "Cluj-Napoca",
|
|
captain: users[0]._id,
|
|
members: [users[0]._id, users[2]._id],
|
|
},
|
|
{
|
|
name: "Iron Orbit",
|
|
city: "Bucharest",
|
|
captain: users[1]._id,
|
|
members: [users[1]._id, users[3]._id],
|
|
},
|
|
]);
|
|
await Workout_1.WorkoutModel.insertMany([
|
|
{
|
|
title: "Tempo Run 8K",
|
|
category: "Cardio",
|
|
difficulty: "Intermediate",
|
|
durationMinutes: 50,
|
|
equipment: ["Running shoes", "Sports watch"],
|
|
targetMuscles: ["Quadriceps", "Hamstrings", "Calves", "Core"],
|
|
},
|
|
{
|
|
title: "Barbell Strength Circuit",
|
|
category: "Strength",
|
|
difficulty: "Advanced",
|
|
durationMinutes: 60,
|
|
equipment: ["Barbell", "Weight plates", "Bench"],
|
|
targetMuscles: ["Glutes", "Back", "Chest", "Shoulders"],
|
|
},
|
|
{
|
|
title: "Mobility and Recovery Flow",
|
|
category: "Mobility",
|
|
difficulty: "Beginner",
|
|
durationMinutes: 30,
|
|
equipment: ["Yoga mat", "Resistance band"],
|
|
targetMuscles: ["Hips", "Lower back", "Shoulders"],
|
|
},
|
|
]);
|
|
await Activity_1.ActivityModel.insertMany([
|
|
{
|
|
user: users[0]._id,
|
|
team: teams[0]._id,
|
|
type: "Interval Run",
|
|
durationMinutes: 42,
|
|
caloriesBurned: 520,
|
|
completedAt: new Date("2026-06-18T06:40:00.000Z"),
|
|
},
|
|
{
|
|
user: users[1]._id,
|
|
team: teams[1]._id,
|
|
type: "Heavy Strength Session",
|
|
durationMinutes: 64,
|
|
caloriesBurned: 610,
|
|
completedAt: new Date("2026-06-18T18:20:00.000Z"),
|
|
},
|
|
{
|
|
user: users[2]._id,
|
|
team: teams[0]._id,
|
|
type: "Hill Hike",
|
|
durationMinutes: 95,
|
|
caloriesBurned: 780,
|
|
completedAt: new Date("2026-06-19T07:10:00.000Z"),
|
|
},
|
|
{
|
|
user: users[3]._id,
|
|
team: teams[1]._id,
|
|
type: "Road Cycling",
|
|
durationMinutes: 88,
|
|
caloriesBurned: 845,
|
|
completedAt: new Date("2026-06-19T16:05:00.000Z"),
|
|
},
|
|
]);
|
|
await Leaderboard_1.LeaderboardModel.insertMany([
|
|
{
|
|
period: "weekly-2026-W25",
|
|
generatedAt: new Date("2026-06-20T00:00:00.000Z"),
|
|
entries: [
|
|
{ user: users[3]._id, team: teams[1]._id, points: 1280, rank: 1 },
|
|
{ user: users[2]._id, team: teams[0]._id, points: 1225, rank: 2 },
|
|
{ user: users[1]._id, team: teams[1]._id, points: 1160, rank: 3 },
|
|
{ user: users[0]._id, team: teams[0]._id, points: 1095, rank: 4 },
|
|
],
|
|
},
|
|
]);
|
|
const counts = {
|
|
users: await User_1.UserModel.countDocuments(),
|
|
teams: await Team_1.TeamModel.countDocuments(),
|
|
activities: await Activity_1.ActivityModel.countDocuments(),
|
|
leaderboard: await Leaderboard_1.LeaderboardModel.countDocuments(),
|
|
workouts: await Workout_1.WorkoutModel.countDocuments(),
|
|
};
|
|
console.log("Seed complete", counts);
|
|
}
|
|
catch (error) {
|
|
console.error("Seed failed", error);
|
|
process.exitCode = 1;
|
|
}
|
|
finally {
|
|
await (0, database_1.disconnectDatabase)();
|
|
}
|
|
};
|
|
void seed();
|