Skip to main content

SeriesContextDto

Series context for template and condition evaluation.

This structure provides a unified interface for evaluating templates and conditions against series data. It aggregates data from various sources (series, metadata, external IDs, book count) into a single context object.

Template Usage

In Handlebars templates, fields are accessible via:

  • {{seriesId}} - Series UUID
  • {{bookCount}} - Number of books
  • {{metadata.title}} - Series title
  • {{metadata.genres}} - Genre array
  • {{externalIds.plugin:mangabaka.id}} - External ID from a source
  • {{customMetadata.myField}} - Custom metadata field

JSON Structure

{
"seriesId": "550e8400-e29b-41d4-a716-446655440000",
"bookCount": 5,
"metadata": {
"title": "One Piece",
"genres": ["Action", "Adventure"],
"tags": ["pirates"]
},
"externalIds": {
"plugin:mangabaka": { "id": "12345", "url": "..." }
},
"customMetadata": { "myField": "value" }
}
bookCountinteger<int64>required

Number of books in the series

Example: 5
customMetadataobject | nullnullable

Custom metadata fields (preserved as-is, no case transformation). Can contain any JSON structure defined by the user.

externalIds object

External IDs mapped by source name. Keys are source identifiers (e.g., "plugin:mangabaka", "comicinfo").

property name* ExternalIdContextDto

External ID context for template evaluation.

Represents an external ID from a metadata provider (plugin, comicinfo, etc.) in a simplified format suitable for template access.

hashstring | nullnullable

Metadata hash for change detection (if available)

idstringrequired

External ID value

Example: 12345
urlstring | nullnullable

External URL (if available)

Example: https://mangabaka.com/series/12345
metadata object

Series metadata

ageRatinginteger,null<int32>nullable

Age rating (e.g., 13, 16, 18)

Example: 13
ageRatingLockboolean

Whether age_rating is locked

customMetadataLockboolean

Whether custom_metadata is locked

genresstring[]

Genre names

Example: ["Action","Adventure","Comedy"]
genresLockboolean

Whether genres are locked

imprintstring | nullnullable

Imprint (sub-publisher)

Example: Jump Comics
imprintLockboolean

Whether imprint is locked

languagestring | nullnullable

Language code (BCP47 format)

Example: ja
languageLockboolean

Whether language is locked

publisherstring | nullnullable

Publisher name

Example: Shueisha
publisherLockboolean

Whether publisher is locked

readingDirectionstring | nullnullable

Reading direction (ltr, rtl, ttb, webtoon)

Example: rtl
readingDirectionLockboolean

Whether reading_direction is locked

statusstring | nullnullable

Series status (ongoing, ended, hiatus, abandoned, unknown)

Example: ongoing
statusLockboolean

Whether status is locked

summarystring | nullnullable

Series description/summary

Example: Follow Monkey D. Luffy on his adventure...
summaryLockboolean

Whether summary is locked

tagsstring[]

Tag names

Example: ["pirates","treasure","friendship"]
tagsLockboolean

Whether tags are locked

titlestring | nullnullable

Series title

Example: One Piece
titleLockboolean

Whether title is locked

titleSortstring | nullnullable

Custom sort name

Example: One Piece
titleSortLockboolean

Whether title_sort is locked

totalBookCountinteger,null<int32>nullable

Expected total book count

Example: 110
totalBookCountLockboolean

Whether total_book_count is locked

yearinteger,null<int32>nullable

Publication year

Example: 1997
yearLockboolean

Whether year is locked

seriesIdstring,null<uuid>nullable

Series UUID

Example: 550e8400-e29b-41d4-a716-446655440000
SeriesContextDto
{
"bookCount": 5,
"customMetadata": "Unknown Type: object,null",
"externalIds": {
"plugin:mangabaka": {
"id": "12345",
"url": "https://mangabaka.com/series/12345"
}
},
"metadata": {
"ageRating": 13,
"ageRatingLock": true,
"customMetadataLock": true,
"genres": [
"Action",
"Adventure",
"Comedy"
],
"genresLock": true,
"imprint": "Jump Comics",
"imprintLock": true,
"language": "ja",
"languageLock": true,
"publisher": "Shueisha",
"publisherLock": true,
"readingDirection": "rtl",
"readingDirectionLock": true,
"status": "ongoing",
"statusLock": true,
"summary": "Follow Monkey D. Luffy on his adventure...",
"summaryLock": true,
"tags": [
"pirates",
"treasure",
"friendship"
],
"tagsLock": true,
"title": "One Piece",
"titleLock": true,
"titleSort": "One Piece",
"titleSortLock": true,
"totalBookCount": 110,
"totalBookCountLock": true,
"year": 1997,
"yearLock": true
},
"seriesId": "550e8400-e29b-41d4-a716-446655440000"
}