# Spacecraft Planning Service Сервис планирования наблюдений космических аппаратов. Сервис получает данные о доступных пунктах наблюдения и окнах наблюдения, строит непрерывную цепочку планов для каждого космического аппарата и отправляет уведомления перед началом каждого плана. --- # Основные возможности Сервис выполняет следующие функции: - хранит планы космических аппаратов - строит непрерывную цепочку планов - принимает обновления пунктов наблюдения - пересчитывает планы при обновлении данных - отправляет Kafka уведомления перед началом плана - предоставляет REST API для чтения планов --- # Основные сущности ## Plan План космического аппарата. Содержит: - spacecraftId - startTime - endTime - insertionPointId --- ## SpacecraftPoints Набор входных данных по одному космическому аппарату. Содержит: - spacecraftId - список пунктов наблюдения --- ## InsertionPoint Пункт закладки. Содержит: - pointId - список окон наблюдения --- ## ObservationWindow Окно наблюдения космического аппарата. Содержит: - startTime - endTime - elevationAngle --- # Алгоритм построения планов Алгоритм MVP: 1. Все `observationWindow.startTime` считаются кандидатами на старт плана. 2. Для текущего старта ищется следующий старт: