Files
cod-backend/Sources/App/Models/AllStats.swift
2020-06-16 16:51:19 -05:00

130 lines
2.7 KiB
Swift

//
// Stats.swift
// App
//
// Created by Michael Simard on 5/29/20.
//
import Foundation
import Fluent
import Vapor
struct DataPoint : Content {
var x:String
var y:Double
init(x:String, y:Double) {
self.x = x
self.y = y
}
}
final class AllStats: Content {
var overall:Stats
var byMonth: [MonthStats]
var highestWinLossRatio:String
var dataPoints:[DataPoint]
init( overall:Stats, byMonth:[MonthStats], highestWinLossRatio:String, dataPoints:[DataPoint]) {
self.overall = overall
self.byMonth = byMonth
self.highestWinLossRatio = highestWinLossRatio
self.dataPoints = dataPoints
}
}
final class MonthStats: Content {
var stats:Stats
var month:String
var year: String
init( month:Int, year:Int, stats:Stats) {
self.month = Utilities.monthToString(month: month)
self.year = String(year)
self.stats = stats
}
}
final class Stats: Content {
var winLossRatio:String
var totalWins:Int
var totalLosses:Int
init( winLoss:String, totalWins:Int, totalLosses:Int) {
self.winLossRatio = winLoss
self.totalWins = totalWins
self.totalLosses = totalLosses
}
}
final class AllDailyStats: Content {
var dailyStats : [DailyStats]
init(dailyStats:[DailyStats]) {
self.dailyStats = dailyStats
}
}
final class AllRollingStats: Content {
var cumulativeStats:[DailyStats]
}
final class DailyStats: Content {
var day: String
var month:String
var year: String
var cumulativeRatio:String
var stats:Stats
init(day:Int, month:Int, year:Int, stats:Stats, cumulativeRatio:String) {
self.day = String(day)
self.month = Utilities.monthToString(month: month)
self.year = String(year)
self.stats = stats
self.cumulativeRatio = cumulativeRatio
}
}
class Utilities {
class func monthToString(month:Int) -> String {
switch month {
case 1 :
return "January"
case 2:
return "February"
case 3:
return "March"
case 4:
return "April"
case 5:
return "May"
case 6:
return "June"
case 7:
return "July"
case 8:
return "August"
case 9:
return "September"
case 10:
return "October"
case 11:
return "November"
case 12:
return "December"
default:
return "error"
}
}
}