|
|
@@ -30,3 +30,65 @@ case class GameData(
|
|
|
object GameData {
|
|
|
implicit val gameDataRW: ReadWriter[GameData] = macroRW[GameData]
|
|
|
}
|
|
|
+
|
|
|
+case class Player(
|
|
|
+ id: Int,
|
|
|
+ first_name: String,
|
|
|
+ last_name: String,
|
|
|
+ position: String,
|
|
|
+ team_id: Int
|
|
|
+)
|
|
|
+object Player {
|
|
|
+ implicit val playerRW: ReadWriter[Player] = macroRW[Player]
|
|
|
+}
|
|
|
+
|
|
|
+case class PlayerGameStats(
|
|
|
+ id: Int,
|
|
|
+ ast: Int,
|
|
|
+ blk: Int,
|
|
|
+ dreb: Int,
|
|
|
+ fg3_pct: Float,
|
|
|
+ fg3a: Int,
|
|
|
+ fg3m: Int,
|
|
|
+ fg_pct: Float,
|
|
|
+ fga: Int,
|
|
|
+ fgm: Int,
|
|
|
+ ft_pct: Float,
|
|
|
+ fta: Int,
|
|
|
+ ftm: Int,
|
|
|
+ min: String, // "36:49"
|
|
|
+ oreb: Int,
|
|
|
+ pf: Int,
|
|
|
+ pts: Int,
|
|
|
+ reb: Int,
|
|
|
+ stl: Int,
|
|
|
+ turnover: Int,
|
|
|
+ player: Player,
|
|
|
+ team: Map[String, String],
|
|
|
+ game: Map[String, String]
|
|
|
+) {
|
|
|
+ val gameId = game("id").toInt
|
|
|
+ val teamId = team("id").toInt
|
|
|
+
|
|
|
+ def as_json_value(): ujson.Value = {
|
|
|
+ val value = upickle.default.writeJs[PlayerGameStats](this)
|
|
|
+ value.obj.put("game_id", gameId)
|
|
|
+ value.obj.put("team_id", teamId)
|
|
|
+ value.obj.put("player_id", player.id)
|
|
|
+ value.obj.put("player_first_name", player.first_name)
|
|
|
+ value.obj.put("player_last_name", player.last_name)
|
|
|
+ value.obj.put("player_position", player.position)
|
|
|
+ value.obj.put("player_team_id", player.team_id)
|
|
|
+
|
|
|
+ value
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+object PlayerGameStats {
|
|
|
+ implicit val playerGameStatsRW: ReadWriter[PlayerGameStats] =
|
|
|
+ macroRW[PlayerGameStats]
|
|
|
+
|
|
|
+ def as_json_value(stats_list: List[PlayerGameStats]): ujson.Value = {
|
|
|
+ upickle.default.writeJs(stats_list.map(_.as_json_value()))
|
|
|
+ }
|
|
|
+}
|