mirror of
https://github.com/ysoftdevs/odc-analyzer.git
synced 2026-01-11 14:30:50 +01:00
44 lines
1.3 KiB
Scala
44 lines
1.3 KiB
Scala
package models
|
|
|
|
import models.jodaSupport._
|
|
import models.profile.api._
|
|
import org.joda.time.LocalDate
|
|
import play.api.data.Form
|
|
import slick.lifted.Tag
|
|
|
|
case class Snooze(until: LocalDate, snoozedObjectId: String, reason: String)
|
|
|
|
case class ObjectSnooze(until: LocalDate, reason: String){
|
|
def toSnooze(objectId: String) = Snooze(until, objectId, reason)
|
|
}
|
|
|
|
class Snoozes(tag: Tag) extends Table[(Int, Snooze)](tag, "snooze") {
|
|
def id = column[Int]("id", O.PrimaryKey)
|
|
def until = column[LocalDate]("until")
|
|
def snoozedObjectId = column[String]("snoozed_object_identifier")
|
|
def reason = column[String]("reason")
|
|
def base = (until, snoozedObjectId, reason) <> (Snooze.tupled, Snooze.unapply)
|
|
def * = (id, base)
|
|
}
|
|
|
|
case class SnoozeInfo(form: Form[ObjectSnooze], snoozes: Seq[(Int, Snooze)]){
|
|
def shouldCollapse(default: Boolean) = {
|
|
shouldExpandForm match {
|
|
case true => false
|
|
case false =>
|
|
isSnoozed match {
|
|
case true => true
|
|
case false => default
|
|
}
|
|
}
|
|
}
|
|
|
|
def isSnoozed = snoozes.nonEmpty
|
|
|
|
def shouldExpandForm = form.hasErrors || form.hasGlobalErrors
|
|
|
|
def adjustForm(f: Form[ObjectSnooze] => Form[ObjectSnooze]): SnoozeInfo = copy(form = f(form))
|
|
|
|
def adjustSnoozes(f: Seq[(Int, Snooze)] => Seq[(Int, Snooze)]): SnoozeInfo = copy(snoozes = f(snoozes))
|
|
|
|
} |