Files
meldestelle/backend/services/entries/entries-service/build.gradle.kts
T
stefan c1fadac944 feat(entries+billing): integrate automatic fee booking for entries with billing service
- **Entries-Service Updates:**
  - Implemented automatic booking of fees (entry fees and late fees) during entry submission using `TeilnehmerKontoService`.
  - Enhanced `Bewerb` entity with financial fields (`nenngeldCent`, `nachnenngebuehrCent`).
  - Added Flyway migration to update `bewerbe` table with new financial fields.
  - Updated `EntriesServiceApplication` to include billing package scanning for integration.

- **Billing-Service Enhancements:**
  - Adjusted `TeilnehmerKontoService` to support fetching accounts by event and person.
  - Improved database configuration to handle missing JDBC URLs during tests.

- **Tests:**
  - Added integration tests to validate fee booking logic for entries, including late fee scenarios.
  - Introduced H2 database setup for test isolation.

- **Misc:**
  - Updated tenant-aware transactions to support H2 and PostgreSQL dialects.
  - Adjusted log and error handling for robust integration between services.
2026-04-10 12:49:03 +02:00

63 lines
2.5 KiB
Kotlin

plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.kotlinJpa)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
springBoot {
mainClass.set("at.mocode.entries.service.EntriesServiceApplicationKt")
}
dependencies {
implementation(platform(projects.platform.platformBom))
implementation(projects.platform.platformDependencies)
implementation(projects.backend.services.entries.entriesApi)
implementation(projects.backend.services.entries.entriesDomain)
implementation(projects.backend.services.billing.billingDomain)
implementation(projects.backend.services.billing.billingService)
implementation(projects.core.coreUtils)
implementation(projects.core.coreDomain)
implementation(projects.backend.infrastructure.monitoring.monitoringClient)
implementation(projects.backend.infrastructure.security)
// Standard dependencies for a secure microservice (centralized bundle)
implementation(libs.bundles.spring.boot.secure.service)
// Common service extras
implementation(libs.spring.boot.starter.validation)
// JSON + Web: ensure Spring Web (incl. HttpMessageConverters) is on classpath
implementation("org.springframework.boot:spring-boot-starter-web")
implementation(libs.spring.boot.starter.json)
implementation(libs.postgresql.driver)
// KORREKTUR: Jackson Bundle aufgelöst, da Accessor fehlschlägt
implementation(libs.jackson.module.kotlin)
implementation(libs.jackson.datatype.jsr310)
implementation(libs.kotlin.reflect)
implementation(libs.caffeine)
// spring-web is included via spring-boot-starter-web above; keep explicit add if alias resolves elsewhere
// JDBC for JdbcTemplate-based TenantRegistry
implementation("org.springframework.boot:spring-boot-starter-jdbc")
// Resilience Dependencies (manuell aufgelöst)
implementation(libs.resilience4j.spring.boot3)
implementation(libs.resilience4j.reactor)
implementation(libs.spring.boot.starter.aop)
implementation(libs.springdoc.openapi.starter.webmvc.ui)
// Exposed ORM für Datenbankzugriff
implementation(libs.exposed.core)
implementation(libs.exposed.jdbc)
implementation(libs.exposed.kotlin.datetime)
// Flyway runtime (provided by BOM, ensure availability in this module)
implementation(libs.flyway.core)
implementation(libs.flyway.postgresql)
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
testImplementation(libs.spring.boot.starter.test)
testImplementation("com.h2database:h2")
}