Newer
Older
support / domain / users / query / model / src / model.scala
package mdr.pdb
package users.query

import java.time.LocalDate

sealed trait Criteria
case object AllUsers extends Criteria
case class UserWithOsobniCislo(osobniCislo: OsobniCislo) extends Criteria

case class UserContract(
    rel: String,
    startDate: LocalDate,
    endDate: Option[LocalDate]
)

case class UserFunction(name: String, dept: String, ou: String)

case class UserInfo(
    personalNumber: OsobniCislo,
    username: String,
    givenName: String,
    surname: String,
    titlesBeforeName: Option[String] = None,
    titlesAfterName: Option[String] = None,
    email: Option[String] = None,
    phone: Option[String] = None,
    mainFunction: Option[UserFunction] = None,
    userContracts: List[UserContract] = Nil,
    img: Option[String] = None
):
  val name =
    List(
      Some(
        List(titlesBeforeName, Some(givenName), Some(surname)).flatten.mkString(
          " "
        )
      ),
      titlesAfterName
    ).flatten.mkString(", ")

case class UserProfile(username: String, userInfo: UserInfo)