package graphql import "context" // resolveWorkContent uses the Work service to fetch preferred content for a work. func (r *queryResolver) resolveWorkContent(ctx context.Context, workID uint, preferredLanguage string) *string { if r.App.Work == nil || r.App.Work.Queries == nil { return nil } work, err := r.App.Work.Queries.GetWorkWithTranslations(ctx, workID) if err != nil || work == nil { return nil } // Find the translation for the preferred language. for _, t := range work.Translations { if t.Language == preferredLanguage && t.Content != "" { return &t.Content } } // If no specific language match, find the original language content. for _, t := range work.Translations { if t.IsOriginalLanguage && t.Content != "" { return &t.Content } } // Fallback to the work's own description if no suitable translation content is found. if work.Description != "" { return &work.Description } return nil }