package services import ( "bookhoard/internal/database" "bookhoard/internal/utils" "context" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" ) type SeriesInfo struct { Name string LibraryID string BookCount int64 TotalInSeries int CoverPaths []string LastEntryAt string // Viewer-scoped progress aggregates (requesting user): books // finished (percentage >= 0.999) and the series' most recent read. ReadCount int64 LastReadAt string } // SeriesPageOptions carries the series page's sort/filter state. Zero // values mean defaults (recent, no filters). Extensible by design: // adding a sort = one entry in seriesSortKeys + a matching CASE arm in // queries.sql (GetDistinctSeries) + one