mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Add a use colum to metadata entities
This commit is contained in:
@ -0,0 +1,46 @@
|
||||
package docspell.common
|
||||
|
||||
import cats.data.NonEmptyList
|
||||
|
||||
import io.circe.Decoder
|
||||
import io.circe.Encoder
|
||||
|
||||
sealed trait EquipmentUse { self: Product =>
|
||||
|
||||
final def name: String =
|
||||
self.productPrefix.toLowerCase()
|
||||
}
|
||||
|
||||
object EquipmentUse {
|
||||
|
||||
case object Concerning extends EquipmentUse
|
||||
case object Disabled extends EquipmentUse
|
||||
|
||||
def concerning: EquipmentUse = Concerning
|
||||
def disabled: EquipmentUse = Disabled
|
||||
|
||||
val all: NonEmptyList[EquipmentUse] =
|
||||
NonEmptyList.of(concerning, disabled)
|
||||
|
||||
val notDisabled: NonEmptyList[EquipmentUse] =
|
||||
NonEmptyList.of(concerning)
|
||||
|
||||
def fromString(str: String): Either[String, EquipmentUse] =
|
||||
str.toLowerCase() match {
|
||||
case "concerning" =>
|
||||
Right(Concerning)
|
||||
case "disabled" =>
|
||||
Right(Disabled)
|
||||
case _ =>
|
||||
Left(s"Unknown equipment-use: $str")
|
||||
}
|
||||
|
||||
def unsafeFromString(str: String): EquipmentUse =
|
||||
fromString(str).fold(sys.error, identity)
|
||||
|
||||
implicit val jsonDecoder: Decoder[EquipmentUse] =
|
||||
Decoder.decodeString.emap(fromString)
|
||||
|
||||
implicit val jsonEncoder: Encoder[EquipmentUse] =
|
||||
Encoder.encodeString.contramap(_.name)
|
||||
}
|
46
modules/common/src/main/scala/docspell/common/OrgUse.scala
Normal file
46
modules/common/src/main/scala/docspell/common/OrgUse.scala
Normal file
@ -0,0 +1,46 @@
|
||||
package docspell.common
|
||||
|
||||
import cats.data.NonEmptyList
|
||||
|
||||
import io.circe.Decoder
|
||||
import io.circe.Encoder
|
||||
|
||||
sealed trait OrgUse { self: Product =>
|
||||
|
||||
final def name: String =
|
||||
self.productPrefix.toLowerCase()
|
||||
}
|
||||
|
||||
object OrgUse {
|
||||
|
||||
case object Correspondent extends OrgUse
|
||||
case object Disabled extends OrgUse
|
||||
|
||||
def correspondent: OrgUse = Correspondent
|
||||
def disabled: OrgUse = Disabled
|
||||
|
||||
val all: NonEmptyList[OrgUse] =
|
||||
NonEmptyList.of(correspondent, disabled)
|
||||
|
||||
val notDisabled: NonEmptyList[OrgUse] =
|
||||
NonEmptyList.of(correspondent)
|
||||
|
||||
def fromString(str: String): Either[String, OrgUse] =
|
||||
str.toLowerCase() match {
|
||||
case "correspondent" =>
|
||||
Right(Correspondent)
|
||||
case "disabled" =>
|
||||
Right(Disabled)
|
||||
case _ =>
|
||||
Left(s"Unknown organization-use: $str")
|
||||
}
|
||||
|
||||
def unsafeFromString(str: String): OrgUse =
|
||||
fromString(str).fold(sys.error, identity)
|
||||
|
||||
implicit val jsonDecoder: Decoder[OrgUse] =
|
||||
Decoder.decodeString.emap(fromString)
|
||||
|
||||
implicit val jsonEncoder: Encoder[OrgUse] =
|
||||
Encoder.encodeString.contramap(_.name)
|
||||
}
|
@ -16,6 +16,7 @@ object PersonUse {
|
||||
case object Correspondent extends PersonUse
|
||||
case object Concerning extends PersonUse
|
||||
case object Both extends PersonUse
|
||||
case object Disabled extends PersonUse
|
||||
|
||||
def concerning: PersonUse = Concerning
|
||||
def correspondent: PersonUse = Correspondent
|
||||
@ -35,6 +36,8 @@ object PersonUse {
|
||||
Right(Concerning)
|
||||
case "both" =>
|
||||
Right(Both)
|
||||
case "disabled" =>
|
||||
Right(Disabled)
|
||||
case _ =>
|
||||
Left(s"Unknown person-use: $str")
|
||||
}
|
||||
|
Reference in New Issue
Block a user