package space.nstart.pcp.complan.types

import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.annotation.JsonSerialize
import io.swagger.v3.oas.annotations.media.Schema
import java.time.LocalDateTime

@Schema(description = "Запрос расчета параметров наблюдения для набора объектов")
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonSerialize
data class ObjViewRequestDTO(
    @get:JsonProperty("sunAngleMin")
    @param:JsonProperty("sunAngleMin")
    val sunAngleMin: Double? = null,

    @get:JsonProperty("objects")
    @param:JsonProperty("objects")
    val objects: List<ObjDTO>,

    @get:JsonProperty("satellites")
    @param:JsonProperty("satellites")
    val satellites: Iterable<Long>? = null,

    @get:JsonProperty("timeStart")
    @param:JsonProperty("timeStart")
    val timeStart: LocalDateTime? = null,

    @get:JsonProperty("timeStop")
    @param:JsonProperty("timeStop")
    val timeStop: LocalDateTime? = null
)
