package models

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

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

	// optional fields
	IncludeDeleted types.Bool     `tfsdk:"include_deleted"`
	ImageID        types.Int64    `tfsdk:"image_id"`
	Name           types.String   `tfsdk:"name"`
	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      []ItemTemplateModel `tfsdk:"items"`
	EntryCount types.Int64         `tfsdk:"entry_count"`
}

type ItemTemplateModel struct {
	UNCPath     types.String `tfsdk:"unc_path"`
	AccountID   types.Int64  `tfsdk:"account_id"`
	Description types.String `tfsdk:"desc"`
	ID          types.Int64  `tfsdk:"template_id"`
	Name        types.String `tfsdk:"template_name"`
	Public      types.Bool   `tfsdk:"public"`
	Size        types.Int64  `tfsdk:"size"`
	Status      types.String `tfsdk:"status"`
	Type        types.String `tfsdk:"type"`
	Username    types.String `tfsdk:"username"`
}
