package model import scala.slick.driver.H2Driver.simple._ object Accounts extends Table[Account]("ACCOUNT") { def userName = column[String]("USER_NAME", O PrimaryKey) def mailAddress = column[String]("MAIL_ADDRESS") def password = column[String]("PASSWORD") def isAdmin = column[Boolean]("ADMINISTRATOR") def url = column[String]("URL") def registeredDate = column[java.sql.Timestamp]("REGISTERED_DATE") // TODO convert java.util.Date later def updatedDate = column[java.sql.Timestamp]("UPDATED_DATE") def lastLoginDate = column[java.sql.Timestamp]("LAST_LOGIN_DATE") def * = userName ~ mailAddress ~ password ~ isAdmin ~ url.? ~ registeredDate ~ updatedDate ~ lastLoginDate.? <> (Account, Account.unapply _) } case class Account( userName: String, mailAddress: String, password: String, isAdmin: Boolean, url: Option[String], registeredDate: java.sql.Timestamp, updatedDate: java.sql.Timestamp, lastLoginDate: Option[java.sql.Timestamp] ) class AccountDao { import Database.threadLocalSession def insert(o: Account): Long = Accounts insert o def select(key: String): Option[Account] = Query(Accounts) filter(_.userName is key.bind) firstOption }