package models

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

type DataSourceVINSListDeletedModel struct {
	// request fields
	ByID      types.Int64    `tfsdk:"by_id"`
	Name      types.String   `tfsdk:"name"`
	AccountID types.Int64    `tfsdk:"account_id"`
	RGID      types.Int64    `tfsdk:"rg_id"`
	ExtIP     types.String   `tfsdk:"ext_ip"`
	Page      types.Int64    `tfsdk:"page"`
	SortBy    types.String   `tfsdk:"sort_by"`
	Size      types.Int64    `tfsdk:"size"`
	Timeouts  timeouts.Value `tfsdk:"timeouts"`

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

type ItemVinsDeletedModel struct {
	AccountID          types.Int64  `tfsdk:"account_id"`
	AccountName        types.String `tfsdk:"account_name"`
	CreatedBy          types.String `tfsdk:"created_by"`
	CreatedTime        types.Int64  `tfsdk:"created_time"`
	DefaultGW          types.String `tfsdk:"default_gw"`
	DefaultQOS         types.Object `tfsdk:"default_qos"`
	DeletedBy          types.String `tfsdk:"deleted_by"`
	DeletedTime        types.Int64  `tfsdk:"deleted_time"`
	Description        types.String `tfsdk:"description"`
	ExternalIP         types.String `tfsdk:"external_ip"`
	GID                types.Int64  `tfsdk:"gid"`
	GUID               types.Int64  `tfsdk:"guid"`
	ID                 types.Int64  `tfsdk:"vins_id"`
	LockStatus         types.String `tfsdk:"lock_status"`
	ManagerID          types.Int64  `tfsdk:"manager_id"`
	ManagerType        types.String `tfsdk:"manager_type"`
	Milestones         types.Int64  `tfsdk:"milestones"`
	Name               types.String `tfsdk:"name"`
	Netmask            types.Int64  `tfsdk:"netmask"`
	Network            types.String `tfsdk:"network"`
	PreReservationsNum types.Int64  `tfsdk:"pre_reservations_num"`
	PriVNFDevID        types.Int64  `tfsdk:"pri_vnf_dev_id"`
	Redundant          types.Bool   `tfsdk:"redundant"`
	RGID               types.Int64  `tfsdk:"rg_id"`
	RGName             types.String `tfsdk:"rg_name"`
	SecVNFDefID        types.Int64  `tfsdk:"sec_vnf_dev_id"`
	Status             types.String `tfsdk:"status"`
	UpdatedBy          types.String `tfsdk:"updated_by"`
	UpdatedTime        types.Int64  `tfsdk:"updated_time"`
	UserManaged        types.Bool   `tfsdk:"user_managed"`
	VNFs               types.Object `tfsdk:"vnfs"`
	VXLANID            types.Int64  `tfsdk:"vxlan_id"`
}
