import Foundation enum ChatTarget: Hashable { case channel(Int, name: String) case dm(nodeId: String, name: String) var title: String { switch self { case .channel(_, let name): return "#\(name)" case .dm(_, let name): return name } } var navigationKey: String { switch self { case .channel(let id, _): return "ch-\(id)" case .dm(let id, _): return "dm-\(id)" } } }