Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions data/migrations/0014_narrow_wind_dancer.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DROP INDEX `event_winner_event_id_room_index_user_id_unique`;--> statement-breakpoint
DELETE FROM `event_winner` WHERE `id` NOT IN (SELECT MIN(`id`) FROM `event_winner` GROUP BY `event_id`, `user_id`);--> statement-breakpoint
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve distinct winner roles when deduping rows

When an existing event has the same user declared in multiple rooms under different role_id values (possible if the event's winner role was changed between room declarations), this deletes all but the lowest-id row for that user. clearEventWinners later revokes only the roleId values still present in event_winner (see src/utils/winner.utils.ts lines 64-70), so the discarded role grants have no remaining cleanup record and can be left on the member after the next clear/open cycle. Consider detecting conflicting role_ids before deduping or otherwise preserving/removing those extra role grants instead of silently dropping the rows.

Useful? React with 👍 / 👎.

CREATE UNIQUE INDEX `event_winner_event_id_user_id_unique` ON `event_winner` (`event_id`,`user_id`);--> statement-breakpoint
ALTER TABLE `event_winner` DROP COLUMN `room_index`;