| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package game
- import upickle.default._
- case class Team(
- id: Int,
- abbreviation: String,
- city: String,
- conference: String,
- division: String,
- full_name: String,
- name: String
- )
- object Team {
- implicit val teamRW: ReadWriter[Team] = macroRW[Team]
- }
- case class GameData(
- id: Int,
- home_team: Team,
- visitor_team: Team,
- home_team_score: Int,
- visitor_team_score: Int,
- period: Int,
- postseason: Boolean,
- season: Int,
- status: String,
- date: String
- )
- 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()))
- }
- }
|