package system

import "context"

type ServerDiskInfo struct {
	MountPoint  string
	UsedMB      uint64
	UsedGB      uint64
	TotalMB     uint64
	TotalGB     uint64
	UsedPercent int
}

type ServerInfo struct {
	GOOS         string
	NumCPU       int
	Compiler     string
	GoVersion    string
	NumGoroutine int
	CPUs         []float64
	Cores        int
	UsedMB       uint64
	TotalMB      uint64
	UsedPercent  int
	Disk         []ServerDiskInfo
}

type SystemInfoProvider interface {
	Collect(context.Context, []string) (*ServerInfo, error)
}
