package models

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

type ListBasicServicesDelModel struct {
	//optional fields
	AccountID types.Int64    `tfsdk:"account_id"`
	RGID      types.Int64    `tfsdk:"rg_id"`
	SortBy    types.String   `tfsdk:"sort_by"`
	Page      types.Int64    `tfsdk:"page"`
	Size      types.Int64    `tfsdk:"size"`
	Timeouts  timeouts.Value `tfsdk:"timeouts"`

	//computed fields
	Data       []ItemBasicServiceDelModel `tfsdk:"items"`
	EntryCount types.Int64                `tfsdk:"entry_count"`
}

type ItemBasicServiceDelModel struct {
	AccountID     types.Int64  `tfsdk:"account_id"`
	AccountName   types.String `tfsdk:"account_name"`
	BaseDomain    types.String `tfsdk:"base_domain"`
	CreatedBy     types.String `tfsdk:"created_by"`
	CreatedTime   types.Int64  `tfsdk:"created_time"`
	DeletedBy     types.String `tfsdk:"deleted_by"`
	DeletedTime   types.Int64  `tfsdk:"deleted_time"`
	GID           types.Int64  `tfsdk:"gid"`
	Groups        []uint64     `tfsdk:"groups"`
	GUID          types.Int64  `tfsdk:"guid"`
	ID            types.Int64  `tfsdk:"service_id"`
	Name          types.String `tfsdk:"service_name"`
	ParentSrvID   types.Int64  `tfsdk:"parent_srv_id"`
	ParentSrvType types.String `tfsdk:"parent_srv_type"`
	RGID          types.Int64  `tfsdk:"rg_id"`
	RGName        types.String `tfsdk:"rg_name"`
	SSHUser       types.String `tfsdk:"ssh_user"`
	Status        types.String `tfsdk:"status"`
	TechStatus    types.String `tfsdk:"tech_status"`
	UpdatedBy     types.String `tfsdk:"updated_by"`
	UpdatedTime   types.Int64  `tfsdk:"updated_time"`
	UserManaged   types.Bool   `tfsdk:"user_managed"`
}
