generated from dcsil/Team-Repo-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Add UserStreak table: { userId, currentStreak, longestStreak, lastCompletionDate, updatedAt }.
Logic:
On module completion, call /api/streak/increment:
If completedAt is the user’s local today and lastCompletionDate is yesterday → currentStreak++.
If lastCompletionDate is today → no double count.
If gap > 1 day → reset currentStreak = 1.
Update longestStreak = max(longestStreak, currentStreak), set lastCompletionDate = today.
Add unit tests: multi-completions same day, DST change, timezone mismatch, gap reset, longest update.
Acceptance criteria: Given seeded users, API updates streak exactly once per day; edge-case tests pass; returns { currentStreak, longestStreak }.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request