import Foundation /// Fehler-Typen des Auth- und Transport-Layers. public enum AuthError: Error, LocalizedError, Sendable { case notSignedIn case invalidCredentials case networkFailure(String) case serverError(status: Int, message: String?) case decoding(String) case keychain(OSStatus) case encoding public var errorDescription: String? { switch self { case .notSignedIn: "Nicht angemeldet" case .invalidCredentials: "Ungültige Anmeldedaten" case let .networkFailure(message): "Netzwerkfehler: \(message)" case let .serverError(status, message): "Server-Fehler (\(status))" + (message.map { ": \($0)" } ?? "") case let .decoding(detail): "Antwort konnte nicht gelesen werden: \(detail)" case let .keychain(status): "Keychain-Fehler (OSStatus \(status))" case .encoding: "Datenkodierung fehlgeschlagen" } } }