From cac6db74a7e12dce3696f1bf741b88420abdaa52 Mon Sep 17 00:00:00 2001 From: nutcas3 Date: Sat, 2 May 2026 05:09:20 +0300 Subject: [PATCH] feat: Add ID generation utilities with rule ID, event ID, and random string generators - Add GenerateRuleID function using nanosecond timestamp - Add GetCurrentTime helper returning current time - Add GenerateEventID function with "evt_" prefix and 16-character random string - Add GenerateRandomString function with alphanumeric charset --- .../carrier-connector/internal/id/generate.go | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 apps/carrier-connector/internal/id/generate.go diff --git a/apps/carrier-connector/internal/id/generate.go b/apps/carrier-connector/internal/id/generate.go new file mode 100644 index 0000000..a819240 --- /dev/null +++ b/apps/carrier-connector/internal/id/generate.go @@ -0,0 +1,31 @@ +package id + +import ( + "fmt" + "time" +) + + +func GenerateRuleID() string { + return fmt.Sprintf("rule_%d", GetCurrentTime().UnixNano()) +} + +// GetCurrentTime returns the current time +func GetCurrentTime() time.Time { + return time.Now() +} + +func GenerateEventID() string { + // Generate unique event ID (implementation depends on your ID generation strategy) + return "evt_" + GenerateRandomString(16) +} + +func GenerateRandomString(length int) string { + // Generate random string (implementation depends on your random string generation) + const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + b := make([]byte, length) + for i := range b { + b[i] = charset[i%len(charset)] + } + return string(b) +}