Newer
Older
gitbucket_jkp / src / main / scala / model / Labels.scala
@shimamoto shimamoto on 23 Jun 2014 1 KB (refs #341) Migrate service package.
package model

trait LabelComponent extends TemplateComponent { self: Profile =>
  import profile.simple._

  lazy val Labels = TableQuery[Labels]

  class Labels(tag: Tag) extends Table[Label](tag, "LABEL") with LabelTemplate {
    override val labelId = column[Int]("LABEL_ID", O AutoInc)
    val labelName = column[String]("LABEL_NAME")
    val color = column[String]("COLOR")
    def * = (userName, repositoryName, labelId, labelName, color) <> (Label.tupled, Label.unapply)

    def byPrimaryKey(owner: String, repository: String, labelId: Int) = byLabel(owner, repository, labelId)
    def byPrimaryKey(userName: Column[String], repositoryName: Column[String], labelId: Column[Int]) = byLabel(userName, repositoryName, labelId)
  }

  case class Label(
    userName: String,
    repositoryName: String,
    labelId: Int = 0,
    labelName: String,
    color: String){

    val fontColor = {
      val r = color.substring(0, 2)
      val g = color.substring(2, 4)
      val b = color.substring(4, 6)

      if(Integer.parseInt(r, 16) + Integer.parseInt(g, 16) + Integer.parseInt(b, 16) > 408){
        "000000"
      } else {
        "FFFFFF"
      }
    }
  }
}