調整各層資料轉換

This commit is contained in:
2026-08-04 21:24:24 +08:00
parent 8c99ba1147
commit 77a1690e08
6 changed files with 51 additions and 15 deletions
@@ -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,
)
}
@@ -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<AttackDetail>
@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<AttackDetail>
)
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()
)
@@ -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
)
@@ -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,
)
@@ -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<Member>()
val member = call.receive<MemberRequest>()
val id = memberService.create(member.toDto())
call.respond(HttpStatusCode.Created, id)
}
+5
View File
@@ -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