Files
dc-observatio/docs/tasks/TASK_routes-drops-carryover.md
T
Дмитрий Соловьев 294b17757d pcp: время — сквозной naive LocalDateTime как локальное настенное время (без UTC)
Отказ от остаточной UTC-семантики: naive LocalDateTime трактуется как
локальное время единой зоны всех сервисов.

Backend (границы внешних систем):
- VisibilityPayloadParser, SyncSpacecraftFromNsiUseCase: ZoneOffset.UTC →
  ZoneId.systemDefault() для проекции внешних Instant/ISO-с-Z в naive.
- тесты границ перевёрнуты на systemDefault (под Europe/Moscow ждут +3).
- чистка UTC-формулировок в DTO-комментариях, мёртвых ссылок на
  docs/standards/DATETIME_UTC.md.

Frontend (pcp-tgu-ops-ui):
- utils/utcTime.ts → utils/localTime.ts: parseLocal/formatLocal*/toLocalIso/
  toLocalInputValue с локальной семантикой (без дописывания Z и timeZone:UTC).
- замена getUTC*/Date.UTC/toISOString-сериализации на локальные аналоги.
- убраны пользовательские подписи «UTC» в редакторе/таймлайне.
- удалён utcTime.guard.test.ts (форсил обратный UTC-инвариант); тест-фикстуры
  сделаны зоно-независимыми. tsc + vitest зелёные под TZ=UTC и TZ=Europe/Moscow.

Включает также прочие незакоммиченные правки рабочего дерева.
2026-06-04 09:50:39 +03:00

2.6 KiB

Следующая задача: маршруты, сбросы и перенос включений между планами

Статус: запланировано (дизайн ещё не начат). Это фиксация намерения, не финальный план.

Следующий блок работ — три связанные темы вокруг содержимого плана (включений) и их съёмочно-сбросовой обвязки:

1. Построение маршрутов

Довести построение маршрутов наблюдения по плану. Сейчас маршруты порождаются в потоке createSatelliteMission (BPMN), где planId == missionId; результат ложится в БД mission-planing. Уточнить: когда и по какому триггеру строятся маршруты для нового/перевыданного плана, и как они привязаны к включениям.

2. Формирование сбросов

Формирование сбросов (DropMode) поверх съёмочных включений (SurveyMode): расчёт окон сброса, привязка к ЗРВ/КПП, согласование времени сброса со временем съёмки. Внутренние времена — naive LocalDateTime (см. сквозную модель без зон).

3. Перенос включений из плана в план

При перевыдаче/версионировании плана переносить уже сформированные включения (съёмки + сбросы) из предыдущего плана в новый — чтобы не терять набранное содержимое цепочки. Определить, что переносится как есть, что пересчитывается, и как это стыкуется с двумя осями версионирования (цепочка ТГУ + контент миссии).

Контекст / связанные места

  • Маршруты и их сохранение: createSatelliteMission, planId == missionId.
  • Сбросы/съёмки: pcp-mission-planing-serviceSurveyMode/DropMode, MissionPlaningService.
  • Версионирование/перевыдача плана — две оси (цепочка ТГУ + контент миссии).
  • Время — сквозной naive LocalDateTime без зоны (после отката UTC-слоя).