package space.nstart.pcp.pcp_types_lib.dto.ballistics

import com.fasterxml.jackson.annotation.JsonAlias
import com.fasterxml.jackson.annotation.JsonProperty
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.DecimalMax
import jakarta.validation.constraints.DecimalMin


@Schema(description = "Модель данных положения точки на земной поверхности")
class PositionDTO(
    @JsonProperty
    @field:Schema(
        description = "Широта, град",
        example = "46.7"
    )
    @field:DecimalMin(value = "${90 * (-1)}",
        message = "Широта не должна быть меньше -90 град")
    @field:DecimalMax(value = "${90}",
        message = "Широта не должна быть больше 90 град")
    val lat: Double = 0.0,

    @JsonProperty
    @field:Schema(
        description = "Долгота, град",
        example = "67.89"
    )
    @field:DecimalMin(value = "${180 * (-1)}",
        message = "Долгота не должна быть меньше -180 град")
    @field:DecimalMax(value = "${2 * 180}",
        message = "Долгота не должна быть больше 360 град")
    val long: Double = 0.0,

    @JsonProperty
    @field:Schema(
        description = "Превышение, м",
        example = "124.67"
    )
    @field:DecimalMin(value = "0",
        message = "Превышение не должно быть меньше 0 м"
    )
    val height: Double = 0.0,
) {
}