refactor(database): ♻️ Move Note <-> Media relations to a many-to-many model instead of one-to-many

This commit is contained in:
Jesse Wierzbinski 2025-01-23 20:36:09 +01:00
parent 9c30dacda7
commit 3216fc339a
No known key found for this signature in database
7 changed files with 2428 additions and 31 deletions

View file

@ -38,7 +38,11 @@ export const findManyNotes = async (
...query,
with: {
...query?.with,
attachments: true,
attachments: {
with: {
media: true,
},
},
emojis: {
with: {
emoji: {
@ -65,7 +69,11 @@ export const findManyNotes = async (
},
reblog: {
with: {
attachments: true,
attachments: {
with: {
media: true,
},
},
emojis: {
with: {
emoji: {
@ -176,6 +184,7 @@ export const findManyNotes = async (
...mention.user,
endpoints: mention.user.endpoints,
})),
attachments: post.attachments.map((attachment) => attachment.media),
emojis: (post.emojis ?? []).map((emoji) => emoji.emoji),
reblog: post.reblog && {
...post.reblog,
@ -184,6 +193,9 @@ export const findManyNotes = async (
...mention.user,
endpoints: mention.user.endpoints,
})),
attachments: post.reblog.attachments.map(
(attachment) => attachment.media,
),
emojis: (post.reblog.emojis ?? []).map((emoji) => emoji.emoji),
reblogCount: Number(post.reblog.reblogCount),
likeCount: Number(post.reblog.likeCount),