package space.nstart.pcp.pcp_coverage_scheme_service.controller

import jakarta.validation.Valid
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
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.RestController
import space.nstart.pcp.pcp_coverage_scheme_service.service.CoverageSchemeCalculationService
import space.nstart.pcp.pcp_types_lib.dto.coverage.CoverageSchemeCalculateRequestDTO

@RestController
@RequestMapping("/api/coverage-schemes")
@Tag(name = "Coverage Schemes", description = "Расчет схем беспрерывного покрытия полигона контурами режимов съемки")
class CoverageSchemeController(
    private val coverageSchemeCalculationService: CoverageSchemeCalculationService
) {

    @PostMapping("/calculate")
    @Operation(summary = "Рассчитать схему беспрерывного покрытия полигона")
    fun calculate(
        @Valid @RequestBody request: CoverageSchemeCalculateRequestDTO
    ) = coverageSchemeCalculationService.calculate(request)
}
