aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/entities/ExtractedData.scala48
1 files changed, 48 insertions, 0 deletions
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])