package space.nstart.pcp.pcp_mission_planing_service.controller

import java.time.LocalDateTime
import java.util.UUID

/** Допустимые значения [MissionCloneRequest.mode]. */
object CloneMode {
    const val REPLACE = "replace"
    const val FORK_FORWARD = "fork-forward"
}

data class MissionCloneRequest(
    /** [CloneMode.REPLACE] — полный клон; [CloneMode.FORK_FORWARD] — только включения, перекрывающиеся с окном. */
    val mode: String,
    /** Начало окна нового плана (naive, локальное время). Обязательно для fork-forward. */
    val windowStart: LocalDateTime? = null,
    /** Конец окна нового плана (naive, локальное время). Обязательно для fork-forward. */
    val windowStop: LocalDateTime? = null
)

data class MissionCloneResponse(val newMissionId: UUID)

/** Запрос создания пустой миссии (план новой цепочки «без истории»). */
data class MissionBlankRequest(
    /** КА (= noradId). */
    val satelliteId: Long,
    /** Начало окна миссии (naive, локальное время). */
    val missionStart: LocalDateTime,
    /** Конец окна миссии (naive, локальное время). */
    val missionStop: LocalDateTime
)
