package utils

import "strings"

// SnakeToPascal converts SCREAMING_SNAKE_CASE to PascalCase.
// Only applies to all-uppercase identifiers. Custom fields like
// "Region__c" or "ARR_Amount_USD__c" are returned unchanged.
func SnakeToPascal(s string) string {
	if !strings.Contains(s, "_") {
		return s
	}
	if s != strings.ToUpper(s) {
		return s
	}
	parts := strings.Split(strings.ToLower(s), "_")
	for i := range parts {
		if len(parts[i]) > 0 {
			parts[i] = strings.ToUpper(parts[i][:1]) + parts[i][1:]
		}
	}
	return strings.Join(parts, "")
}

// EscapeSQLString escapes backslashes and single quotes for safe
// interpolation inside a SQL string literal.
func EscapeSQLString(s string) string {
	s = strings.ReplaceAll(s, "\\", "\\\\")
	s = strings.ReplaceAll(s, "'", "''")
	return s
}
