package domain import "context" import "time" type AnalyticsRepository interface { IncrementWorkCounter(ctx context.Context, workID uint, field string, value int) error IncrementTranslationCounter(ctx context.Context, translationID uint, field string, value int) error UpdateWorkStats(ctx context.Context, workID uint, stats WorkStats) error UpdateTranslationStats(ctx context.Context, translationID uint, stats TranslationStats) error GetOrCreateWorkStats(ctx context.Context, workID uint) (*WorkStats, error) GetOrCreateTranslationStats(ctx context.Context, translationID uint) (*TranslationStats, error) GetOrCreateUserEngagement(ctx context.Context, userID uint, date time.Time) (*UserEngagement, error) UpdateUserEngagement(ctx context.Context, userEngagement *UserEngagement) error UpdateTrendingWorks(ctx context.Context, timePeriod string, trending []*Trending) error GetTrendingWorks(ctx context.Context, timePeriod string, limit int) ([]*Work, error) }