<?php

declare(strict_types=1);

namespace App\Domain\Reader\Domain\Contract\Repository;

use App\Domain\Reader\Domain\Model\ChapterContext;
use App\Domain\Reader\Domain\Model\Page;
use App\Domain\Reader\Domain\ValueObject\ChapterId;

interface ChapterRepositoryInterface
{
    /**
     * @return array<Page>
     */
    public function getPagesForChapter(ChapterId $chapterId, int $page = 1, int $itemsPerPage = 20): array;

    public function getChapterContext(ChapterId $chapterId): ChapterContext;

    public function getTotalPagesForChapter(ChapterId $chapterId): int;

    public function getPreviousChapterId(ChapterId $chapterId): ?ChapterId;

    public function getNextChapterId(ChapterId $chapterId): ?ChapterId;
}
