package space.nstart.pcp_tgu_service.repository

/** Предоставляет доступ к БД для сохранённого состояния планирования КА. */
import space.nstart.pcp_tgu_service.entity.SpacecraftPlanningStateEntity
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param

interface SpacecraftPlanningStateJpaRepository : JpaRepository<SpacecraftPlanningStateEntity, String> {
    /** Блокирует строку состояния КА для изменения active/base указателей. */
    @Query(
        value = """
            SELECT *
            FROM spacecraft_planning_state
            WHERE spacecraft_id = :spacecraftId
            FOR UPDATE
        """,
        nativeQuery = true
    )
    fun lockBySpacecraftId(@Param("spacecraftId") spacecraftId: String): SpacecraftPlanningStateEntity?
}
