From ed1f78ba87e9e7f92470ea05d40244a86b345b0e Mon Sep 17 00:00:00 2001 From: luevard <99143550+saucepommefrite@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:27:31 +0100 Subject: [PATCH] :sparkles: Add BetEntity file --- .../main/kotlin/allin/entities/BetEntity.kt | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Sources/src/main/kotlin/allin/entities/BetEntity.kt diff --git a/Sources/src/main/kotlin/allin/entities/BetEntity.kt b/Sources/src/main/kotlin/allin/entities/BetEntity.kt new file mode 100644 index 0000000..c4b7cf3 --- /dev/null +++ b/Sources/src/main/kotlin/allin/entities/BetEntity.kt @@ -0,0 +1,65 @@ +package allin.entities + +import allin.database +import allin.entities.ResponsesEntity.getResponse +import allin.model.Bet +import allin.utils.Execute +import org.ktorm.dsl.* +import org.ktorm.entity.Entity +import org.ktorm.schema.* +import java.time.ZoneId +import java.time.ZonedDateTime +import java.util.UUID.fromString + + +interface BetEntity : Entity { + val theme: String + val sentenceBet: String + val endRegistration: ZonedDateTime + val endBet: ZonedDateTime + val isPrivate: Boolean + val createdBy: String +} + +object BetsEntity : Table("bet") { + val id = uuid("id").primaryKey() + val theme = varchar("theme") + val sentenceBet = varchar("sentencebet") + val endRegistration = timestamp("endregistration") + val endBet = timestamp("endbet") + val isPrivate = boolean("isprivate") + val createdBy = varchar("createdby") + + fun getBets(): MutableList { + return database.from(BetsEntity).select().map { + row -> Bet( + row[id].toString(), + row[theme].toString(), + row[sentenceBet].toString(), + row[endRegistration]!!.atZone(ZoneId.of("Europe/Paris")), + row[endBet]!!.atZone(ZoneId.of("Europe/Paris")), + row[isPrivate]?: false, + getResponse(fromString(row[id].toString())), + row[createdBy].toString() + ) + }.toMutableList() + } + + fun createBetsTable(){ + val request="CREATE TABLE IF not exists bet ( id uuid PRIMARY KEY, theme VARCHAR(255), endregistration timestamp,endbet timestamp,sentencebet varchar(500),isprivate boolean, createdby varchar(250))" + database.Execute(request) + } + + fun addBetEntity(bet : Bet) { + database.insert(BetsEntity) { + set(it.id, fromString(bet.id)) + set(it.endBet,bet.endBet.toInstant()) + set(it.endRegistration,bet.endRegistration.toInstant()) + set(it.sentenceBet,bet.sentenceBet) + set(it.theme, bet.theme) + set(it.isPrivate, bet.isPrivate) + set(it.createdBy, bet.createdBy) + } + ResponsesEntity.addResponse(bet.response,fromString(bet.id)) + } +} \ No newline at end of file