package models

// CPU is a struct that represents a CPU
type CPU struct {
	Model        string  `bson:"model,omitempty" json:"model,omitempty"`
	FrequencyGhz float64 `bson:"frequency,omitempty" json:"frequency,omitempty"`
	Cores        int     `bson:"cores,omitempty" json:"cores,omitempty"`
	Architecture string  `bson:"architecture,omitempty" json:"architecture,omitempty"`
}

type RAM struct {
	SizeGb float64 `bson:"size,omitempty" json:"size,omitempty" description:"Units in MB"`
	Ecc    bool    `bson:"ecc" json:"ecc" default:"true"`
}

type GPU struct {
	Model    string         `bson:"model,omitempty" json:"model,omitempty"`
	MemoryGb float64        `bson:"memory,omitempty" json:"memory,omitempty" description:"Units in MB"`
	Cores    map[string]int `bson:"cores,omitempty" json:"cores,omitempty"`
}
