package discovery import "strings" // StableGatewayID composes a stable discovery entry ID from a base prefix and key. func StableGatewayID(prefix string, key string) string { cleanPrefix := strings.ToLower(strings.TrimSpace(prefix)) cleanKey := strings.ToLower(strings.TrimSpace(key)) if cleanKey == "" { cleanKey = "unknown" } if cleanPrefix == "" { return cleanKey } if strings.HasSuffix(cleanPrefix, "_") { return cleanPrefix + cleanKey } return cleanPrefix + "_" + cleanKey } func StableCryptoRailGatewayID(network string) string { return StableGatewayID("crypto_rail_gateway", network) } func StablePaymentGatewayID(rail string) string { return StableGatewayID("payment_gateway", rail) }