StatCalculatorController.kt

package io.github.lishangbu.avalon.dataset.controller

import io.github.lishangbu.avalon.dataset.model.StatCalculatorCreaturePresetView
import io.github.lishangbu.avalon.dataset.model.StatCalculatorRequest
import io.github.lishangbu.avalon.dataset.model.StatCalculatorResultView
import io.github.lishangbu.avalon.dataset.service.StatCalculatorService
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

/** 能力值计算器控制器 */
@RestController
@RequestMapping("/stat-calculator")
class StatCalculatorController(
    private val statCalculatorService: StatCalculatorService,
) {
    /** 查询指定生物的六围基础值预设 */
    @GetMapping("/preset")
    fun getCreaturePreset(
        @RequestParam(required = false) creatureId: String?,
    ): StatCalculatorCreaturePresetView =
        statCalculatorService.getCreaturePreset(
            creatureId = creatureId,
        )

    /** 按输入批量计算能力值 */
    @PostMapping("/calculate")
    fun calculate(
        @Valid
        @RequestBody request: StatCalculatorRequest,
    ): StatCalculatorResultView = statCalculatorService.calculate(request)
}