mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-13 15:14:49 -06:00
Changed labels to be unique on the same instance
This commit is contained in:
parent
dbb6ea9147
commit
48febec36a
@ -0,0 +1,11 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[labelId,instanceId]` on the table `Label` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "Label_labelId_key";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Label_labelId_instanceId_key" ON "Label"("labelId", "instanceId");
|
@ -216,7 +216,7 @@ model Chatwoot {
|
||||
|
||||
model Label {
|
||||
id String @id @default(cuid())
|
||||
labelId String? @unique @db.VarChar(100)
|
||||
labelId String? @db.VarChar(100)
|
||||
name String @db.VarChar(100)
|
||||
color String @db.VarChar(100)
|
||||
predefinedId String? @db.VarChar(100)
|
||||
@ -224,6 +224,8 @@ model Label {
|
||||
updatedAt DateTime @updatedAt @db.Timestamp
|
||||
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
|
||||
instanceId String
|
||||
|
||||
@@unique([labelId, instanceId])
|
||||
}
|
||||
|
||||
model Proxy {
|
||||
|
@ -1455,7 +1455,7 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
const savedLabel = labelsRepository.find((l) => l.labelId === label.id);
|
||||
if (label.deleted && savedLabel) {
|
||||
await this.prismaRepository.label.delete({
|
||||
where: { instanceId: this.instanceId, labelId: label.id },
|
||||
where: { labelId_instanceId: { instanceId: this.instanceId, labelId: label.id } },
|
||||
});
|
||||
this.sendDataWebhook(Events.LABELS_EDIT, { ...label, instance: this.instance.name });
|
||||
return;
|
||||
@ -1463,16 +1463,25 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
|
||||
const labelName = label.name.replace(/[^\x20-\x7E]/g, '');
|
||||
if (!savedLabel || savedLabel.color !== `${label.color}` || savedLabel.name !== labelName) {
|
||||
if (this.configService.get<Database>('DATABASE').SAVE_DATA.LABELS)
|
||||
await this.prismaRepository.label.create({
|
||||
data: {
|
||||
color: `${label.color}`,
|
||||
name: labelName,
|
||||
labelId: label.id,
|
||||
predefinedId: label.predefinedId,
|
||||
instanceId: this.instanceId,
|
||||
if (this.configService.get<Database>('DATABASE').SAVE_DATA.LABELS) {
|
||||
const labelData = {
|
||||
color: `${label.color}`,
|
||||
name: labelName,
|
||||
labelId: label.id,
|
||||
predefinedId: label.predefinedId,
|
||||
instanceId: this.instanceId,
|
||||
};
|
||||
await this.prismaRepository.label.upsert({
|
||||
where: {
|
||||
labelId_instanceId: {
|
||||
instanceId: labelData.instanceId,
|
||||
labelId: labelData.labelId,
|
||||
},
|
||||
},
|
||||
update: labelData,
|
||||
create: labelData,
|
||||
});
|
||||
}
|
||||
this.sendDataWebhook(Events.LABELS_EDIT, { ...label, instance: this.instance.name });
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user