package formatter import ( "encoding/json" "fmt" "git.db.org.ai/dborg/internal/models" "strings" ) func FormatAccountStats(stats *models.AccountStatsResponse, jsonOutput bool) (string, error) { if jsonOutput { data, err := json.Marshal(stats) if err != nil { return "", fmt.Errorf("failed to marshal account stats: %w", err) } return string(data), nil } var output strings.Builder if stats.Account != nil { output.WriteString("Account Information:\n") output.WriteString(fmt.Sprintf(" Name: %s\n", stats.Account.Name)) output.WriteString(fmt.Sprintf(" API Key: %s\n", stats.Account.APIKey)) output.WriteString(fmt.Sprintf(" Credits: %d\n", stats.Account.Credits)) output.WriteString(fmt.Sprintf(" Unlimited: %t\n", stats.Account.Unlimited)) output.WriteString(fmt.Sprintf(" Premium: %t\n", stats.Account.IsPremium)) output.WriteString(fmt.Sprintf(" Admin: %t\n", stats.Account.IsAdmin)) output.WriteString("\n") } if stats.UsageStats != nil && len(stats.UsageStats) > 0 { output.WriteString("Usage Statistics:\n") for service, count := range stats.UsageStats { output.WriteString(fmt.Sprintf(" %s: %d\n", service, count)) } output.WriteString("\n") } if stats.TotalRequests > 0 { output.WriteString(fmt.Sprintf("Total Requests: %d\n", stats.TotalRequests)) } if stats.CreditsUsed > 0 { output.WriteString(fmt.Sprintf("Credits Used: %d\n", stats.CreditsUsed)) } if stats.Message != "" { output.WriteString(fmt.Sprintf("Message: %s\n", stats.Message)) } return output.String(), nil }