Initial commit

This commit is contained in:
lowcarbdev
2025-11-11 16:40:10 -07:00
commit b79e599640
57 changed files with 11811 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
package internal
import "strings"
// normalizePhoneNumber removes all non-numeric characters except leading +
// and standardizes US phone numbers to include the +1 country code
// This prevents duplicate conversations due to different phone number formatting
func normalizePhoneNumber(phoneNumber string) string {
if phoneNumber == "" {
return ""
}
// Check if it starts with +
hasPlus := strings.HasPrefix(phoneNumber, "+")
// Remove all non-numeric characters
var result strings.Builder
for _, ch := range phoneNumber {
if ch >= '0' && ch <= '9' {
result.WriteRune(ch)
}
}
normalized := result.String()
if normalized == "" {
return ""
}
// Standardize US phone numbers
if !hasPlus {
// 10 digits without country code - add +1 (US number)
if len(normalized) == 10 {
return "+1" + normalized
}
// 11 digits starting with 1 - add + (US number with 1 prefix)
if len(normalized) == 11 && normalized[0] == '1' {
return "+" + normalized
}
// Other lengths without + - keep as is (might be partial/invalid)
return normalized
}
// Already has +, keep it
return "+" + normalized
}