package models

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

type DataSourceAccountDisksListModel struct {
	// required fields
	AccountID types.Int64 `tfsdk:"account_id"`

	// optional fields
	DiskID      types.Int64    `tfsdk:"disk_id"`
	Name        types.String   `tfsdk:"name"`
	DiskMaxSize types.Int64    `tfsdk:"disk_max_size"`
	Type        types.String   `tfsdk:"type"`
	Page        types.Int64    `tfsdk:"page"`
	Size        types.Int64    `tfsdk:"size"`
	Timeouts    timeouts.Value `tfsdk:"timeouts"`
	SortBy      types.String   `tfsdk:"sort_by"`

	// response fields
	Id         types.String    `tfsdk:"id"`
	Items      []ItemDiskModel `tfsdk:"items"`
	EntryCount types.Int64     `tfsdk:"entry_count"`
}

type ItemDiskModel struct {
	DiskID    types.Int64  `tfsdk:"disk_id"`
	DiskName  types.String `tfsdk:"disk_name"`
	Pool      types.String `tfsdk:"pool"`
	SEPID     types.Int64  `tfsdk:"sep_id"`
	Shareable types.Bool   `tfsdk:"shareable"`
	SizeMax   types.Int64  `tfsdk:"size_max"`
	Type      types.String `tfsdk:"type"`
}
