package service import ( "crypto/rand" "encoding/base64" "strings" ) func normalizePage(page, size int) (int, int) { if page < 1 { page = 1 } if size < 1 || size > 100 { size = 20 } return page, size } func randomToken(prefix string, byteCount int) (string, error) { raw := make([]byte, byteCount) if _, err := rand.Read(raw); err != nil { return "", err } return prefix + base64.RawURLEncoding.EncodeToString(raw), nil } func scopeList(scopes string) []string { set := ParseScopes(scopes) items := make([]string, 0, len(set)) for scope := range set { items = append(items, scope) } return items } func fallbackName(value, fallback string) string { if strings.TrimSpace(value) != "" { return strings.TrimSpace(value) } return fallback }