package api import ( "net/url" "path" "strings" ) func validHTTPURL(value string) bool { parsed, err := url.ParseRequestURI(strings.TrimSpace(value)) return err == nil && parsed.Host != "" && (parsed.Scheme == "http" || parsed.Scheme == "https") } func validContactURL(value string) bool { value = strings.TrimSpace(value) parsed, err := url.ParseRequestURI(value) if err != nil { return false } if parsed.Scheme == "http" || parsed.Scheme == "https" { return parsed.Host != "" } return parsed.Scheme == "mailto" || parsed.Scheme == "tel" } func validQRCode(value string) bool { value = strings.TrimSpace(value) if strings.HasPrefix(value, "/uploads/") { return !strings.Contains(value, "\\") && path.Clean(value) == value } return validHTTPURL(value) }