diff --git a/MealMood/Services/AnalyticsService.swift b/MealMood/Services/AnalyticsService.swift index dc407c8..08248a3 100644 --- a/MealMood/Services/AnalyticsService.swift +++ b/MealMood/Services/AnalyticsService.swift @@ -29,6 +29,12 @@ enum AnalyticsEvent { static let iCloudSyncToggled = "icloud_sync_toggled" static let notificationsToggled = "notifications_toggled" static let languageChanged = "language_changed" + + // Stats + static let statsViewed = "stats_viewed" + + // Feedback loop + static let weekRated = "week_rated" } enum AnalyticsService { @@ -103,4 +109,13 @@ enum AnalyticsService { static func logNotificationsToggled(enabled: Bool) { logEvent(AnalyticsEvent.notificationsToggled, parameters: ["enabled": enabled]) } + + static func logStatsViewed() { + logEvent(AnalyticsEvent.statsViewed) + } + + static func logWeekRated(rating: Int) { + let value = rating == 1 ? "liked" : rating == -1 ? "disliked" : "cleared" + logEvent(AnalyticsEvent.weekRated, parameters: ["rating": value]) + } } diff --git a/MealMood/ViewModels/HomeViewModel.swift b/MealMood/ViewModels/HomeViewModel.swift index 04767b7..985429d 100644 --- a/MealMood/ViewModels/HomeViewModel.swift +++ b/MealMood/ViewModels/HomeViewModel.swift @@ -168,6 +168,7 @@ final class HomeViewModel: ObservableObject { func rateWeek(plan: WeekPlan, rating: Int) { plan.userRating = rating plan.updatedAt = Date() + AnalyticsService.logWeekRated(rating: rating) HapticManager.shared.impact(style: .light) } diff --git a/MealMood/Views/Stats/StatsView.swift b/MealMood/Views/Stats/StatsView.swift index 3aad906..e00ce85 100644 --- a/MealMood/Views/Stats/StatsView.swift +++ b/MealMood/Views/Stats/StatsView.swift @@ -20,6 +20,7 @@ struct StatsView: View { .padding(.vertical, 20) } .background(Color.mealMoodBackground.ignoresSafeArea()) + .onAppear { AnalyticsService.logStatsViewed() } .navigationTitle("stats_title") .navigationBarTitleDisplayMode(.inline) .toolbar {