diff --git a/packages/backend/src/core/entities/NoteEntityService.ts b/packages/backend/src/core/entities/NoteEntityService.ts index f111b6540..ec031f06e 100644 --- a/packages/backend/src/core/entities/NoteEntityService.ts +++ b/packages/backend/src/core/entities/NoteEntityService.ts @@ -343,6 +343,7 @@ export class NoteEntityService implements OnModuleInit { reactionEmojis: this.customEmojiService.populateEmojis(reactionEmojiNames, host), reactionAndUserPairCache: opts.withReactionAndUserPairCache ? note.reactionAndUserPairCache : undefined, emojis: host != null ? this.customEmojiService.populateEmojis(note.emojis, host) : undefined, + isDeletable: note.isDeletable, tags: note.tags.length > 0 ? note.tags : undefined, fileIds: note.fileIds, files: packedFiles != null ? this.packAttachedFiles(note.fileIds, packedFiles, me) : this.driveFileEntityService.packManyByIds(note.fileIds, me), diff --git a/packages/backend/src/models/Note.ts b/packages/backend/src/models/Note.ts index 7803a68c7..c2e036976 100644 --- a/packages/backend/src/models/Note.ts +++ b/packages/backend/src/models/Note.ts @@ -193,6 +193,11 @@ export class MiNote { }) public hasPoll: boolean; + @Column('boolean', { + default: true, + }) + public isDeletable: boolean; + @Index() @Column({ ...id(), diff --git a/packages/backend/src/models/json-schema/note.ts b/packages/backend/src/models/json-schema/note.ts index 2641161c8..9f879cc29 100644 --- a/packages/backend/src/models/json-schema/note.ts +++ b/packages/backend/src/models/json-schema/note.ts @@ -255,7 +255,10 @@ export const packedNoteSchema = { type: 'number', optional: true, nullable: false, }, - + isDeletable: { + type: 'boolean', + optional: false, nullable: false, + }, myReaction: { type: 'string', optional: true, nullable: true, diff --git a/packages/backend/src/queue/processors/TruncateAccountProcessorService.ts b/packages/backend/src/queue/processors/TruncateAccountProcessorService.ts index 64aa7e3e9..372975ef3 100644 --- a/packages/backend/src/queue/processors/TruncateAccountProcessorService.ts +++ b/packages/backend/src/queue/processors/TruncateAccountProcessorService.ts @@ -72,6 +72,7 @@ export class TruncateAccountProcessorService { const notes = await this.notesRepository.find({ where: { userId: user.id, + isDeletable: true, ...(cursor ? { id: And(Not(In([...piningNoteIds, ...specifiedNoteIds])), MoreThan(cursor)), } : {