// // TravelAlbumPreviewActionHandler.swift // suixinkan // import Foundation /// 图片预览页业务操作实现,负责将底部操作转发到旅拍相册服务。 final class TravelAlbumPreviewActionHandler: TravelAlbumPreviewActionHandling { private let api: any TravelAlbumServing /// 使用旅拍相册服务创建操作处理器。 init(api: any TravelAlbumServing) { self.api = api } /// AI 修复仍由相册选择态的模板流程发起。 func requestAIRetouch(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult { .unavailable("请在相册中选择照片后使用AI修图") } /// 调用素材删除接口,仅在服务端确认成功后返回成功结果。 func deleteProject(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult { do { try await api.deleteMaterial(id: originalMaterialId) return .success("删除成功") } catch is CancellationError { return .failure("删除已取消") } catch { let message = error.localizedDescription.trimmingCharacters(in: .whitespacesAndNewlines) return .failure(message.isEmpty ? "删除失败" : message) } } /// 刷新关联结果图接口尚未提供。 func refreshProject(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult { .unavailable("关联图片刷新接口待接入") } }