40 lines
1.2 KiB
Kotlin
40 lines
1.2 KiB
Kotlin
package fr.teamflash.fencerjudgeback.entities
|
|
|
|
import jakarta.persistence.Entity
|
|
import jakarta.persistence.GeneratedValue
|
|
import jakarta.persistence.GenerationType
|
|
import jakarta.persistence.Id
|
|
import jakarta.persistence.SequenceGenerator
|
|
import jakarta.persistence.Table
|
|
import jakarta.validation.constraints.*
|
|
import java.util.Date
|
|
|
|
enum class MatchState {
|
|
ONGOING,
|
|
OVER,
|
|
NOT_STARTED
|
|
}
|
|
|
|
@Entity
|
|
@Table(name="matches")
|
|
data class MatchBean(
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "match_sequence")
|
|
@SequenceGenerator(name = "match_sequence", sequenceName = "match_seq", allocationSize = 1)
|
|
var id:Long?=null,
|
|
val weapon:String?=null,
|
|
val country:String?=null,
|
|
val city:String?=null,
|
|
@field:NotNull(message = "Player 1 ID must not be null")
|
|
val player1ID:Long?=null,
|
|
@field:NotNull(message = "Player 2 ID must not be null")
|
|
val player2ID:Long?=null,
|
|
val refereeID: Long?=null,
|
|
@field:Min(value = 0, message = "Score must be at least 0")
|
|
var score1:Int=0,
|
|
@field:Min(value = 0, message = "Score must be at least 0")
|
|
var score2:Int=0,
|
|
val date: Date?=null,
|
|
val state: MatchState?=null
|
|
)
|