FileUpload Saga
Назначение
Сага подтверждения загрузки файлов панорам в файловое хранилище. Выполняется после сохранения в БД записей с идентификаторами файлов граней кубмапа.
Цель
Согласованно зафиксировать загрузку файлов (шаг CommitUpload) и при сбое выполнить компенсирующие действия.
Триггеры
- AfterFileUploadedNotification — публикуется после успешного сохранения LayoutPanoramaPointFileEntity или PropertyObjectPanoramaPointFileEntity с полем Image (идентификаторы файлов). Payload передаётся в сагу.
Payload: FileUploadSagaPayload
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| ImageFileId | Guid | Обязательное | Идентификатор файла (или контейнер граней — в зависимости от контракта) |
| TenantId | Guid | Обязательное | Идентификатор тенанта |
При нескольких гранях кубмапа payload может содержать набор ImageFileIds или отдельные сообщения на каждый файл — в зависимости от реализации.
Бизнес-логика (шаги)
- CommitUpload — подтверждение загрузки файла в хранилище (вызов внешнего сервиса или маркировка файла как загруженного). При успехе — сага завершена. При ошибке — компенсация (например пометить запись в БД как ошибочную или откатить).
- Дополнительные шаги (если есть): уведомление других систем, инвалидация кэша.