package integration_reference

import (
	"fmt"
	"strings"
)

// IntegrationReference holds the reference to a particular integration
type IntegrationReference struct {
	ID              int
	IntegrationType string
}

func (ir IntegrationReference) String() string {
	return fmt.Sprintf("%s:%d", ir.IntegrationType, ir.ID)
}

func (ir IntegrationReference) CacheKey(path ...string) string {
	if len(path) == 0 {
		return ir.String()
	}
	return fmt.Sprintf("%s:%s", ir.String(), strings.Join(path, ":"))
}