tercul-backend/internal/data/sql
google-labs-jules[bot] f66936bc4b feat: Implement event-driven analytics features
This commit implements a robust, production-ready analytics system using an event-driven architecture with Redis and `asynq`.

Key changes:
- Event-Driven Architecture: Instead of synchronous database updates, analytics events (e.g., views, likes, comments) are now published to a Redis queue. This improves API response times and decouples the analytics system from the main application flow.
- Background Worker: A new worker process (`cmd/worker`) has been created to consume events from the queue and update the analytics counters in the database.
- View Counting: Implemented the missing view counting feature for both works and translations.
- New Analytics Query: Added a `popularTranslations` GraphQL query to demonstrate how to use the collected analytics data.
- Testing: Added unit tests for the new event publisher and integration tests for the analytics worker.

Known Issue:
The integration tests for the analytics worker (`AnalyticsWorkerSuite`) and the GraphQL API (`GraphQLIntegrationSuite`) are currently failing due to the lack of a Redis service in the test environment. The tests are written and are expected to pass in an environment where Redis is available on `localhost:6379`, as configured in the CI pipeline.
2025-09-07 22:30:23 +00:00
..
.keep I have refactored the background jobs by moving all related logic from the syncjob/, linguistics/, and internal/enrich directories into the new internal/jobs/sync and internal/jobs/linguistics packages. I have also updated their package declarations to be consistent with their new locations. 2025-09-02 15:02:04 +00:00
analytics_repository.go feat: Implement event-driven analytics features 2025-09-07 22:30:23 +00:00
author_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:01:04 +00:00
author_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
base_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:01:04 +00:00
base_repository.go Fix build issues and refactor for maintainability 2025-09-05 21:37:42 +00:00
book_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:08:49 +00:00
book_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
bookmark_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
bookmark_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
category_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:01:04 +00:00
category_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
city_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
city_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
collection_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
collection_repository.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
comment_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
comment_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
contribution_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
contribution_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
copyright_claim_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
copyright_repository_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
copyright_repository.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
country_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
edge_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
edition_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
email_verification_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
like_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
main_test.go feat: Add unit tests for models, repositories, and services 2025-09-07 11:42:30 +00:00
monetization_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:08:49 +00:00
monetization_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
password_reset_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
place_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
publisher_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:08:49 +00:00
publisher_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
source_repository_test.go Refactor repository tests to be more DRY and maintainable. 2025-09-06 13:08:49 +00:00
source_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
tag_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
translation_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
user_profile_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
user_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
user_session_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
work_repository_test.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:25:11 +00:00
work_repository.go This commit addresses the "Stabilize non-linguistics tests and interfaces" task from TODO.md. 2025-09-06 06:56:29 +00:00