Initial scaffold — NASBackup iOS app
Full project scaffold: XcodeGen project.yml, Core models/protocols/errors, SMBService (kishikawakatsumi/SMBClient), SFTPService (Citadel 0.9.2), PhotoLibraryService, LANMonitor, BackupEngine, BackgroundTaskManager, all feature UIs (Login, Connect, Browse, Backup, History, Settings), Shared components and theme. Builds clean with zero errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
42
Core/Models/NASConnection.swift
Normal file
42
Core/Models/NASConnection.swift
Normal file
@@ -0,0 +1,42 @@
|
||||
import Foundation
|
||||
|
||||
enum NASProtocol: String, Codable, CaseIterable {
|
||||
case smb = "SMB"
|
||||
case sftp = "SFTP"
|
||||
|
||||
var defaultPort: Int {
|
||||
switch self {
|
||||
case .smb: return 445
|
||||
case .sftp: return 22
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct NASConnection: Codable, Identifiable, Equatable {
|
||||
var id: UUID = UUID()
|
||||
var host: String
|
||||
var port: Int
|
||||
var nasProtocol: NASProtocol
|
||||
var username: String
|
||||
var password: String
|
||||
var remotePath: String
|
||||
var displayName: String
|
||||
|
||||
init(
|
||||
host: String,
|
||||
port: Int? = nil,
|
||||
nasProtocol: NASProtocol = .smb,
|
||||
username: String,
|
||||
password: String,
|
||||
remotePath: String = "/",
|
||||
displayName: String = ""
|
||||
) {
|
||||
self.host = host
|
||||
self.port = port ?? nasProtocol.defaultPort
|
||||
self.nasProtocol = nasProtocol
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.remotePath = remotePath
|
||||
self.displayName = displayName.isEmpty ? host : displayName
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user