New features

This commit is contained in:
Håkon Størdal 2025-09-04 21:38:29 +02:00
parent 8981dc9615
commit 49a4ab05b3

View file

@ -95,89 +95,6 @@ export const db = {
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column()
`);
// Generate test data for August 2024
await this.generateAugustTestData();
},
// Generate comprehensive test data for August 2024
async generateAugustTestData() {
const year = 2025;
const month = 8; // August
const daysInAugust = 31;
console.log('Generating test data for August 2024...');
for (let day = 1; day <= daysInAugust; day++) {
const date = new Date(year, month - 1, day); // month is 0-indexed
const dateStr = date.toISOString().split('T')[0];
// Generate realistic but varied exercise data
// Some days will be rest days (random 20% chance)
const isRestDay = Math.random() < 0.2;
let pushups = 0;
let situps = 0;
let plankTimeSeconds = 0;
let runDistanceKm = 0;
let hangups = 0;
if (!isRestDay) {
// Pushups: 10-50 range with some progression over the month
const progressionBonus = Math.floor(day / 3); // Slight improvement over time
pushups = Math.floor(Math.random() * 40) + 10 + progressionBonus;
// Situps: 15-60 range
situps = Math.floor(Math.random() * 45) + 15 + progressionBonus;
// Plank: 30-180 seconds
plankTimeSeconds = Math.floor(Math.random() * 150) + 30;
// Running: 0-8km, not every day (60% chance)
if (Math.random() < 0.6) {
runDistanceKm = Math.round((Math.random() * 7 + 1) * 100) / 100; // 1-8km with 2 decimal places
}
// Hangups: 3-20 range
hangups = Math.floor(Math.random() * 18) + 3;
// Weekend bonus (slightly higher values on weekends)
const dayOfWeek = date.getDay();
if (dayOfWeek === 0 || dayOfWeek === 6) {
// Sunday or Saturday
pushups = Math.floor(pushups * 1.2);
situps = Math.floor(situps * 1.2);
plankTimeSeconds = Math.floor(plankTimeSeconds * 1.1);
hangups = Math.floor(hangups * 1.1);
}
}
// Insert the data, using ON CONFLICT to avoid duplicates
try {
await this.query(
`
INSERT INTO daily_exercises (date, pushups, situps, plank_time_seconds, run_distance_km, hangups)
VALUES ($1, $2, $3, $4, $5, $6)
ON CONFLICT (date) DO UPDATE SET
pushups = EXCLUDED.pushups,
situps = EXCLUDED.situps,
plank_time_seconds = EXCLUDED.plank_time_seconds,
run_distance_km = EXCLUDED.run_distance_km,
hangups = EXCLUDED.hangups,
updated_at = CURRENT_TIMESTAMP
`,
[dateStr, pushups, situps, plankTimeSeconds, runDistanceKm, hangups]
);
console.log(
`Added data for ${dateStr}: pushups=${pushups}, situps=${situps}, plank=${plankTimeSeconds}s, run=${runDistanceKm}km, hangups=${hangups}`
);
} catch (error) {
console.error(`Failed to insert data for ${dateStr}:`, error);
}
}
console.log('August 2024 test data generation completed!');
},
// Close all connections