import Foundation @MainActor final class ActivityService { static let shared = ActivityService() private let client = APIClient.shared func summary() async throws -> ActivitySummary { try await client.request("/activity/summary") } func heatmap() async throws -> [String: Int] { try await client.request("/activity/heatmap") } func trend(days: Int = 7) async throws -> [ActivityTrend] { try await client.request("/activity/trend?days=\(days)") } func streak() async throws -> ActivityStreak { let offset = TimeZone.current.secondsFromGMT() / 60 return try await client.request("/activity/streak?tzOffset=\(offset)") } func recommendations() async throws -> [ActivityRecommendation] { try await client.request("/activity/recommendations") } }