Add back slugs field in videos

This commit is contained in:
Zoe Roux 2026-03-11 12:56:22 +01:00
parent 58deb07b9c
commit 11167765e7
No known key found for this signature in database
2 changed files with 18 additions and 1 deletions

View File

@ -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<string[]>(
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,
}),

View File

@ -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(