import Foundation enum Analytics { static func track(_ event: String, _ properties: [String: Any] = [:]) { Task.detached { do { let token = try await MarksAuth.validToken() guard let url = URL(string: MarksAuth.baseURL + "/v1/marks/events") else { return } var request = URLRequest(url: url) request.httpMethod = "POST" request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") request.setValue("application/json", forHTTPHeaderField: "Content-Type") var body: [String: Any] = ["event": event] if !properties.isEmpty { body["properties"] = properties } request.httpBody = try JSONSerialization.data(withJSONObject: body) let (_, response) = try await URLSession.shared.data(for: request) let status = (response as? HTTPURLResponse)?.statusCode ?? 0 if status < 200 || status > 299 { print("[Analytics] \(event) → HTTP \(status)") } } catch { print("[Analytics] \(event) failed: \(error.localizedDescription)") } } } }