package formatter import ( "encoding/json" "fmt" "strings" "git.db.org.ai/dborg/internal/models" ) func FormatDNSResults(result *models.DomainResult, asJSON bool) (string, error) { if asJSON { data, err := json.Marshal(result) if err != nil { return "", fmt.Errorf("failed to marshal JSON: %w", err) } return string(data), nil } var sb strings.Builder sb.WriteString("\n") domainColor := result.Domain if result.Status == "ACTIVE" { domainColor = Green(result.Domain) } else if result.Status == "INACTIVE" { domainColor = Red(result.Domain) } else { domainColor = Yellow(result.Domain) } sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Domain:"), Bold(domainColor))) statusIndicator := StatusPending if result.Status == "ACTIVE" { statusIndicator = StatusSuccess } else if result.Status == "INACTIVE" { statusIndicator = StatusError } else { statusIndicator = StatusWarning } sb.WriteString(fmt.Sprintf("%s %s %s\n", Cyan("Status:"), statusIndicator.String(), result.Status)) if result.Title != "" { sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Title:"), result.Title)) } if len(result.Tech) > 0 { sb.WriteString(fmt.Sprintf("%s\n", Cyan("Tech Stack:"))) for _, tech := range result.Tech { sb.WriteString(fmt.Sprintf(" %s %s\n", Dim("•"), Green(tech))) } } return sb.String(), nil }