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 UpdateTrending(ctx context.Context, trending []Trending) error }