refactor: Add indexes to improve performance in ChatwootService

This commit is contained in:
Richards0n 2024-10-17 11:50:28 -03:00
parent aa8396d437
commit 287f387e82
3 changed files with 45 additions and 0 deletions

View File

@ -124,6 +124,9 @@ model Chat {
updatedAt DateTime? @updatedAt @db.Timestamp updatedAt DateTime? @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String instanceId String
unreadMessages Int @default(0)
@@index([instanceId])
@@index([remoteJid])
} }
model Contact { model Contact {
@ -137,6 +140,8 @@ model Contact {
instanceId String instanceId String
@@unique([remoteJid, instanceId]) @@unique([remoteJid, instanceId])
@@index([remoteJid])
@@index([instanceId])
} }
model Message { model Message {
@ -164,6 +169,7 @@ model Message {
sessionId String? sessionId String?
session IntegrationSession? @relation(fields: [sessionId], references: [id]) session IntegrationSession? @relation(fields: [sessionId], references: [id])
@@index([instanceId])
} }
model MessageUpdate { model MessageUpdate {
@ -178,6 +184,8 @@ model MessageUpdate {
messageId String messageId String
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String instanceId String
@@index([instanceId])
@@index([messageId])
} }
model Webhook { model Webhook {
@ -192,6 +200,7 @@ model Webhook {
updatedAt DateTime @updatedAt @db.Timestamp updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique instanceId String @unique
@@index([instanceId])
} }
model Chatwoot { model Chatwoot {
@ -258,6 +267,7 @@ model Setting {
updatedAt DateTime @updatedAt @db.Timestamp updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique instanceId String @unique
@@index([instanceId])
} }
model Rabbitmq { model Rabbitmq {

View File

@ -0,0 +1,26 @@
-- CreateIndex
CREATE INDEX "Chat_instanceId_idx" ON "Chat"("instanceId");
-- CreateIndex
CREATE INDEX "Chat_remoteJid_idx" ON "Chat"("remoteJid");
-- CreateIndex
CREATE INDEX "Contact_remoteJid_idx" ON "Contact"("remoteJid");
-- CreateIndex
CREATE INDEX "Contact_instanceId_idx" ON "Contact"("instanceId");
-- CreateIndex
CREATE INDEX "Message_instanceId_idx" ON "Message"("instanceId");
-- CreateIndex
CREATE INDEX "MessageUpdate_instanceId_idx" ON "MessageUpdate"("instanceId");
-- CreateIndex
CREATE INDEX "MessageUpdate_messageId_idx" ON "MessageUpdate"("messageId");
-- CreateIndex
CREATE INDEX "Setting_instanceId_idx" ON "Setting"("instanceId");
-- CreateIndex
CREATE INDEX "Webhook_instanceId_idx" ON "Webhook"("instanceId");

View File

@ -125,6 +125,8 @@ model Chat {
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String instanceId String
unreadMessages Int @default(0) unreadMessages Int @default(0)
@@index([instanceId])
@@index([remoteJid])
} }
model Contact { model Contact {
@ -138,6 +140,8 @@ model Contact {
instanceId String instanceId String
@@unique([remoteJid, instanceId]) @@unique([remoteJid, instanceId])
@@index([remoteJid])
@@index([instanceId])
} }
model Message { model Message {
@ -164,6 +168,7 @@ model Message {
sessionId String? sessionId String?
session IntegrationSession? @relation(fields: [sessionId], references: [id]) session IntegrationSession? @relation(fields: [sessionId], references: [id])
@@index([instanceId])
} }
model MessageUpdate { model MessageUpdate {
@ -178,6 +183,8 @@ model MessageUpdate {
messageId String messageId String
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String instanceId String
@@index([instanceId])
@@index([messageId])
} }
model Webhook { model Webhook {
@ -192,6 +199,7 @@ model Webhook {
updatedAt DateTime @updatedAt @db.Timestamp updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique instanceId String @unique
@@index([instanceId])
} }
model Chatwoot { model Chatwoot {
@ -260,6 +268,7 @@ model Setting {
updatedAt DateTime @updatedAt @db.Timestamp updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique instanceId String @unique
@@index([instanceId])
} }
model Rabbitmq { model Rabbitmq {