punchnet-macos/punchnet/Views/Network/NetworkState.swift

90 lines
3.3 KiB
Swift

//
// NetworkState.swift
// punchnet
//
// Created by on 2026/1/16.
//
import Foundation
import Observation
@Observable
class NetworkState {
//
enum ConnectState {
case waitAuth
case connected
case disconnected
}
//
enum ShowMode {
case resource
case device
}
struct Resource {
var id: Int
var status: Int
var name: String
var schema: String
}
struct Device: Equatable, Hashable {
var id: Int
var status: Int
var name: String
var ipv4: String
var ipv6: String
var system: String
var resources: [Resource]
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.id == rhs.id
}
}
struct NetworkModel {
var name: String
}
var connectState: ConnectState = .connected
var model: NetworkModel = .init(name: "123@abc.com的网络")
var showModel: ShowMode = .device
var resources: [Resource] = [
.init(id: 1, status: 1, name: "OA", schema: "http://100.92.108.1:8080"),
.init(id: 2, status: 0, name: "数据资源", schema: "http://100.92.108.1:8080"),
.init(id: 3, status: 1, name: "OA", schema: "http://100.92.108.1:8080"),
.init(id: 4, status: 0, name: "TEST", schema: "http://100.92.108.1:8080"),
.init(id: 10, status: 1, name: "YES", schema: "http://100.92.108.1:8080"),
.init(id: 11, status: 0, name: "DEBUG", schema: "http://100.92.108.1:8080"),
]
var devices: [Device] = [
]
init() {
self.devices = [
.init(id: 1, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 2, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 3, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 4, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 5, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 15, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 25, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 35, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 45, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
.init(id: 55, status: 1, name: "阿里云1", ipv4: "192.168.1.1", ipv6: "fa9d.fa9d.fa9d.fa9d", system: "MacOS 12", resources: self.resources),
]
}
}