aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/models/Genre.scala
blob: b5fc6c4d01ec2414b0f56ebb0cd57dd504bc1984 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package reading.models

import enumeratum._

sealed trait Genre extends EnumEntry with Ordered[Genre] {
  import Genre._

  def compare(that: Genre): Int = {
    values.indexOf(that) - values.indexOf(this)
  }

  def prettyPrint(): String = this match {
    case JournalIntime => "journal intime"
    case RomanHistorique => "roman historique"
    case Policier => "policier"
    case Fantastique => "fantastique"
    case Fantasy => "fantasy"
    case Merveilleux => "merveilleux"
    case SF => "science fiction"
    case BD => "bande dessinée"
    case RomanAventure => "roman d'aventure"
    case Comique => "comique"
    case Dystopie => "dystopie"
    case Uchronie => "uchronie"
    case Manga => "manga"
    case Thriller => "thriller"
    case RomanEpistolaire => "roman épistolaire"
  }
}

object Genre extends Enum[Genre] {
  val values = findValues

  case object JournalIntime extends Genre
  case object RomanHistorique extends Genre
  case object Policier extends Genre
  case object Fantastique extends Genre
  case object Fantasy extends Genre
  case object Merveilleux extends Genre
  case object SF extends Genre
  case object BD extends Genre
  case object RomanAventure extends Genre
  case object Comique extends Genre
  case object Thriller extends Genre
  case object Dystopie extends Genre
  case object Uchronie extends Genre
  case object Manga extends Genre
  case object RomanEpistolaire extends Genre
}