Files
dc-observatio/services/pcp-tgu-service
Дмитрий Соловьев fd3603a086 pcp-tgu: статусы плана — актуальная легенда с тултипами + док жизненного цикла
- STATUS_STYLES в порядке жизненного цикла: убран легаси ACCEPTED, добавлены
  LAID_IN/NOT_ACCEPTED/LAYIN_FAILED, у каждого статуса человеческое описание.
- Легенда вкладки «Планы»: тултипы по наведению (title=description), убрана
  устаревшая приписка про стрелки.
- TimelineStatusStyle: добавлено обязательное поле description.
- HandlePlanDecisionUseCase: TODO(layin-confirmed) — обработчик приёма события
  «план заложен» (AWAITING_LAYIN → LAID_IN) ещё не реализован.
- docs/architect/PCP_TGU_PLAN_STATUS_LIFECYCLE.md: справочник по каждому статусу
  (когда наступает / что значит / какой переход), диаграмма, зарезервированный ACCEPTED.
2026-06-04 13:06:58 +03:00
..
2026-05-25 14:23:52 +03:00
2026-05-27 17:09:47 +03:00
2026-05-25 14:23:52 +03:00
2026-05-25 14:23:52 +03:00
2026-05-25 14:23:52 +03:00

Spacecraft Planning Service

Сервис планирования наблюдений космических аппаратов.

Сервис получает данные о доступных пунктах наблюдения и окнах наблюдения, строит непрерывную цепочку планов для каждого космического аппарата и отправляет уведомления перед началом каждого плана.


Основные возможности

Сервис выполняет следующие функции:

  • хранит планы космических аппаратов
  • строит непрерывную цепочку планов
  • принимает обновления пунктов наблюдения
  • пересчитывает планы при обновлении данных
  • отправляет Kafka уведомления перед началом плана
  • предоставляет REST API для чтения планов

Основные сущности

Plan

План космического аппарата.

Содержит:

  • spacecraftId
  • startTime
  • endTime
  • insertionPointId

SpacecraftPoints

Набор входных данных по одному космическому аппарату.

Содержит:

  • spacecraftId
  • список пунктов наблюдения

InsertionPoint

Пункт закладки.

Содержит:

  • pointId
  • список окон наблюдения

ObservationWindow

Окно наблюдения космического аппарата.

Содержит:

  • startTime
  • endTime
  • elevationAngle

Алгоритм построения планов

Алгоритм MVP:

  1. Все observationWindow.startTime считаются кандидатами на старт плана.
  2. Для текущего старта ищется следующий старт: