Files
komgAPI/src/komgapi/schemas/Manifest.py
2025-02-17 20:28:17 +01:00

140 lines
3.8 KiB
Python

from __future__ import annotations
from typing import Any, Dict, List, Optional
from pydantic import BaseModel
class Link(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class Series(BaseModel):
name: Optional[str] = None
position: Optional[int] = None
links: Optional[List[Link]] = None
class CollectionItem(BaseModel):
name: Optional[str] = None
position: Optional[int] = None
links: Optional[List[Link]] = None
class BelongsTo(BaseModel):
series: Optional[List[Series]] = None
collection: Optional[List[CollectionItem]] = None
class Rendition(BaseModel):
additionalProp1: Dict[str, Any]
additionalProp2: Dict[str, Any]
additionalProp3: Dict[str, Any]
class Metadata(BaseModel):
title: Optional[str] = None
identifier: Optional[str] = None
type: Optional[str] = None
conformsTo: Optional[str] = None
sortAs: Optional[str] = None
subtitle: Optional[str] = None
modified: Optional[str] = None
published: Optional[str] = None
language: Optional[str] = None
author: Optional[List[str]] = None
translator: Optional[List[str]] = None
editor: Optional[List[str]] = None
artist: Optional[List[str]] = None
illustrator: Optional[List[str]] = None
letterer: Optional[List[str]] = None
penciler: Optional[List[str]] = None
colorist: Optional[List[str]] = None
inker: Optional[List[str]] = None
contributor: Optional[List[str]] = None
publisher: Optional[List[str]] = None
subject: Optional[List[str]] = None
readingProgression: Optional[str] = None
description: Optional[str] = None
numberOfPages: Optional[int] = None
belongsTo: Optional[BelongsTo] = None
rendition: Optional[Rendition] = None
class Image(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class ReadingOrderItem(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class Resource(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class TocItem(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class Landmark(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class PageListItem(BaseModel):
title: Optional[str] = None
rel: Optional[str] = None
href: Optional[str] = None
type: Optional[str] = None
templated: Optional[bool] = None
width: Optional[int] = None
height: Optional[int] = None
class Manifest(BaseModel):
context: Optional[str] = None
metadata: Optional[Metadata] = None
links: Optional[List[Link]] = None
images: Optional[List[Image]] = None
readingOrder: Optional[List[ReadingOrderItem]] = None
resources: Optional[List[Resource]] = None
toc: Optional[List[TocItem]] = None
landmarks: Optional[List[Landmark]] = None
pageList: Optional[List[PageListItem]] = None