From 8b3faa8f6c72fd309f95ffd177380562805d5e48 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Mon, 29 Dec 2025 21:40:44 -0500 Subject: [PATCH] [FA-6] Good spot --- .../GraphQL/Query.cs | 16 ++++++------ .../Models/DTOs/ChapterReaderDto.cs | 6 ++--- .../lib/components/ChapterNavigation.svelte | 16 ++++++------ .../lib/components/ChapterReaderPage.svelte | 26 +++++++++---------- .../src/lib/components/NovelDetailPage.svelte | 14 +++++----- .../src/lib/graphql/__generated__/graphql.ts | 12 ++++----- .../src/lib/graphql/queries/chapter.graphql | 8 +++--- .../chapters/[chapterNumber].astro | 4 +-- 8 files changed, 51 insertions(+), 51 deletions(-) rename fictionarchive-web-astro/src/pages/novels/[id]/volumes/{[volumeId] => [volumeOrder]}/chapters/[chapterNumber].astro (58%) diff --git a/FictionArchive.Service.NovelService/GraphQL/Query.cs b/FictionArchive.Service.NovelService/GraphQL/Query.cs index 2c572bb..9b2930c 100644 --- a/FictionArchive.Service.NovelService/GraphQL/Query.cs +++ b/FictionArchive.Service.NovelService/GraphQL/Query.cs @@ -153,12 +153,12 @@ public class Query public IQueryable GetChapter( NovelServiceDbContext dbContext, uint novelId, - uint volumeId, + uint volumeOrder, uint chapterOrder, Language preferredLanguage = Language.En) { return dbContext.Chapters - .Where(c => c.Volume.Novel.Id == novelId && c.Volume.Id == volumeId && c.Order == chapterOrder) + .Where(c => c.Volume.Novel.Id == novelId && c.Volume.Order == volumeOrder && c.Order == chapterOrder) .Select(chapter => new ChapterReaderDto { Id = chapter.Id, @@ -210,16 +210,16 @@ public class Query TotalChaptersInVolume = chapter.Volume.Chapters.Count, // Previous chapter: first try same volume, then last chapter of previous volume - PrevChapterVolumeId = chapter.Volume.Chapters + PrevChapterVolumeOrder = chapter.Volume.Chapters .Where(c => c.Order < chapterOrder) .OrderByDescending(c => c.Order) - .Select(c => (uint?)chapter.Volume.Id) + .Select(c => (int?)chapter.Volume.Order) .FirstOrDefault() ?? chapter.Volume.Novel.Volumes .Where(v => v.Order < chapter.Volume.Order) .OrderByDescending(v => v.Order) .SelectMany(v => v.Chapters.OrderByDescending(c => c.Order).Take(1)) - .Select(c => (uint?)c.Volume.Id) + .Select(c => (int?)c.Volume.Order) .FirstOrDefault(), PrevChapterOrder = chapter.Volume.Chapters @@ -235,16 +235,16 @@ public class Query .FirstOrDefault(), // Next chapter: first try same volume, then first chapter of next volume - NextChapterVolumeId = chapter.Volume.Chapters + NextChapterVolumeOrder = chapter.Volume.Chapters .Where(c => c.Order > chapterOrder) .OrderBy(c => c.Order) - .Select(c => (uint?)chapter.Volume.Id) + .Select(c => (int?)chapter.Volume.Order) .FirstOrDefault() ?? chapter.Volume.Novel.Volumes .Where(v => v.Order > chapter.Volume.Order) .OrderBy(v => v.Order) .SelectMany(v => v.Chapters.OrderBy(c => c.Order).Take(1)) - .Select(c => (uint?)c.Volume.Id) + .Select(c => (int?)c.Volume.Order) .FirstOrDefault(), NextChapterOrder = chapter.Volume.Chapters diff --git a/FictionArchive.Service.NovelService/Models/DTOs/ChapterReaderDto.cs b/FictionArchive.Service.NovelService/Models/DTOs/ChapterReaderDto.cs index e976bd9..ca20dee 100644 --- a/FictionArchive.Service.NovelService/Models/DTOs/ChapterReaderDto.cs +++ b/FictionArchive.Service.NovelService/Models/DTOs/ChapterReaderDto.cs @@ -19,9 +19,9 @@ public class ChapterReaderDto : BaseDto public int VolumeOrder { get; init; } public int TotalChaptersInVolume { get; init; } - // Cross-volume navigation (VolumeId + Order identify a chapter) - public uint? PrevChapterVolumeId { get; init; } + // Cross-volume navigation (VolumeOrder + ChapterOrder identify a chapter) + public int? PrevChapterVolumeOrder { get; init; } public uint? PrevChapterOrder { get; init; } - public uint? NextChapterVolumeId { get; init; } + public int? NextChapterVolumeOrder { get; init; } public uint? NextChapterOrder { get; init; } } diff --git a/fictionarchive-web-astro/src/lib/components/ChapterNavigation.svelte b/fictionarchive-web-astro/src/lib/components/ChapterNavigation.svelte index 088b8e6..6f547fc 100644 --- a/fictionarchive-web-astro/src/lib/components/ChapterNavigation.svelte +++ b/fictionarchive-web-astro/src/lib/components/ChapterNavigation.svelte @@ -6,31 +6,31 @@ interface Props { novelId: string; - prevChapterVolumeId: number | null | undefined; + prevChapterVolumeOrder: number | null | undefined; prevChapterOrder: number | null | undefined; - nextChapterVolumeId: number | null | undefined; + nextChapterVolumeOrder: number | null | undefined; nextChapterOrder: number | null | undefined; showKeyboardHints?: boolean; } let { novelId, - prevChapterVolumeId, + prevChapterVolumeOrder, prevChapterOrder, - nextChapterVolumeId, + nextChapterVolumeOrder, nextChapterOrder, showKeyboardHints = true }: Props = $props(); - const hasPrev = $derived(prevChapterOrder != null && prevChapterVolumeId != null); - const hasNext = $derived(nextChapterOrder != null && nextChapterVolumeId != null); + const hasPrev = $derived(prevChapterOrder != null && prevChapterVolumeOrder != null); + const hasNext = $derived(nextChapterOrder != null && nextChapterVolumeOrder != null);