package models

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

type ItemVFPoolModel struct {
	//required and optional fields
	VFPoolID types.Int64    `tfsdk:"vfpool_id"`
	Timeouts timeouts.Value `tfsdk:"timeouts"`

	// computed fields
	AccountAccess types.List   `tfsdk:"account_access"`
	CreatedTime   types.Int64  `tfsdk:"created_time"`
	Description   types.String `tfsdk:"description"`
	GID           types.Int64  `tfsdk:"gid"`
	GUID          types.Int64  `tfsdk:"guid"`
	Name          types.String `tfsdk:"name"`
	RGAccess      types.List   `tfsdk:"rg_access"`
	Status        types.String `tfsdk:"status"`
	UpdatedTime   types.Int64  `tfsdk:"updated_time"`
	VFS           []VFSModel   `tfsdk:"vfs"`
}

type VFSModel struct {
	NodeID types.Int64   `tfsdk:"node_id"`
	VFList []VFItemModel `tfsdk:"vf_list"`
}

type VFItemModel struct {
	NicName types.String       `tfsdk:"nic_name"`
	VFSInfo []VFSInfoItemModel `tfsdk:"vfs_info"`
}

type VFSInfoItemModel struct {
	ID      types.Int64 `tfsdk:"id"`
	Claimed types.Bool  `tfsdk:"claimed"`
	VMID    types.Int64 `tfsdk:"vm_id"`
}
