diff --git a/backend/src/main/kotlin/com/condado/newsletter/repository/DispatchLogRepository.kt b/backend/src/main/kotlin/com/condado/newsletter/repository/DispatchLogRepository.kt new file mode 100644 index 0000000..0d27e92 --- /dev/null +++ b/backend/src/main/kotlin/com/condado/newsletter/repository/DispatchLogRepository.kt @@ -0,0 +1,19 @@ +package com.condado.newsletter.repository + +import com.condado.newsletter.model.DispatchLog +import com.condado.newsletter.model.VirtualEntity +import org.springframework.data.jpa.repository.JpaRepository +import java.util.Optional +import java.util.UUID + +/** + * Repository for [DispatchLog] with custom query methods. + */ +interface DispatchLogRepository : JpaRepository { + + /** Returns all dispatch logs for the given [VirtualEntity]. */ + fun findAllByVirtualEntity(virtualEntity: VirtualEntity): List + + /** Returns the most recent dispatch log for the given [VirtualEntity], or empty if none exist. */ + fun findTopByVirtualEntityOrderByDispatchedAtDesc(virtualEntity: VirtualEntity): Optional +} diff --git a/backend/src/main/kotlin/com/condado/newsletter/repository/VirtualEntityRepository.kt b/backend/src/main/kotlin/com/condado/newsletter/repository/VirtualEntityRepository.kt new file mode 100644 index 0000000..9e4c263 --- /dev/null +++ b/backend/src/main/kotlin/com/condado/newsletter/repository/VirtualEntityRepository.kt @@ -0,0 +1,18 @@ +package com.condado.newsletter.repository + +import com.condado.newsletter.model.VirtualEntity +import org.springframework.data.jpa.repository.JpaRepository +import java.util.Optional +import java.util.UUID + +/** + * Repository for [VirtualEntity] with custom query methods. + */ +interface VirtualEntityRepository : JpaRepository { + + /** Returns all entities where [VirtualEntity.active] is true. */ + fun findAllByActiveTrue(): List + + /** Finds an entity by its unique email address. */ + fun findByEmail(email: String): Optional +}