package useCases import ( "RenewCMS/internal/domain/author" "RenewCMS/internal/domain/site" ) func siteImageUsage(sites site.Repository) (map[uint32]int, error) { usage := map[uint32]int{} all, err := sites.List() if err != nil { return nil, err } for _, s := range all { if s.DefaultSocialImageID != nil { usage[*s.DefaultSocialImageID]++ } } return usage, nil } func imageUsageCount(sites site.Repository, authors author.Repository, entries *entryMediaScanner) (map[uint32]int, error) { return combinedImageUsage(sites, authors, entries.usageCounts) } func combinedImageUsage(sites site.Repository, authors author.Repository, entryCounts func() (map[uint32]int, error)) (map[uint32]int, error) { usage, err := siteImageUsage(sites) if err != nil { return nil, err } avatars, err := authors.AvatarUsage() if err != nil { return nil, err } for imageID, total := range avatars { usage[imageID] += total } counts, err := entryCounts() if err != nil { return nil, err } for imageID, total := range counts { usage[imageID] += total } return usage, nil }