// // ReportGenerator.swift // TournamentStats // // Created by Laurent Morvillier on 03/06/2019. // Copyright © 2019 Stax River. All rights reserved. // import Foundation import RealmSwift import Realm class ReportGenerator { static private let winnersDirectoryName: String = "reports/winners" static func createDirectories() { // Create winners directory if necessary if let docDirectory = FileUtils.documentsDirectoryPath { let winnersDirectory = docDirectory.appendingPathComponent(winnersDirectoryName) var isDir: ObjCBool = true if !FileManager.default.fileExists(atPath: winnersDirectory.absoluteString, isDirectory: &isDir) { do { try FileManager.default.createDirectory(at: winnersDirectory, withIntermediateDirectories: true, attributes: nil) } catch { print(error) } } } } static func create() { self.createDirectories() let realm = try! Realm() let winners = Queries.biggestWinners(realm: realm) winners.writeHTML(fileName: "reports/earningsLeaderboard.html") let mostCashes = Queries.mostCashes(realm: realm) mostCashes.writeHTML(fileName: "reports/mostCashes.html", limit: 25) let tournamentWinners = Queries.allWinners(realm: realm) tournamentWinners.writeHTML(fileName: "reports/allWinners.html", limit: 500) let tourniesDate = realm.objects(Tournament.self).distinct(by: ["date"]) // Individual days for tourny in tourniesDate { let date = tourny.date let fileDate = Formatter.fileDate.string(from: date) let dayWinners = Queries.allWinners(realm: realm, date: date) dayWinners.writeHTML(fileName: "reports/winners/bracelets_\(fileDate).html") let notableCashes = Queries.notableCashes(realm: realm, date: date) notableCashes.writeHTML(fileName: "reports/winners/notables_\(fileDate).html") } } }