refactoring:

1. Update MemberRepositoryImpl: replace DatabaseFactory.dbQuery calls with explicit Exposed transaction{} and remove the non-existent import; add necessary ExperimentalTime opt-ins and fix Clock usages.
2. Inspect members-infrastructure MemberTable.kt to add missing ExperimentalTime opt-ins and adjust types if needed.
3. Rebuild to surface any remaining Exposed API or import errors and fix them.
4. Verify members-api compiles and that endpoints remain intact; provide final summary.
This commit is contained in:
2025-11-25 00:08:00 +01:00
parent 286c1aa881
commit 45fe774a45
8 changed files with 160 additions and 511 deletions
@@ -1,8 +1,8 @@
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class, kotlin.time.ExperimentalTime::class)
package at.mocode.members.domain.events
import kotlin.uuid.Uuid
import kotlinx.datetime.Instant
import kotlin.time.Instant
import kotlinx.datetime.LocalDate
/**
@@ -1,15 +1,16 @@
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class)
@file:OptIn(kotlin.uuid.ExperimentalUuidApi::class, kotlin.time.ExperimentalTime::class)
package at.mocode.members.domain.model
import at.mocode.core.domain.serialization.KotlinInstantSerializer
import at.mocode.core.domain.serialization.KotlinLocalDateSerializer
import at.mocode.core.domain.serialization.UuidSerializer
import kotlin.uuid.Uuid
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlin.time.Clock
import kotlin.time.Instant
import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone
import kotlinx.datetime.toLocalDateTime
import kotlinx.datetime.toKotlinLocalDate
import java.time.ZoneId
import java.time.LocalDate as JLocalDate
import kotlinx.serialization.Serializable
/**
@@ -81,7 +82,7 @@ data class Member(
fun isMembershipValid(): Boolean {
if (!isActive) return false
val today = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()).date
val today = JLocalDate.now(ZoneId.systemDefault()).toKotlinLocalDate()
return membershipEndDate?.let { endDate ->
today <= endDate
} ?: true // If no end date, membership is valid indefinitely