diff --git a/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt b/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt index 2f8c34c..1f757f0 100644 --- a/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt +++ b/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt @@ -211,7 +211,15 @@ class MockBetDataSource(private val mockData: MockDataSource.MockData) : BetData infos = answerInfos.filter { it.betId == this.id } ), participations = participations, - userParticipation = participation + userParticipation = participation, + wonParticipation = if (this.status == FINISHED) { + val result = results.find { it.betId == this.id } + result?.let { r -> + participations + .filter { it.answer == r.result } + .maxBy { it.stake } + } + } else null ) } diff --git a/Sources/src/main/kotlin/allin/data/postgres/entities/BetEntity.kt b/Sources/src/main/kotlin/allin/data/postgres/entities/BetEntity.kt index e1c9e43..41990fa 100644 --- a/Sources/src/main/kotlin/allin/data/postgres/entities/BetEntity.kt +++ b/Sources/src/main/kotlin/allin/data/postgres/entities/BetEntity.kt @@ -62,8 +62,15 @@ interface BetEntity : Entity { bet = bet, answers = getBetAnswerDetail(bet, participationEntities, answerInfos), participations = participationEntities, - userParticipation = userParticipation?.toParticipation() - + userParticipation = userParticipation?.toParticipation(), + wonParticipation = if (bet.status == BetStatus.FINISHED) { + val result = database.betResults.find { it.betId eq this.id } + result?.let { r -> + participationEntities + .filter { it.answer == r.result } + .maxBy { it.stake } + } + } else null ) } diff --git a/Sources/src/main/kotlin/allin/model/BetDetail.kt b/Sources/src/main/kotlin/allin/model/BetDetail.kt index 65f31c3..c2ea273 100644 --- a/Sources/src/main/kotlin/allin/model/BetDetail.kt +++ b/Sources/src/main/kotlin/allin/model/BetDetail.kt @@ -16,7 +16,8 @@ data class BetDetail( val bet: Bet, // Le Bet val answers: List?, // Pour chaque réponse possible du bet les détails val participations: List?, // La liste des participations - val userParticipation: Participation? // La participation du User current + val userParticipation: Participation?, // La participation du User current + val wonParticipation: Participation? // La participation gagnante ) fun getBetAnswerDetail(