diff --git a/backend/src/chitai/database/models/book_progress.py b/backend/src/chitai/database/models/book_progress.py index 23c2fc4..580fab2 100644 --- a/backend/src/chitai/database/models/book_progress.py +++ b/backend/src/chitai/database/models/book_progress.py @@ -14,7 +14,11 @@ class BookProgress(BigIntAuditBase): book_id: Mapped[int] = mapped_column( ForeignKey("books.id", ondelete="cascade"), nullable=False ) - epub_loc: Mapped[Optional[str]] - pdf_loc: Mapped[Optional[int]] - progress: Mapped[float] + + epub_cfi: Mapped[Optional[str]] + epub_xpointer: Mapped[Optional[str]] + pdf_page: Mapped[Optional[int]] + percentage: Mapped[float] completed: Mapped[Optional[bool]] + device: Mapped[Optional[str]] # Device that updated the progress + device_id: Mapped[Optional[str]] diff --git a/backend/src/chitai/schemas/book.py b/backend/src/chitai/schemas/book.py index 54e4bcd..eea0250 100644 --- a/backend/src/chitai/schemas/book.py +++ b/backend/src/chitai/schemas/book.py @@ -161,14 +161,20 @@ class BookMetadataUpdate(BaseModel): class BookProgressCreate(BaseModel): - progress: float - epub_loc: str | None = None - pdf_loc: int | None = None + percentage: float + epub_cfi: str | None = None + epub_xpointer: str | None = None + pdf_page: int | None = None completed: bool | None = None + device_type: str | None = None + device_id: str | None = None class BookProgressRead(BaseModel): - progress: float - epub_loc: str | None = None - pdf_loc: int | None = None + percentage: float + epub_cfi: str | None = None + epub_xpointer: str | None = None + pdf_page: int | None = None completed: bool | None = False + device_type: str | None = None + device_id: str | None = None diff --git a/frontend/src/lib/components/reader/epub-reader.svelte b/frontend/src/lib/components/reader/epub-reader.svelte index dc40bb1..cb88d22 100644 --- a/frontend/src/lib/components/reader/epub-reader.svelte +++ b/frontend/src/lib/components/reader/epub-reader.svelte @@ -79,8 +79,8 @@ await fetch(`/api/books/progress/${bookId}`, { method: 'POST', body: JSON.stringify({ - progress: currentProgress, - epub_loc: currentLocation, + percentage: currentProgress, + epub_cfi: currentLocation, completed: currentProgress === 1 }) }); diff --git a/frontend/src/lib/components/view/book-thumbnail.svelte b/frontend/src/lib/components/view/book-thumbnail.svelte index f5044b6..2cd3a9b 100644 --- a/frontend/src/lib/components/view/book-thumbnail.svelte +++ b/frontend/src/lib/components/view/book-thumbnail.svelte @@ -38,9 +38,9 @@ : ''}" /> - {#if book.progress?.progress && !selected && !darkened} + {#if book.progress?.percentage && !selected && !darkened} - {#if book?.progress?.progress} + {#if book?.progress?.percentage}