Files
suixinkan_ios_new/suixinkan/Core/CameraTransfer/CameraTransferTask.swift
汉秋 d2fe5d71e4 Add TravelAlbum, ProfileSpace, and wired camera transfer modules.
Introduce travel album entry with Sony PTP tethering pipeline, profile space settings page, home routing updates, Launch Screen storyboard, and related tests/docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 09:41:05 +08:00

57 lines
1.4 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// CameraTransferTask.swift
// suixinkan
//
// Created by Codex on 2026/6/29.
//
import Foundation
///
enum CameraTransferStatus: String, Codable, Equatable {
case pending
case downloading
case downloaded
case uploading
case uploaded
case failed
}
///
struct CameraTransferTask: Identifiable, Equatable, Codable {
let id: UUID
let assetID: String
let filename: String
var localPath: String?
var remoteURL: String?
var status: CameraTransferStatus
var progress: Int
var errorMessage: String?
init(
id: UUID = UUID(),
assetID: String,
filename: String,
localPath: String? = nil,
remoteURL: String? = nil,
status: CameraTransferStatus = .pending,
progress: Int = 0,
errorMessage: String? = nil
) {
self.id = id
self.assetID = assetID
self.filename = filename
self.localPath = localPath
self.remoteURL = remoteURL
self.status = status
self.progress = progress
self.errorMessage = errorMessage
}
/// URL
var localURL: URL? {
guard let localPath, !localPath.isEmpty else { return nil }
return URL(fileURLWithPath: localPath)
}
}