From 6e95acc128b221b238fa1b71d97b9b92c7d48f59 Mon Sep 17 00:00:00 2001 From: Gabriel Sancho Date: Thu, 26 Mar 2026 18:41:54 -0300 Subject: [PATCH] =?UTF-8?q?feat(backend):=20implement=20step=203=20?= =?UTF-8?q?=E2=80=94=20VirtualEntityRepository=20and=20DispatchLogReposito?= =?UTF-8?q?ry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/DispatchLogRepository.kt | 19 +++++++++++++++++++ .../repository/VirtualEntityRepository.kt | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 backend/src/main/kotlin/com/condado/newsletter/repository/DispatchLogRepository.kt create mode 100644 backend/src/main/kotlin/com/condado/newsletter/repository/VirtualEntityRepository.kt 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 +}