// // CumulatedResults.swift // TournamentStats // // Created by Laurent Morvillier on 03/06/2019. // Copyright © 2019 Stax River. All rights reserved. // import Foundation class CumulatedResults : HTMLRepresentable, ColumnRepresentable { enum Fields : String, CaseIterable { case name = "Name" case earnings = "Total Earnings" case cashes = "Cashes" } var player: Player var total: Double = 0.0 var numberOfCashes: Int = 0 var results: [Result] = [] var winsCount: Int = 0 init(player: Player, average: Bool = false) { self.player = player for result in player.results { self.add(result: result) } if average { self.total = self.total / Double(self.numberOfCashes) } } func add(result: Result) { self.total += result.earnings self.numberOfCashes += 1 self.results.append(result) if result.rank == 1 { self.winsCount += 1 } } static func headers() -> [String] { return Fields.allCases.map { $0.rawValue } } func colums() -> [String] { return [self.player.formattedName, self.total.currencyFormatted, "\(self.numberOfCashes)"] } // static func htmlHeaders() -> String { // var strings: [String] = [] // strings.append("Name") //// strings.append("Places (Year)") // strings.append("Total Earnings") // strings.append("Cashes") // let all = strings.joined(separator: "") // return "\(all)" // } // // func html() -> String { // var strings: [String] = [] // strings.append(self.player.formattedName) //// strings.append(self.results.map { "\($0.rank.rankFormatted) (\($0.tournaments.first?.date.year ?? ""))" }.joined(separator: ", ")) // strings.append(self.total.currencyFormatted) // strings.append("\(self.numberOfCashes)") // let all = strings.joined(separator: "") // return "\(all)" // } }