diff options
author | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-10-20 12:56:34 +0700 |
---|---|---|
committer | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-10-20 12:56:34 +0700 |
commit | 081f6c2ec58268a3b84aa69d622b28562a8dc4ac (patch) | |
tree | b3d2181c1ac696ba53ecc54df0b73b3535d23671 /src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala | |
parent | f3afdc358e52e2399bb4b089d26e3e3521570872 (diff) | |
parent | 9ca0cae09bc880ce083c2a49ae3804889cc9d4c4 (diff) | |
download | rest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.tar.gz rest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.tar.bz2 rest-query-081f6c2ec58268a3b84aa69d622b28562a8dc4ac.zip |
Merge branch 'master' into entity-list-responses
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala index ac5feef..e734779 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/Trial.scala @@ -7,9 +7,41 @@ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils import xyz.driver.pdsuidomain.entities.Trial.Status -final case class StudyDesign(id: LongId[StudyDesign], name: String) +import scalaz.syntax.equal._ +import scalaz.Scalaz.stringInstance + +sealed trait StudyDesign { + val id: LongId[StudyDesign] + val name: String +} object StudyDesign { + + final case object Randomized extends StudyDesign { + val id: LongId[StudyDesign] = LongId[StudyDesign](1) + val name: String = "Randomized" + } + + final case object NonRandomized extends StudyDesign { + val id: LongId[StudyDesign] = LongId[StudyDesign](2) + val name: String = "Non-randomized" + } + + final case object SingleGroupAssignment extends StudyDesign { + val id: LongId[StudyDesign] = LongId[StudyDesign](3) + val name: String = "Single-group assignment" + } + + val All = Seq[StudyDesign]( + Randomized, + NonRandomized, + SingleGroupAssignment + ) + + def fromString(txt: String): Option[StudyDesign] = { + All.find(_.name === txt) + } + implicit def toPhiString(x: StudyDesign): PhiString = { import x._ phi"StudyDesign(id=$id, category=${Unsafe(name)})" |