package models

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

type DataSourceRGGetResourceConsumptionModel struct {
	// request fields
	RGID     types.Int64    `tfsdk:"rg_id"`
	Timeouts timeouts.Value `tfsdk:"timeouts"`

	// response fields
	Id             types.String         `tfsdk:"id"`
	Consumed       *ResourceModel       `tfsdk:"consumed"`
	Reserved       *ResourceModel       `tfsdk:"reserved"`
	ResourceLimits *ResourceLimitsModel `tfsdk:"resource_limits"`
}

type ResourceModel struct {
	CPU         types.Int64   `tfsdk:"cpu"`
	DiskSize    types.Float64 `tfsdk:"disk_size"`
	DiskSizeMax types.Float64 `tfsdk:"disk_size_max"`
	ExtIPs      types.Int64   `tfsdk:"extips"`
	ExtTraffic  types.Int64   `tfsdk:"exttraffic"`
	GPU         types.Int64   `tfsdk:"gpu"`
	RAM         types.Int64   `tfsdk:"ram"`
	SEPs        []SEPsModel   `tfsdk:"seps"`
}

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