package space.nstart.pcp.slots_service.dto.groupstate

import java.time.LocalDateTime

/*
 * Времена ([LocalDateTime]) — naive ISO без зоны (локальное настенное время, без UTC-семантики).
 */

data class GroupStateAvailabilityDTO(
    val timeStart: LocalDateTime,
    val timeStop: LocalDateTime
)

data class GroupStateSummaryDTO(
    val groupId: Long,
    val groupName: String,
    val satelliteCount: Int,
    val availableInterval: GroupStateAvailabilityDTO? = null
)

data class GroupStateSatelliteDTO(
    val satelliteId: Long,
    val noradId: Long?,
    val code: String,
    val name: String,
    val omegabDeg: Double,
    val uDeg: Double
)

data class GroupStateMatrixCellDTO(
    val rowSatelliteId: Long,
    val columnSatelliteId: Long,
    val deltaOmegabDeg: Double,
    val deltaUDeg: Double
)

data class GroupStateMatrixRowDTO(
    val satelliteId: Long,
    val cells: List<GroupStateMatrixCellDTO>
)

data class GroupStateDetailsDTO(
    val groupId: Long,
    val groupName: String,
    val availableInterval: GroupStateAvailabilityDTO? = null,
    val calculationTime: LocalDateTime? = null,
    val satellites: List<GroupStateSatelliteDTO> = emptyList(),
    val matrix: List<GroupStateMatrixRowDTO> = emptyList()
)
