feat: add AI retouch and album preview actions

This commit is contained in:
2026-08-10 16:00:32 +08:00
parent 24fa66281c
commit 439edf827c
14 changed files with 2110 additions and 118 deletions
@@ -0,0 +1,39 @@
//
// 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("关联图片刷新接口待接入")
}
}