mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
refactor(database): ♻️ Move Note <-> Media relations to a many-to-many model instead of one-to-many
This commit is contained in:
parent
9c30dacda7
commit
3216fc339a
7 changed files with 2428 additions and 31 deletions
|
|
@ -17,7 +17,7 @@ import type {
|
|||
import { Instance, db } from "@versia/kit/db";
|
||||
import {
|
||||
EmojiToNote,
|
||||
Medias,
|
||||
MediasToNotes,
|
||||
NoteToMentions,
|
||||
Notes,
|
||||
Users,
|
||||
|
|
@ -630,22 +630,15 @@ export class Note extends BaseInterface<typeof Notes, NoteTypeWithRelations> {
|
|||
|
||||
// Remove old attachments
|
||||
await db
|
||||
.update(Medias)
|
||||
.set({
|
||||
noteId: null,
|
||||
})
|
||||
.where(eq(Medias.noteId, this.data.id));
|
||||
await db
|
||||
.update(Medias)
|
||||
.set({
|
||||
.delete(MediasToNotes)
|
||||
.where(eq(MediasToNotes.noteId, this.data.id));
|
||||
|
||||
await db.insert(MediasToNotes).values(
|
||||
mediaAttachments.map((media) => ({
|
||||
noteId: this.data.id,
|
||||
})
|
||||
.where(
|
||||
inArray(
|
||||
Medias.id,
|
||||
mediaAttachments.map((i) => i.id),
|
||||
),
|
||||
);
|
||||
mediaId: media.id,
|
||||
})),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue