<commit_before>package lila.coach

import chess.{ Color, Status }
import lila.rating.PerfType
import org.joda.time.DateTime
import scalaz.NonEmptyList

case class Entry(
  userId: String,
  gameId: String,
  color: Color,
  perf: PerfType,
  eco: Ecopening,
  opponent: Opponent,
  cpl: Grouped[Numbers],
  movetime: Grouped[Numbers],
  luck: Grouped[Ratio],
  opportunism: Grouped[Ratio],
  nbMoves: Grouped[Int],
  result: Result,
  status: Status,
  endPhase: Phase,
  ratingDiff: Int,
  analysed: Boolean,
  date: DateTime)

case class Opponent(rating: Int, strength: RelativeStrength)

sealed trait Result
object Result {
  object Win extends Result
  object Draw extends Result
  object Loss extends Result
}

sealed trait Phase
object Phase {
  object Opening extends Phase
  object Middle extends Phase
  object End extends Phase
}

sealed trait RelativeStrength
object RelativeStrength {
  object MuchWeaker extends RelativeStrength
  object Weaker extends RelativeStrength<commit_msg>refine coach entry<commit_after>package lila.coach

import chess.{ Color, Status }
import lila.rating.PerfType
import org.joda.time.DateTime
import scalaz.NonEmptyList

case class Entry(
  userId: String,
  gameId: String,
  color: Color,
  perf: PerfType,
  eco: Ecopening,
  opponent: Opponent,
  cpl: Option[Grouped[Numbers]],
  movetime: Grouped[Numbers],
  luck: Option[Grouped[Ratio]],
  opportunism: Option[Grouped[Ratio]],
  nbMoves: Grouped[Int],
  result: Result,
  status: Status,
  endPhase: Phase,
  ratingDiff: Int,
  date: DateTime)

case class Opponent(rating: Int, strength: RelativeStrength)

sealed trait Result
object Result {
  object Win extends Result
  object Draw extends Result
  object Loss extends Result
}

sealed trait Phase
object Phase {
  object Opening extends Phase
  object Middle extends Phase
  object End extends Phase
}

sealed trait RelativeStrength
object RelativeStrength {
  object MuchWeaker extends RelativeStrength
  object Weaker extends RelativeStrength
{'fraction_non_alphanumeric': 0.07114228456913828, 'fraction_numerical': 0.0, 'mean_word_length': 4.8563049853372435, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2744589', 'n_tokens_mistral': 637, 'n_tokens_neox': 611, 'n_words': 203}