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

import com.fasterxml.jackson.annotation.JsonProperty
import io.swagger.v3.oas.annotations.media.Schema
import space.nstart.pcp.pcp_types_lib.utils.UtcDateTimes
import java.time.LocalDateTime

@Schema(description = "Модель данных параметров трассы полета и полосы обзора")
class FlightLineDTO(
    @JsonProperty
    @field:Schema(
        description = "Время",
        required = true,
        nullable = false
    )
    val time : LocalDateTime = UtcDateTimes.now(),
    @JsonProperty
    @field:Schema(
        description = "Виток"
    )
    val revolution : Long = 0,
    @JsonProperty
    @field:Schema(
        description = "Широта подспутниковой точки, град"
    )
    val lat : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Долгота подспутниковой точки, град"
    )
    val long  : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Широта левой границы полосы обзора"
    )
    val latLeft : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Долгота левой границы полосы обзора"
    )
    val longLeft : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Широта внутренней левой границы полосы обзора"
    )
    val latInnerLeft : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Долгота внутренней левой границы полосы обзора"
    )
    val longInnerLeft : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Широта внутренней правой границы полосы обзора"
    )
    val latInnerRight : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Долгота внутренней правой границы полосы обзора"
    )
    val longInnerRight : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Широта правой границы полосы обзора"
    )
    val latRight : Double = 0.0,
    @JsonProperty
    @field:Schema(
        description = "Долгота правой границы полосы обзора"
    )
    val longRight : Double = 0.0,

    val revSign : RevolutionSign = RevolutionSign.ASC,

) {

}
