package common

import (
	"fmt"
	"strings"
)

func FileNodeID(path string) string {
	return "file:" + path
}

func SymbolNodeID(filePath, name string) string {
	return "symbol:" + filePath + "#" + name
}

func ImportNodeID(importPath string) string {
	return "import:" + importPath
}

func RouteNodeID(filePath, route string) string {
	return "route:" + filePath + "#" + route
}

func ComponentNodeID(filePath, name string) string {
	return "component:" + filePath + "#" + name
}

func ChunkID(symbolID string) string {
	return strings.ReplaceAll(symbolID, ":", "_")
}

func EdgeID(filePath, kind, sourceID, targetID string) string {
	return fmt.Sprintf("edge:%s#%s#%s#%s", filePath, kind, sourceID, targetID)
}
