package k8s

import (
	"encoding/json"

	"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/serialization"
)

// Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions.
//
// In order to serialize with indent make sure to follow these guidelines:
//   - First argument -> prefix
//   - Second argument -> indent
func (lkc ListK8SClusters) Serialize(params ...string) (serialization.Serialized, error) {
	if len(lkc.Data) == 0 {
		return []byte{}, nil
	}

	if len(params) > 1 {
		prefix := params[0]
		indent := params[1]

		return json.MarshalIndent(lkc, prefix, indent)
	}

	return json.Marshal(lkc)
}

// Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions.
//
// In order to serialize with indent make sure to follow these guidelines:
//   - First argument -> prefix
//   - Second argument -> indent
func (ikc ItemK8SCluster) Serialize(params ...string) (serialization.Serialized, error) {
	if len(params) > 1 {
		prefix := params[0]
		indent := params[1]

		return json.MarshalIndent(ikc, prefix, indent)
	}

	return json.Marshal(ikc)
}
