DocumentEntity.kt
package de.werkbaum.persistence
import de.werkbaum.domain.Document
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.Id
import jakarta.persistence.Table
import java.time.OffsetDateTime
import java.util.UUID
@Entity
@Table(name = "document")
class DocumentEntity(
@Id
val id: UUID,
@Column(nullable = false)
var title: String,
@Column(nullable = false, columnDefinition = "text")
var content: String,
@Column(nullable = false)
var version: Long,
@Column(name = "created_at", nullable = false)
var createdAt: OffsetDateTime,
@Column(name = "updated_at", nullable = false)
var updatedAt: OffsetDateTime,
) {
fun toDomain() = Document(
id = id,
title = title,
content = content,
version = version,
createdAt = createdAt,
updatedAt = updatedAt,
)
companion object {
fun fromDomain(document: Document) = DocumentEntity(
id = document.id,
title = document.title,
content = document.content,
version = document.version,
createdAt = document.createdAt,
updatedAt = document.updatedAt,
)
}
}