From 77a1690e089df996dd2a7de4af9bf594b6c777c0 Mon Sep 17 00:00:00 2001 From: Raymond Yang Date: Tue, 4 Aug 2026 21:24:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=E5=90=84=E5=B1=A4=E8=B3=87?= =?UTF-8?q?=E6=96=99=E8=BD=89=E6=8F=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/MemberMapper.kt | 11 ++++++++++ .../model/BattleRecord.kt | 20 ++++++++++--------- .../pcrediveclanrecordbackend/model/Member.kt | 14 ++++++++----- .../model/MemberRequest.kt | 13 ++++++++++++ .../plugins/Mongo.kt | 3 ++- src/main/resources/application.yaml | 5 +++++ 6 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/MemberRequest.kt diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/mapper/MemberMapper.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/mapper/MemberMapper.kt index fc44e99..d078da3 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/mapper/MemberMapper.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/mapper/MemberMapper.kt @@ -2,6 +2,7 @@ package club.sakunadaisuki.pcrediveclanrecordbackend.mapper import club.sakunadaisuki.pcrediveclanrecordbackend.database.dto.MemberDto import club.sakunadaisuki.pcrediveclanrecordbackend.model.Member +import club.sakunadaisuki.pcrediveclanrecordbackend.model.MemberRequest fun Member.toDto(): MemberDto { return MemberDto( @@ -13,4 +14,14 @@ fun Member.toDto(): MemberDto { createAt = createAt, updatedAt = updatedAt, ) +} + +fun MemberRequest.toDto(): MemberDto { + return MemberDto( + uid = uid, + playerName = playerName, + discordName = discordName, + discordID = discordID, + leave = leave, + ) } \ No newline at end of file diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/BattleRecord.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/BattleRecord.kt index d9ade6e..55d5d8f 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/BattleRecord.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/BattleRecord.kt @@ -1,21 +1,23 @@ package club.sakunadaisuki.pcrediveclanrecordbackend.model +import club.sakunadaisuki.pcrediveclanrecordbackend.database.dto.AttackDetailDto +import kotlinx.serialization.SerialName import java.time.Instant data class BattleRecord( val date: String, // yyyy-MM-dd var uid: String, - val playerName: String, - val discordName: String, - val discordID: String, - val attackDetailList: List + @SerialName("player_name") val playerName: String, + @SerialName("discord_name") val discordName: String, + @SerialName("discord_id") val discordID: String, + @SerialName("attack_detail_list") val attackDetailList: List ) data class AttackDetail( - val bossRound: Int, // 周目 - val bossIndex: Int, // 1~5 號王 + @SerialName("boss_round") val bossRound: Int, // 周目 + @SerialName("boss_index") val bossIndex: Int, // 1~5 號王 val damage: Long, // 傷害 - val isCompensation: Boolean = false, // true: 補償刀, false: 正刀 - val createdAt: Long = Instant.now().toEpochMilli(), - val updatedAt: Long = Instant.now().toEpochMilli() + @SerialName("is_compensation") val isCompensation: Boolean = false, // true: 補償刀, false: 正刀 + @SerialName("created_at") val createdAt: Long = Instant.now().toEpochMilli(), + @SerialName("updated_at") val updatedAt: Long = Instant.now().toEpochMilli() ) \ No newline at end of file diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt index 9f156dc..abf8159 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt @@ -1,11 +1,15 @@ package club.sakunadaisuki.pcrediveclanrecordbackend.model +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable data class Member( var uid: String, - val playerName: String, - val discordName: String, - val discordID: String, + @SerialName("player_name") val playerName: String, + @SerialName("discord_name") val discordName: String, + @SerialName("discord_id") val discordID: String, var leave: Boolean = false, - var createAt: Long? = null, - var updatedAt: Long? = null + @SerialName("created_at") var createAt: Long? = null, + @SerialName("updated_at") var updatedAt: Long? = null ) \ No newline at end of file diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/MemberRequest.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/MemberRequest.kt new file mode 100644 index 0000000..7748c9b --- /dev/null +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/MemberRequest.kt @@ -0,0 +1,13 @@ +package club.sakunadaisuki.pcrediveclanrecordbackend.model + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class MemberRequest( + var uid: String, + @SerialName("player_name") val playerName: String, + @SerialName("discord_name") val discordName: String, + @SerialName("discord_id") val discordID: String, + var leave: Boolean = false, +) \ No newline at end of file diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/plugins/Mongo.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/plugins/Mongo.kt index c9fa25e..4906f90 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/plugins/Mongo.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/plugins/Mongo.kt @@ -7,6 +7,7 @@ import club.sakunadaisuki.pcrediveclanrecordbackend.database.service.MemberServi import club.sakunadaisuki.pcrediveclanrecordbackend.mapper.toDto import club.sakunadaisuki.pcrediveclanrecordbackend.model.AttackDetail import club.sakunadaisuki.pcrediveclanrecordbackend.model.BattleRecordRequest +import club.sakunadaisuki.pcrediveclanrecordbackend.model.MemberRequest import com.mongodb.client.* import io.ktor.http.* import io.ktor.server.application.* @@ -42,7 +43,7 @@ fun Application.configureMongo() { } // Create member post("/member") { - val member = call.receive() + val member = call.receive() val id = memberService.create(member.toDto()) call.respond(HttpStatusCode.Created, id) } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 44292f5..6de97ed 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -7,3 +7,8 @@ ktor: - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.SerializationKt.configureSerialization - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.MongoKt.configureMongo - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.RoutingKt.configureRouting +db: + mongo: + user: ray650128 + password: Zx0987062271! + host: 192.168.50.128 \ No newline at end of file