feat(dashboard): add unread count for match chats

Track unread messages in match chats and display count badge:
- Schema: Add user1LastReadAt/user2LastReadAt to Match model
- Backend: Calculate unreadCount in dashboard API
- Socket: Update lastReadAt when user joins match room
- Frontend: Display red badge with unread count on match avatar
This commit is contained in:
Radosław Gierwiało
2025-11-21 21:46:00 +01:00
parent 2c0620db6a
commit 78280ca8d8
6 changed files with 121 additions and 15 deletions

View File

@@ -134,14 +134,16 @@ model Message {
// Matches (pairs of users for collaboration)
model Match {
id Int @id @default(autoincrement())
slug String @unique @default(cuid()) @db.VarChar(50)
user1Id Int @map("user1_id")
user2Id Int @map("user2_id")
eventId Int @map("event_id")
roomId Int? @map("room_id")
status String @default("pending") @db.VarChar(20) // 'pending', 'accepted', 'completed'
createdAt DateTime @default(now()) @map("created_at")
id Int @id @default(autoincrement())
slug String @unique @default(cuid()) @db.VarChar(50)
user1Id Int @map("user1_id")
user2Id Int @map("user2_id")
eventId Int @map("event_id")
roomId Int? @map("room_id")
status String @default("pending") @db.VarChar(20) // 'pending', 'accepted', 'completed'
createdAt DateTime @default(now()) @map("created_at")
user1LastReadAt DateTime? @map("user1_last_read_at")
user2LastReadAt DateTime? @map("user2_last_read_at")
// Relations
user1 User @relation("MatchUser1", fields: [user1Id], references: [id])