From cd1b635b2ae90d9ac2d8b1779183a1fbd8c5fd5c Mon Sep 17 00:00:00 2001 From: vlad Date: Tue, 13 Jun 2017 16:12:20 -0700 Subject: Adding domain entities --- .../pdsuidomain/entities/ExtractedData.scala | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala') diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala new file mode 100644 index 0000000..9972142 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala @@ -0,0 +1,48 @@ +package xyz.driver.pdsuidomain.entities + +import xyz.driver.pdsuicommon.domain.{FuzzyValue, LongId, TextJson} +import xyz.driver.pdsuicommon.logging._ +import xyz.driver.pdsuidomain.entities.ExtractedData.Meta + +final case class ExtractedData(id: LongId[ExtractedData] = LongId(0L), + documentId: LongId[Document], + keywordId: Option[LongId[Keyword]], + evidenceText: Option[String], + meta: Option[TextJson[Meta]]) { + + def isValid: Boolean = evidenceText.getOrElse("") != "" && meta.nonEmpty + +} + +object ExtractedData { + + final case class Meta(keyword: Meta.Keyword, evidence: Meta.Evidence) + + object Meta { + + final case class Evidence(pageRatio: Double, start: TextLayerPosition, end: TextLayerPosition) + + final case class TextLayerPosition(page: Integer, index: Integer, offset: Integer) + + final case class Keyword(page: Integer, pageRatio: Option[Double], index: Integer, sortIndex: String) + } + + implicit def toPhiString(x: ExtractedData): PhiString = { + import x._ + phi"ExtractedData(id=$id, documentId=$documentId, keywordId=$keywordId)" + } +} + +object ExtractedDataLabel { + + implicit def toPhiString(x: ExtractedDataLabel): PhiString = { + import x._ + phi"ExtractedDataLabel(id=$id, dataId=$dataId, labelId=$labelId, categoryId=$categoryId, value=$value)" + } +} + +final case class ExtractedDataLabel(id: LongId[ExtractedDataLabel], + dataId: LongId[ExtractedData], + labelId: Option[LongId[Label]], + categoryId: Option[LongId[Category]], + value: Option[FuzzyValue]) -- cgit v1.2.3