blob: 6999301570081c18b8021b2be22637193d904af3 (
plain) (
tree)
|
|
package xyz.driver.pdsuidomain.formats.json.export
import java.time.LocalDate
import java.util.UUID
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
import xyz.driver.pdsuicommon.domain.LongId
import xyz.driver.pdsuidomain.entities.RecordRequestId
import xyz.driver.pdsuidomain.entities.export.patient.ExportPatientLabelEvidenceDocument
final case class ApiExportPatientLabelEvidenceDocument(documentId: String,
requestId: String,
documentType: String,
providerType: String,
date: LocalDate) {
def toDomain = ExportPatientLabelEvidenceDocument(
documentId = LongId(this.documentId.toLong),
requestId = RecordRequestId(UUID.fromString(this.requestId)),
documentType = this.documentType,
providerType = this.providerType,
date = this.date
)
}
object ApiExportPatientLabelEvidenceDocument {
implicit val format: Format[ApiExportPatientLabelEvidenceDocument] = (
(JsPath \ "documentId").format[String] and
(JsPath \ "requestId").format[String] and
(JsPath \ "documentType").format[String] and
(JsPath \ "providerType").format[String] and
(JsPath \ "date").format[LocalDate]
)(ApiExportPatientLabelEvidenceDocument.apply, unlift(ApiExportPatientLabelEvidenceDocument.unapply))
def fromDomain(document: ExportPatientLabelEvidenceDocument) =
ApiExportPatientLabelEvidenceDocument(
documentId = document.documentId.toString,
requestId = document.requestId.toString,
documentType = document.documentType,
providerType = document.providerType,
date = document.date
)
}
|