package models

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

type ListPCIDevicesModel struct {
	// request fields
	ComputeID types.Int64    `tfsdk:"compute_id"`
	RGID      types.Int64    `tfsdk:"rg_id"`
	DevID     types.Int64    `tfsdk:"device_id"`
	Name      types.String   `tfsdk:"name"`
	Status    types.String   `tfsdk:"status"`
	SortBy    types.String   `tfsdk:"sort_by"`
	Page      types.Int64    `tfsdk:"page"`
	Size      types.Int64    `tfsdk:"size"`
	Timeouts  timeouts.Value `tfsdk:"timeouts"`
	// response fields
	Id         types.String    `tfsdk:"id"`
	Items      []ItemPCIDevice `tfsdk:"items"`
	EntryCount types.Int64     `tfsdk:"entry_count"`
}

type ItemPCIDevice struct {
	ComputeID   types.Int64  `tfsdk:"compute_id"`
	Description types.String `tfsdk:"desc"`
	GUID        types.Int64  `tfsdk:"guid"`
	HwPath      types.String `tfsdk:"hwpath"`
	ID          types.Int64  `tfsdk:"device_id"`
	Name        types.String `tfsdk:"name"`
	RGID        types.Int64  `tfsdk:"rg_id"`
	StackID     types.Int64  `tfsdk:"stack_id"`
	Status      types.String `tfsdk:"status"`
	SystemName  types.String `tfsdk:"system_name"`
}
