package net.aiterp.git.ykonsole2.infrastructure.testing import net.aiterp.git.ykonsole2.domain.models.Workout import net.aiterp.git.ykonsole2.domain.models.WorkoutRepository import net.aiterp.git.ykonsole2.domain.models.WorkoutStatus class InMemoryWorkoutRepository : WorkoutRepository { private val workouts = mutableListOf() override fun findById(id: String): Workout? = workouts.firstOrNull { it.id == id } override fun fetchAll(): List = workouts.asSequence() .map { it.copy() } .sortedByDescending { it.createdAt } .toList() override fun findActive(): Workout? = workouts.asSequence() .filter { it.status != WorkoutStatus.Disconnected } .sortedByDescending { it.createdAt } .firstOrNull() override fun save(workout: Workout) { workouts.removeIf { it.id == workout.id } workouts += workout } override fun delete(workout: Workout) { workouts.removeIf { it.id == workout.id } } }