✨ Add BetEntity file
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
a79984e781
commit
ed1f78ba87
@ -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<BetEntity> {
|
||||||
|
val theme: String
|
||||||
|
val sentenceBet: String
|
||||||
|
val endRegistration: ZonedDateTime
|
||||||
|
val endBet: ZonedDateTime
|
||||||
|
val isPrivate: Boolean
|
||||||
|
val createdBy: String
|
||||||
|
}
|
||||||
|
|
||||||
|
object BetsEntity : Table<BetEntity>("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<Bet> {
|
||||||
|
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))
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue