From ecb6612c8c379ab3ae651c178cc95f05867b4421 Mon Sep 17 00:00:00 2001 From: JFronny Date: Sun, 12 May 2024 13:36:46 +0200 Subject: [PATCH] feat: implement data model pt 1 --- .../io/gitlab/jfronny/sdom/model/Contest.kt | 26 +++++++++++++++++++ .../gitlab/jfronny/sdom/model/FileWithName.kt | 10 +++++++ .../io/gitlab/jfronny/sdom/model/ImageFile.kt | 12 +++++++++ .../io/gitlab/jfronny/sdom/model/Problem.kt | 17 ++++++++++++ .../io/gitlab/jfronny/sdom/model/SDResult.kt | 4 +++ 5 files changed, 69 insertions(+) create mode 100644 src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt create mode 100644 src/main/kotlin/io/gitlab/jfronny/sdom/model/FileWithName.kt create mode 100644 src/main/kotlin/io/gitlab/jfronny/sdom/model/ImageFile.kt create mode 100644 src/main/kotlin/io/gitlab/jfronny/sdom/model/Problem.kt create mode 100644 src/main/kotlin/io/gitlab/jfronny/sdom/model/SDResult.kt diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt new file mode 100644 index 0000000..a79b50e --- /dev/null +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Contest.kt @@ -0,0 +1,26 @@ +package io.gitlab.jfronny.sdom.model + +import kotlinx.datetime.LocalDateTime +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class Contest( + @SerialName("formal_name") val formalName: String, + @SerialName("scoreboard_type") val scoreboardType: String, + @SerialName("start_time") val startTime: LocalDateTime, + @SerialName("end_time") val endTime: LocalDateTime, + @SerialName("scoreboard_thaw_time") val scoreboardThawTime: LocalDateTime, + @SerialName("duration") val duration: String, + @SerialName("scoreboard_freeze_duration") val scoreboardFreezeDuration: String?, + val banner: ImageFile, + val problemset: FileWithName, + val id: String, + @SerialName("external_id") val externalId: String, + val name: String, + val shortname: String, + @SerialName("allow_submit") val allowSubmit: Boolean, + @SerialName("runtime_as_score_tiebreaker") val runtimeAsScoreTiebreaker: Boolean, + @SerialName("warning_message") val warningMessage: String?, + @SerialName("penalty_time") val penaltyTime: Int, +) \ No newline at end of file diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/FileWithName.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/FileWithName.kt new file mode 100644 index 0000000..716bd33 --- /dev/null +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/FileWithName.kt @@ -0,0 +1,10 @@ +package io.gitlab.jfronny.sdom.model + +import kotlinx.serialization.Serializable + +@Serializable +data class FileWithName( + val href: String, + val mime: String, + val filename: String, +) \ No newline at end of file diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/ImageFile.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/ImageFile.kt new file mode 100644 index 0000000..ca5091c --- /dev/null +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/ImageFile.kt @@ -0,0 +1,12 @@ +package io.gitlab.jfronny.sdom.model + +import kotlinx.serialization.Serializable + +@Serializable +data class ImageFile( + val href: String, + val mime: String, + val filename: String, + val width: Int, + val height: Int, +) \ No newline at end of file diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/Problem.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Problem.kt new file mode 100644 index 0000000..7f068e1 --- /dev/null +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/Problem.kt @@ -0,0 +1,17 @@ +package io.gitlab.jfronny.sdom.model + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class Problem( + val id: String, + @SerialName("short_name") val shortName: String, + val rgb: String, + val color: String, + val label: String, + val timeLimit: Float, + val statement: FileWithName, + @SerialName("externalid") val externalId: String, + val name: String, +) \ No newline at end of file diff --git a/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDResult.kt b/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDResult.kt new file mode 100644 index 0000000..9504ac8 --- /dev/null +++ b/src/main/kotlin/io/gitlab/jfronny/sdom/model/SDResult.kt @@ -0,0 +1,4 @@ +package io.gitlab.jfronny.sdom.model + +class SDResult { +} \ No newline at end of file