mirror of
https://github.com/farcasclaudiu/learn-build-apps-copilot-agent.git
synced 2026-06-29 13:01:57 +03:00
feat: implement backend API with models and seed data for OctoFit application
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ActivityModel = void 0;
|
||||
const mongoose_1 = require("mongoose");
|
||||
const activitySchema = new mongoose_1.Schema({
|
||||
user: { type: mongoose_1.Types.ObjectId, ref: "User", required: true },
|
||||
team: { type: mongoose_1.Types.ObjectId, ref: "Team", required: true },
|
||||
type: { type: String, required: true, trim: true },
|
||||
durationMinutes: { type: Number, required: true, min: 1 },
|
||||
caloriesBurned: { type: Number, required: true, min: 1 },
|
||||
completedAt: { type: Date, required: true },
|
||||
}, {
|
||||
timestamps: true,
|
||||
});
|
||||
exports.ActivityModel = (0, mongoose_1.model)("Activity", activitySchema);
|
||||
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LeaderboardModel = void 0;
|
||||
const mongoose_1 = require("mongoose");
|
||||
const leaderboardEntrySchema = new mongoose_1.Schema({
|
||||
user: { type: mongoose_1.Types.ObjectId, ref: "User", required: true },
|
||||
team: { type: mongoose_1.Types.ObjectId, ref: "Team", required: true },
|
||||
points: { type: Number, required: true, min: 0 },
|
||||
rank: { type: Number, required: true, min: 1 },
|
||||
}, { _id: false });
|
||||
const leaderboardSchema = new mongoose_1.Schema({
|
||||
period: { type: String, required: true, trim: true },
|
||||
generatedAt: { type: Date, required: true },
|
||||
entries: { type: [leaderboardEntrySchema], required: true },
|
||||
}, {
|
||||
timestamps: true,
|
||||
});
|
||||
exports.LeaderboardModel = (0, mongoose_1.model)("Leaderboard", leaderboardSchema);
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TeamModel = void 0;
|
||||
const mongoose_1 = require("mongoose");
|
||||
const teamSchema = new mongoose_1.Schema({
|
||||
name: { type: String, required: true, trim: true },
|
||||
city: { type: String, required: true, trim: true },
|
||||
captain: { type: mongoose_1.Types.ObjectId, ref: "User", required: true },
|
||||
members: [{ type: mongoose_1.Types.ObjectId, ref: "User", required: true }],
|
||||
}, {
|
||||
timestamps: true,
|
||||
});
|
||||
exports.TeamModel = (0, mongoose_1.model)("Team", teamSchema);
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.UserModel = void 0;
|
||||
const mongoose_1 = require("mongoose");
|
||||
const userSchema = new mongoose_1.Schema({
|
||||
username: { type: String, required: true, trim: true },
|
||||
email: { type: String, required: true, unique: true, lowercase: true, trim: true },
|
||||
age: { type: Number, required: true, min: 13 },
|
||||
heightCm: { type: Number, required: true, min: 100 },
|
||||
weightKg: { type: Number, required: true, min: 30 },
|
||||
fitnessGoal: { type: String, required: true, trim: true },
|
||||
}, {
|
||||
timestamps: true,
|
||||
});
|
||||
exports.UserModel = (0, mongoose_1.model)("User", userSchema);
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.WorkoutModel = void 0;
|
||||
const mongoose_1 = require("mongoose");
|
||||
const workoutSchema = new mongoose_1.Schema({
|
||||
title: { type: String, required: true, trim: true },
|
||||
category: { type: String, required: true, trim: true },
|
||||
difficulty: { type: String, required: true, trim: true },
|
||||
durationMinutes: { type: Number, required: true, min: 1 },
|
||||
equipment: { type: [String], required: true },
|
||||
targetMuscles: { type: [String], required: true },
|
||||
}, {
|
||||
timestamps: true,
|
||||
});
|
||||
exports.WorkoutModel = (0, mongoose_1.model)("Workout", workoutSchema);
|
||||
Reference in New Issue
Block a user