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:
@@ -0,0 +1,4 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "matches" ADD COLUMN "user1_last_read_at" TIMESTAMP(3),
|
||||
ADD COLUMN "user2_last_read_at" TIMESTAMP(3),
|
||||
ALTER COLUMN "slug" DROP DEFAULT;
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user