From 11167765e72b212de30a6745f38d3297e077453f Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 11 Mar 2026 12:56:22 +0100 Subject: [PATCH] Add back `slugs` field in videos --- api/src/controllers/videos.ts | 16 +++++++++++++++- api/src/models/full-video.ts | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/api/src/controllers/videos.ts b/api/src/controllers/videos.ts index e6244159..80c60650 100644 --- a/api/src/controllers/videos.ts +++ b/api/src/controllers/videos.ts @@ -29,7 +29,9 @@ import { } from "~/db/schema"; import { watchlist } from "~/db/schema/watchlist"; import { + coalesce, getColumns, + jsonbAgg, jsonbBuildObject, jsonbObjectAgg, sqlarr, @@ -87,6 +89,18 @@ const videoSort = Sort( ); const videoRelations = { + slugs: () => { + return db + .select({ + slugs: coalesce( + jsonbAgg(entryVideoJoin.slug), + sql`'[]'::jsonb`, + ).as("slugs"), + }) + .from(entryVideoJoin) + .where(eq(entryVideoJoin.videoPk, videos.pk)) + .as("slugs"); + }, progress: () => { const query = db .select({ @@ -294,7 +308,7 @@ export async function getVideos({ .with(...cte) .select({ ...getColumns(videos), - ...buildRelations(relations, videoRelations, { + ...buildRelations(["slugs", ...relations], videoRelations, { languages, preferOriginal, }), diff --git a/api/src/models/full-video.ts b/api/src/models/full-video.ts index cef94374..06ed7ce9 100644 --- a/api/src/models/full-video.ts +++ b/api/src/models/full-video.ts @@ -8,6 +8,9 @@ import { Video } from "./video"; export const FullVideo = t.Composite([ Video, t.Object({ + slugs: t.Array( + t.String({ format: "slug", examples: ["made-in-abyss-s1e13"] }), + ), progress: t.Optional(Progress), entries: t.Array(t.Omit(Entry, ["videos", "progress"])), previous: t.Optional(