Remove domain models and services related to Abteilung, AbteilungsRegelService, and Bewerb: cleanup unnecessary entities, validation logic, and tests across backend modules.

This commit is contained in:
2026-04-13 21:58:06 +02:00
parent 76d7019d30
commit fb1c1ee4ce
76 changed files with 1091 additions and 267 deletions
@@ -0,0 +1,46 @@
package at.mocode.entries.service.notification
import org.slf4j.LoggerFactory
import org.springframework.mail.SimpleMailMessage
import org.springframework.mail.javamail.JavaMailSender
import org.springframework.stereotype.Service
@Service
class MailService(
private val mailSender: JavaMailSender? = null
) {
private val log = LoggerFactory.getLogger(MailService::class.java)
fun sendNennungsBestätigung(email: String, reiterName: String, turnierName: String, bewerbe: String) {
val subject = "Bestätigung Ihrer Online-Nennung: $turnierName"
val text = """
Hallo $reiterName,
vielen Dank für deine Nennung zum Turnier '$turnierName'.
Angemeldete Bewerbe: $bewerbe
Du kannst deine aktuelle Rechnung jederzeit online in deinem Teilnehmer-Konto einsehen und herunterladen.
Viel Erfolg beim Turnier!
Deine Meldestelle
""".trimIndent()
if (mailSender != null) {
try {
val message = SimpleMailMessage()
message.setTo(email)
message.setSubject(subject)
message.setText(text)
message.setFrom("noreply@mo-code.at")
mailSender.send(message)
log.info("Bestätigungs-Email an $email gesendet.")
} catch (e: Exception) {
log.error("Fehler beim Senden der Email an $email: ${e.message}")
}
} else {
log.warn("JavaMailSender nicht konfiguriert. Email-Versand übersprungen (Simulation).")
log.info("SIMULATION - Email an $email:\nSubject: $subject\nContent:\n$text")
}
}
}
@@ -4,6 +4,7 @@ package at.mocode.entries.service.usecase
import at.mocode.billing.domain.model.BuchungsTyp
import at.mocode.billing.service.TeilnehmerKontoService
import at.mocode.entries.service.notification.MailService
import at.mocode.core.domain.model.NennStatusE
import at.mocode.entries.api.*
import at.mocode.entries.domain.model.Nennung
@@ -28,7 +29,8 @@ class NennungUseCases(
private val nennungRepository: NennungRepository,
private val transferRepository: NennungsTransferRepository,
private val bewerbRepository: BewerbRepository,
private val kontoService: TeilnehmerKontoService
private val kontoService: TeilnehmerKontoService,
private val mailService: MailService
) {
private val log = LoggerFactory.getLogger(NennungUseCases::class.java)
@@ -115,6 +117,17 @@ class NennungUseCases(
}
}
// Bestätigungs-Email senden
val emailAddress = request.email
if (emailAddress != null) {
mailService.sendNennungsBestätigung(
email = emailAddress,
reiterName = "Reiter (ID: ${saved.reiterId})", // In einem echten System würden wir den Namen aus dem Person-Service laden
turnierName = "Turnier (ID: ${saved.turnierId})", // Analog für Turnier
bewerbe = bewerb?.let { "${it.bezeichnung} (${it.klasse})" } ?: "Unbekannter Bewerb"
)
}
return saved.toDetailDto()
}