package metadata

type ScsiAttributeMetadata struct {
	ID          string `json:"-"`
	DisplayName string `json:"-"`
	Ideal       string `json:"ideal"`
	Critical    bool   `json:"critical"`
	Description string `json:"description"`

	Transform          func(int, int64, string) int64 `json:"-"` //this should be a method to extract/tranform the normalized or raw data to a chartable format. Str
	TransformValueUnit string                         `json:"transform_value_unit,omitempty"`
	DisplayType        string                         `json:"display_type"` //"raw" "normalized" or "transformed"
}

var ScsiMetadata = map[string]ScsiAttributeMetadata{
	"scsi_grown_defect_list": {
		ID:          "scsi_grown_defect_list",
		DisplayName: "Grown Defect List",
		DisplayType: "",
		Ideal:       "low",
		Critical:    true,
		Description: "",
	},
	"read.errors_corrected_by_eccfast": {
		ID:          "read.errors_corrected_by_eccfast",
		DisplayName: "Read Errors Corrected by ECC Fast",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"read.errors_corrected_by_eccdelayed": {
		ID:          "read.errors_corrected_by_eccdelayed",
		DisplayName: "Read Errors Corrected by ECC Delayed",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"read.errors_corrected_by_rereads_rewrites": {
		ID:          "read.errors_corrected_by_rereads_rewrites",
		DisplayName: "Read Errors Corrected by ReReads/ReWrites",
		DisplayType: "",
		Ideal:       "low",
		Critical:    true,
		Description: "",
	},
	"read.total_errors_corrected": {
		ID:          "read.total_errors_corrected",
		DisplayName: "Read Total Errors Corrected",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"read.correction_algorithm_invocations": {
		ID:          "read.correction_algorithm_invocations",
		DisplayName: "Read Correction Algorithm Invocations",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"read.total_uncorrected_errors": {
		ID:          "read.total_uncorrected_errors",
		DisplayName: "Read Total Uncorrected Errors",
		DisplayType: "",
		Ideal:       "low",
		Critical:    true,
		Description: "",
	},
	"write.errors_corrected_by_eccfast": {
		ID:          "write.errors_corrected_by_eccfast",
		DisplayName: "Write Errors Corrected by ECC Fast",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"write.errors_corrected_by_eccdelayed": {
		ID:          "write.errors_corrected_by_eccdelayed",
		DisplayName: "Write Errors Corrected by ECC Delayed",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"write.errors_corrected_by_rereads_rewrites": {
		ID:          "write.errors_corrected_by_rereads_rewrites",
		DisplayName: "Write Errors Corrected by ReReads/ReWrites",
		DisplayType: "",
		Ideal:       "low",
		Critical:    true,
		Description: "",
	},
	"write.total_errors_corrected": {
		ID:          "write.total_errors_corrected",
		DisplayName: "Write Total Errors Corrected",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"write.correction_algorithm_invocations": {
		ID:          "write.correction_algorithm_invocations",
		DisplayName: "Write Correction Algorithm Invocations",
		DisplayType: "",
		Ideal:       "",
		Critical:    false,
		Description: "",
	},
	"write.total_uncorrected_errors": {
		ID:          "write.total_uncorrected_errors",
		DisplayName: "Write Total Uncorrected Errors",
		DisplayType: "",
		Ideal:       "low",
		Critical:    true,
		Description: "",
	},
}
