package controllers

import controllers.WarningSeverity.WarningSeverity
import play.twirl.api.Html

object WarningSeverity extends Enumeration {
  type WarningSeverity = Value
  // Order is important
  val Info = Value("info")
  val Warning = Value("warning")
  val Error = Value("error")
}

sealed abstract class Warning {
  def optimize: Warning
  def html: Html
  def id: String
  def allowSnoozes = true
  def severity: WarningSeverity
}

final case class IdentifiedWarning(id: String, html: Html, severity: WarningSeverity) extends Warning{
  def optimize = copy(html = Html(html.body))
}