// Use and distribution licensed under the Apache license version 2.
//
// See the COPYING file in the root project directory for full text.
//

package ghw

import (
	"github.com/StackExchange/wmi"
)

const wqlChassis = "SELECT Caption, Description, Name, Manufacturer, Model, SerialNumber, Tag, TypeDescriptions, Version FROM CIM_Chassis"

type win32Chassis struct {
	Caption          string
	Description      string
	Name             string
	Manufacturer     string
	Model            string
	SerialNumber     string
	Tag              string
	TypeDescriptions []string
	Version          string
}

func (ctx *context) chassisFillInfo(info *ChassisInfo) error {
	// Getting data from WMI
	var win32ChassisDescriptions []win32Chassis
	if err := wmi.Query(wqlChassis, &win32ChassisDescriptions); err != nil {
		return err
	}
	if len(win32ChassisDescriptions) > 0 {
		info.AssetTag = win32ChassisDescriptions[0].Tag
		info.SerialNumber = win32ChassisDescriptions[0].SerialNumber
		info.Type = UNKNOWN // TODO:
		info.TypeDescription = win32ChassisDescriptions[0].Model
		info.Vendor = win32ChassisDescriptions[0].Manufacturer
		info.Version = win32ChassisDescriptions[0].Version
	}
	return nil
}
