package space.nstart.pcp.slots_service.dto.tleanalysis

import java.time.LocalDateTime

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

data class TleAnalysisSatelliteDTO(
    val id: Long,
    val catalogId: Long? = null,
    val noradId: Long? = null,
    val code: String = "",
    val name: String = "",
    val typeCode: String = "",
    val active: Boolean = true,
    val scanTle: Boolean = false,
    val tleRecordsCount: Int = 0
)

data class TleAnalysisResponseDTO(
    val satelliteId: Long,
    val rows: List<TleAnalysisRowDTO>
)

data class TleAnalysisRowDTO(
    val index: Int,
    val epoch: LocalDateTime,
    val revolution: Long,
    val noradId: Long,
    val tleHeader: String?,
    val radiusVector: RadiusVectorDTO,
    val radiusNorm: Double,
    val discrepancy: RadiusVectorDiscrepancyDTO?
)

data class RadiusVectorDTO(
    val x: Double,
    val y: Double,
    val z: Double
)

data class RadiusVectorDiscrepancyDTO(
    val previousEpoch: LocalDateTime,
    val epochDifferenceHours: Double,
    val dx: Double,
    val dy: Double,
    val dz: Double,
    val norm: Double
)
