GetLayoutPanoramaPointFilesQuery
Назначение
Получение файлов панорам (кубмапов) по планировке и пресету. Возвращает список записей «точка — файл» (идентификаторы граней кубмапа) для отображения или скачивания.
Цель
Вернуть клиенту список файлов панорам планировки по заданному пресету с привязкой к точкам съёмки.
Query: GetLayoutPanoramaPointFilesQuery (Входные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| ChessboardPropertyLayoutId | long | Обязательное | Идентификатор планировки |
| PresetId | Guid | Обязательное | Идентификатор пресета |
примечание
TenantId берётся из контекста запроса.
Result: GetLayoutPanoramaPointFilesQueryResult (Выходные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<PanoramaPointFileEntry> | Обязательное | Список записей «точка — файл» |
PanoramaPointFileEntry (ResultEntry)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| PointId | Guid | Обязательное | Идентификатор точки |
| FileIds | CubemapFileIds или аналог | Обязательное | Идентификаторы файлов граней кубмапа (PositiveX, NegativeX, …) |
Валидация
- Планировка с ChessboardPropertyLayoutId должна существовать. При отсутствии — вернуть пустой список или ошибку.
Бизнес-логика (Handler)
- Получить планировку ChessboardProjectPropertyLayoutEntity по ChessboardPropertyLayoutId. Если не найдена — вернуть ошибку или пустой список.
- Найти сущности LayoutPanoramaPointFileEntity из таблицы LayoutPanoramaPointFileEntity по PropertyLayoutId и PresetId (и TenantId).
- Для каждой записи получить связанную точку (PointId). Сформировать PanoramaPointFileEntry с PointId и данными Image (грани кубмапа).
- Сформировать результат с Entries. Вернуть результат клиенту.
Связанные сущности
API
PanoramaPointsController.GetLayoutPanoramaPointFiles — GET layouts/{chessboardPropertyLayoutId}/presets/{presetId}/point-files