import { Injectable } from '@nestjs/common'; import { LearningActivityRepository } from './learning-activity.repository'; @Injectable() export class LearningActivityService { constructor(private readonly repository: LearningActivityRepository) {} async getHeatmap(userId: string) { const activities = await this.repository.findAll(userId); const heatmap: Record = {}; for (const a of activities) { const dateStr = a.activityDate instanceof Date ? a.activityDate.toISOString().split('T')[0] : String(a.activityDate).split('T')[0]; heatmap[dateStr] = a.durationSeconds; } return heatmap; } async getSummary(userId: string) { const activities = await this.repository.findAll(userId); const totalMinutes = Math.round( activities.reduce((s, a) => s + a.durationSeconds, 0) / 60, ); const totalCards = activities.reduce((s, a) => s + a.reviewCount, 0); const activeDays = activities.filter((a) => a.durationSeconds > 0).length; const dailyAverage = activeDays > 0 ? Math.round(totalMinutes / activeDays) : 0; return { totalMinutes, totalCardsReviewed: totalCards, activeDays, dailyAverage }; } }