package models

import (
	"github.com/hashicorp/terraform-plugin-framework-timeouts/datasource/timeouts"
	"github.com/hashicorp/terraform-plugin-framework/types"
)

type AccountGetResourceConsumptionListModel struct {
	// request fields
	Timeouts timeouts.Value `tfsdk:"timeouts"`

	// response fields
	Items      []AccountGetResourceConsumptionListItemModel `tfsdk:"items"`
	EntryCount types.Int64                                  `tfsdk:"entry_count"`
}

type AccountGetResourceConsumptionListItemModel struct {
	// response fields
	AccountId types.Int64                   `tfsdk:"account_id"`
	Consumed  *ResourceConsumptionListModel `tfsdk:"consumed"`
	Reserved  *ResourceConsumptionListModel `tfsdk:"reserved"`
}

type ResourceConsumptionListModel struct {
	CPU         types.Int64                       `tfsdk:"cpu"`
	DiskSize    types.Float64                     `tfsdk:"disksize"`
	DiskSizeMax types.Float64                     `tfsdk:"disksizemax"`
	ExtIPs      types.Int64                       `tfsdk:"extips"`
	ExtTraffic  types.Int64                       `tfsdk:"exttraffic"`
	GPU         types.Int64                       `tfsdk:"gpu"`
	RAM         types.Int64                       `tfsdk:"ram"`
	SEPs        []ResourceConsumptionSepListModel `tfsdk:"seps"`
}

type ResourceConsumptionSepListModel struct {
	SepID       types.String  `tfsdk:"sep_id"`
	PoolName    types.String  `tfsdk:"data_name"`
	DiskSize    types.Float64 `tfsdk:"disk_size"`
	DiskSizeMax types.Float64 `tfsdk:"disk_size_max"`
}
