diff --git a/prisma/postgresql-migrations/20250228130127_add_unique_chat/migration.sql b/prisma/postgresql-migrations/20250228130127_add_unique_chat/migration.sql new file mode 100644 index 00000000..077b6929 --- /dev/null +++ b/prisma/postgresql-migrations/20250228130127_add_unique_chat/migration.sql @@ -0,0 +1,8 @@ +/* + Warnings: + + - A unique constraint covering the columns `[instanceId,remoteJid]` on the table `Chat` will be added. If there are existing duplicate values, this will fail. + +*/ +-- CreateIndex +CREATE UNIQUE INDEX "Chat_instanceId_remoteJid_key" ON "Chat"("instanceId", "remoteJid"); diff --git a/prisma/postgresql-schema.prisma b/prisma/postgresql-schema.prisma index a9782ce5..090d4620 100644 --- a/prisma/postgresql-schema.prisma +++ b/prisma/postgresql-schema.prisma @@ -125,6 +125,8 @@ model Chat { Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) instanceId String unreadMessages Int @default(0) + + @@unique([instanceId, remoteJid]) @@index([instanceId]) @@index([remoteJid]) } diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index 0f30f0c9..cf03fc3e 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -702,6 +702,7 @@ export class ChannelStartupService { ) as "updatedAt", "Chat"."createdAt" as "windowStart", "Chat"."createdAt" + INTERVAL '24 hours' as "windowExpires", + "Chat"."labels" as "labels", CASE WHEN "Chat"."createdAt" + INTERVAL '24 hours' > NOW() THEN true ELSE false @@ -764,6 +765,7 @@ export class ChannelStartupService { windowExpires: contact.windowExpires, windowActive: contact.windowActive, lastMessage: lastMessage ? this.cleanMessageData(lastMessage) : undefined, + labels: contact.labels, }; });