Перейти к основному содержимому

GetLayoutPanoramaPointFilesQuery

Назначение

Получение файлов панорам (кубмапов) по планировке и пресету. Возвращает список записей «точка — файл» (идентификаторы граней кубмапа) для отображения или скачивания.

Цель

Вернуть клиенту список файлов панорам планировки по заданному пресету с привязкой к точкам съёмки.

Query: GetLayoutPanoramaPointFilesQuery (Входные данные)

ПолеТипОбязательностьОписание
ChessboardPropertyLayoutIdlongОбязательноеИдентификатор планировки
PresetIdGuidОбязательноеИдентификатор пресета
примечание

TenantId берётся из контекста запроса.

Result: GetLayoutPanoramaPointFilesQueryResult (Выходные данные)

ПолеТипОбязательностьОписание
EntriesIReadOnlyCollection<PanoramaPointFileEntry>ОбязательноеСписок записей «точка — файл»

PanoramaPointFileEntry (ResultEntry)

ПолеТипОбязательностьОписание
PointIdGuidОбязательноеИдентификатор точки
FileIdsCubemapFileIds или аналогОбязательноеИдентификаторы файлов граней кубмапа (PositiveX, NegativeX, …)

Валидация

  • Планировка с ChessboardPropertyLayoutId должна существовать. При отсутствии — вернуть пустой список или ошибку.

Бизнес-логика (Handler)

  1. Получить планировку ChessboardProjectPropertyLayoutEntity по ChessboardPropertyLayoutId. Если не найдена — вернуть ошибку или пустой список.
  2. Найти сущности LayoutPanoramaPointFileEntity из таблицы LayoutPanoramaPointFileEntity по PropertyLayoutId и PresetId (и TenantId).
  3. Для каждой записи получить связанную точку (PointId). Сформировать PanoramaPointFileEntry с PointId и данными Image (грани кубмапа).
  4. Сформировать результат с Entries. Вернуть результат клиенту.

Связанные сущности

API

PanoramaPointsController.GetLayoutPanoramaPointFiles — GET layouts/{chessboardPropertyLayoutId}/presets/{presetId}/point-files