package space.nstart.pcp.slots_service.repository

import java.time.LocalDateTime

data class BatchCoverageSearchRequest(
    val targetId: Long,
    val satelliteId: Long,
    val windowStart: LocalDateTime,
    val windowStop: LocalDateTime,
    val polygonWkt: String
)

data class BatchCoverageSlotRow(
    val targetId: Long,
    val slotId: Long,
    val slotNum: Long,
    val cycle: Long,
    val satelliteId: Long,
    val coveringType: Int,
    val tn: java.time.LocalDateTime,
    val tk: java.time.LocalDateTime,
    val roll: Double,
    val contour: String,
    val revolution: Long,
    val revolutionSign: String,
    val latitude: Double,
    val longitude: Double
)

interface SlotRepositoryCustom {
    fun findTargetSlotRows(
        searchRequests: List<BatchCoverageSearchRequest>,
        chunkSize: Int
    ): List<BatchCoverageSlotRow>
}
