import Foundation // MARK: - 数据模型 struct MaterialRequest: Codable { let fileId: String let previewFileId: String enum CodingKeys: String, CodingKey { case fileId = "file_id" case previewFileId = "preview_file_id" } } struct AddMaterialResponse: Codable { let code: Int let data: [String]? } // MARK: - 素材上传工具类 class MaterialUpload { static let shared = MaterialUpload() private init() {} /// 添加素材到服务器 /// - Parameters: /// - fileId: 文件ID /// - previewFileId: 预览文件ID /// - completion: 完成回调,返回结果ID数组或错误 func addMaterial( fileId: String, previewFileId: String, completion: @escaping (Result<[String]?, Error>) -> Void ) { // 创建请求数据 let materials: [[String: String]] = [[ "file_id": fileId, "preview_file_id": previewFileId ]] // 调试信息:检查参数是否为有效的JSON对象 print("🔍 准备发送的参数: \(materials)") // 使用NetworkService发送请求 NetworkService.shared.post( path: "/material", parameters: materials, completion: { (result: Result) in DispatchQueue.main.async { switch result { case .success(let response): if response.code == 0 { completion(.success(response.data)) } else { completion(.failure(NetworkError.serverError("服务器返回错误码: \(response.code)"))) } case .failure(let error): print("❌ 素材上传失败: \(error.localizedDescription)") completion(.failure(error)) } } } ) } }