package analytics import ( "context" "tercul/internal/domain" ) type Service interface { IncrementWorkViews(ctx context.Context, workID uint) error IncrementWorkLikes(ctx context.Context, workID uint) error IncrementWorkComments(ctx context.Context, workID uint) error IncrementWorkBookmarks(ctx context.Context, workID uint) error IncrementWorkShares(ctx context.Context, workID uint) error IncrementWorkTranslationCount(ctx context.Context, workID uint) error IncrementTranslationViews(ctx context.Context, translationID uint) error IncrementTranslationLikes(ctx context.Context, translationID uint) error IncrementTranslationComments(ctx context.Context, translationID uint) error IncrementTranslationShares(ctx context.Context, translationID uint) error GetOrCreateWorkStats(ctx context.Context, workID uint) (*domain.WorkStats, error) GetOrCreateTranslationStats(ctx context.Context, translationID uint) (*domain.TranslationStats, error) } type service struct { repo domain.AnalyticsRepository } func NewService(repo domain.AnalyticsRepository) Service { return &service{repo: repo} } func (s *service) IncrementWorkViews(ctx context.Context, workID uint) error { return s.repo.IncrementWorkViews(ctx, workID) } func (s *service) IncrementWorkLikes(ctx context.Context, workID uint) error { return s.repo.IncrementWorkLikes(ctx, workID) } func (s *service) IncrementWorkComments(ctx context.Context, workID uint) error { return s.repo.IncrementWorkComments(ctx, workID) } func (s *service) IncrementWorkBookmarks(ctx context.Context, workID uint) error { return s.repo.IncrementWorkBookmarks(ctx, workID) } func (s *service) IncrementWorkShares(ctx context.Context, workID uint) error { return s.repo.IncrementWorkShares(ctx, workID) } func (s *service) IncrementWorkTranslationCount(ctx context.Context, workID uint) error { return s.repo.IncrementWorkTranslationCount(ctx, workID) } func (s *service) IncrementTranslationViews(ctx context.Context, translationID uint) error { return s.repo.IncrementTranslationViews(ctx, translationID) } func (s *service) IncrementTranslationLikes(ctx context.Context, translationID uint) error { return s.repo.IncrementTranslationLikes(ctx, translationID) } func (s *service) IncrementTranslationComments(ctx context.Context, translationID uint) error { return s.repo.IncrementTranslationComments(ctx, translationID) } func (s *service) IncrementTranslationShares(ctx context.Context, translationID uint) error { return s.repo.IncrementTranslationShares(ctx, translationID) } func (s *service) GetOrCreateWorkStats(ctx context.Context, workID uint) (*domain.WorkStats, error) { return s.repo.GetOrCreateWorkStats(ctx, workID) } func (s *service) GetOrCreateTranslationStats(ctx context.Context, translationID uint) (*domain.TranslationStats, error) { return s.repo.GetOrCreateTranslationStats(ctx, translationID) }