Skip to main content

PaginatedResponse_SeriesDto

Generic paginated response wrapper with HATEOAS links

data object[]required

The data items for this page

  • Array [
  • bookCountinteger<int64>required

    Total number of books in this series

    Example: 4
    createdAtstring<date-time>required

    When the series was created

    Example: 2024-01-01T00:00:00Z
    hasCustomCoverboolean | nullnullable

    Whether the series has a custom cover uploaded

    Example: false
    idstring<uuid>required

    Series unique identifier

    Example: 550e8400-e29b-41d4-a716-446655440002
    libraryIdstring<uuid>required

    Library unique identifier

    Example: 550e8400-e29b-41d4-a716-446655440000
    libraryNamestringrequired

    Name of the library this series belongs to

    Example: Comics
    localMaxChapternumber,null<float>nullable

    Highest book_metadata.chapter across the books in this series.

    None when no book in the series has chapter populated. When non-null and metadata.totalChapterCount is also known, the UI renders <localMaxChapter>/<totalChapterCount> ch.

    Example: 137.5
    localMaxVolumeinteger,null<int32>nullable

    Highest book_metadata.volume across the books in this series.

    None when no book in the series has volume populated. When non-null and metadata.totalVolumeCount is also known, the UI renders <localMaxVolume>/<totalVolumeCount> vol instead of the legacy <bookCount>/<totalVolumeCount> vol.

    Example: 14
    pathstring | nullnullable

    Filesystem path to the series directory

    Example: /media/comics/Batman - Year One
    publisherstring | nullnullable

    Publisher name

    Example: DC Comics
    selectedCoverSourcestring | nullnullable

    Selected cover source (e.g., "first_book", "custom")

    Example: first_book
    summarystring | nullnullable

    Summary/description from series_metadata

    Example: The definitive origin story of Batman, following Bruce Wayne's first year as a vigilante.
    titlestringrequired

    Series title from series_metadata

    Example: Batman: Year One
    titleSortstring | nullnullable

    Sort title from series_metadata (for ordering)

    Example: batman year one
    unreadCountinteger,null<int64>nullable

    Number of unread books in this series (user-specific)

    Example: 2
    updatedAtstring<date-time>required

    When the series was last updated

    Example: 2024-01-15T10:30:00Z
    upstreamChapterGapnumber,null<float>nullable

    Difference between the upstream original-language chapter count (series_metadata.total_chapter_count, supplied by metadata providers like MangaBaka or AniList) and the highest locally-owned chapter (local_max_chapter).

    Always None unless the series is tracked AND track_chapters is enabled AND the provider count is populated AND the rounded-to-1- decimal gap is positive. This is an informational signal, not a release announcement — Phase 6's MangaUpdates plugin owns the translation-release feed.

    Example: 3
    upstreamGapProviderstring | nullnullable

    Display name of the metadata provider that supplied the upstream counts (e.g., "MangaBaka", "AniList"). Set whenever at least one of upstream_chapter_gap / upstream_volume_gap is populated. Used by the Phase 7 badge tooltip.

    Example: MangaBaka
    upstreamVolumeGapinteger,null<int32>nullable

    Difference between the upstream original-language volume count (series_metadata.total_volume_count) and the highest locally-owned volume (local_max_volume). Same suppression rules as upstream_chapter_gap, gated on track_volumes.

    Example: 1
    volumesOwnedinteger,null<int64>nullable

    Number of books in this series classified as a complete volume (volume IS NOT NULL AND chapter IS NULL).

    Distinct from bookCount: a chapter inside a volume (v15 c126) counts as a chapter, not a volume. None when no books exist; Some(0) when books exist but none are complete volumes.

    Example: 14
    yearinteger,null<int32>nullable

    Release year

    Example: 1987
  • ]
  • links objectrequired

    HATEOAS navigation links

    firststringrequired

    Link to the first page

    laststringrequired

    Link to the last page

    nextstring | nullnullable

    Link to the next page (null if on last page)

    prevstring | nullnullable

    Link to the previous page (null if on first page)

    selfstringrequired

    Link to the current page

    pageinteger<int64>required

    Current page number (1-indexed)

    Possible values: >= 0

    Example: 1
    pageSizeinteger<int64>required

    Number of items per page

    Possible values: >= 0

    Example: 50
    totalinteger<int64>required

    Total number of items across all pages

    Possible values: >= 0

    Example: 150
    totalPagesinteger<int64>required

    Total number of pages

    Possible values: >= 0

    Example: 3
    PaginatedResponse_SeriesDto
    {
    "data": [
    {
    "bookCount": 4,
    "createdAt": "2024-01-01T00:00:00Z",
    "hasCustomCover": false,
    "id": "550e8400-e29b-41d4-a716-446655440002",
    "libraryId": "550e8400-e29b-41d4-a716-446655440000",
    "libraryName": "Comics",
    "localMaxChapter": 137.5,
    "localMaxVolume": 14,
    "path": "/media/comics/Batman - Year One",
    "publisher": "DC Comics",
    "selectedCoverSource": "first_book",
    "summary": "The definitive origin story of Batman, following Bruce Wayne's first year as a vigilante.",
    "title": "Batman: Year One",
    "titleSort": "batman year one",
    "unreadCount": 2,
    "updatedAt": "2024-01-15T10:30:00Z",
    "upstreamChapterGap": 3,
    "upstreamGapProvider": "MangaBaka",
    "upstreamVolumeGap": 1,
    "volumesOwned": 14,
    "year": 1987
    }
    ],
    "links": {
    "first": "string",
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "string"
    },
    "page": 1,
    "pageSize": 50,
    "total": 150,
    "totalPages": 3
    }