Add Seasonal Events and Limited-Time Puzzle System #113
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🧩 Seasonal Events & Limited-Time Puzzles
This PR introduces a seasonal events system that enables time-limited puzzles, exclusive rewards, and competitive leaderboards. The system is fully automated and designed to scale for future events without refactoring core game logic.
✨ What’s Included
⏰ Event Scheduling
Automated activation and deactivation of events based on start/end dates
Cron-based scheduler ensures no manual intervention
🧩 Event-Specific Puzzles
Puzzles are tied to specific events and categories
Only puzzles from active events are accessible
🔒 Time-Limited Availability
Backend enforcement prevents access to puzzles outside event windows
🎁 Seasonal Rewards
Rewards distributed based on puzzle completion and score thresholds
Supports extensible reward types (points, badges, future NFTs)
🏆 Event Leaderboards
Per-event leaderboard ranking players by score
Top performers can be queried efficiently
📢 Event Announcements
Centralized announcement system for event updates and notifications
📊 Player Event History
Tracks player participation, completed puzzles, scores, and rewards
Enables historical event insights per player
✅ Acceptance Criteria Met
✔ Events start and end automatically
✔ Exclusive puzzles available only during active events
✔ Seasonal rewards distributed correctly
✔ Player event history fully tracked
🛠️ Technical Notes
Built with NestJS and TypeORM
Blockchain-agnostic and ready for future integrations
Clean separation of concerns between events, puzzles, players, and rewards