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

GetPropertyObjectPanoramaPointsWithFilesQuery

Назначение

Получение точек съёмки панорам по объекту недвижимости с привязкой файлов по пресету. Объединяет данные о точках и файлах панорам для объекта в одном ответе.

Цель

Вернуть клиенту список точек объекта с данными о файлах панорам (кубмап) по заданному пресету для отображения на плане и в просмотрщике.

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

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

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

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

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

PanoramaPointWithFilesEntry (ResultEntry)

ПолеТипОбязательностьОписание
PointIdGuidОбязательноеИдентификатор точки
NamestringОбязательноеНазвание точки
PointXdoubleОбязательноеКоордината X
PointYdoubleОбязательноеКоордината Y
AngledoubleОбязательноеУгол
PointTypePanoramaShootingPointTypeОбязательноеТип точки
ImageFileIdsCubemapFileIds или nullNullableИдентификаторы файлов граней кубмапа по пресету (если есть)

Валидация

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

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

  1. Получить сущность ChessboardProjectPropertyObjectEntity по ChessboardPropertyObjectId. Если не найдена — вернуть ошибку или пустой список.
  2. Получить идентификатор планировки (PropertyLayoutId) объекта. Найти точки PanoramaShootingPointEntity, относящиеся к объекту (по планировке и типу PropertyPoint или по дополнительному условию привязки к объекту).
  3. Получить записи PropertyObjectPanoramaPointFileEntity по PropertyObjectId и PresetId. Сопоставить по PointId с точками.
  4. Сформировать PanoramaPointWithFilesEntry для каждой точки: данные точки + ImageFileIds из соответствующей записи файла (если есть).
  5. Вернуть результат клиенту.

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

API

PanoramaPointsController.GetPropertyObjectPanoramaPointsWithFiles — GET property-objects/{chessboardPropertyObjectId}/presets/{presetId}/points-with-files