package facts

// ClassFacts captures driftable state collected by metis-sentinel.
type ClassFacts struct {
	ClassName    string            `json:"class_name"`
	Kernel       string            `json:"kernel,omitempty"`
	K3sVersion   string            `json:"k3s_version,omitempty"`
	Containerd   string            `json:"containerd,omitempty"`
	Packages     map[string]string `json:"packages,omitempty"`     // name -> version
	DropIns      map[string]string `json:"dropins,omitempty"`      // path -> content
	Sysctl       map[string]string `json:"sysctl,omitempty"`       // key -> value
	CGroupConfig map[string]string `json:"cgroup_config,omitempty"`// key -> value
	Notes        string            `json:"notes,omitempty"`
}

// NodeFacts captures per-node data (e.g., disk UUIDs) to verify drift.
type NodeFacts struct {
	Hostname string            `json:"hostname"`
	Disks    map[string]string `json:"disks,omitempty"` // mount -> UUID
	Notes    string            `json:"notes,omitempty"`
}
