package space.nstart.pcp_tgu_service.service

import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import space.nstart.pcp_tgu_service.repository.PlanRecalculationJobRepository
import java.time.LocalDateTime

/**
 * Coalesce-сервис для plan_recalculation_job по spacecraftId.
 */
@Service
class PlanRecalculationJobService(
    private val planRecalculationJobRepository: PlanRecalculationJobRepository
) {
    /** Ставит или переоткрывает job перестроения расписания без дублей. */
    @Transactional
    fun enqueue(spacecraftId: String, reason: String) {
        planRecalculationJobRepository.upsertPending(spacecraftId, reason, LocalDateTime.now())
    }
}
