- API : nouvelle table book_reading_progress (migration 0016) et module reading_progress.rs avec GET/PATCH /books/:id/progress (token read) - API : GET /books/:id enrichi avec reading_status, reading_current_page, reading_last_read_at via LEFT JOIN - Backoffice : badge de statut (Non lu / En cours · p.N / Lu) sur la page de détail et overlay sur les BookCards - OpenSpec : change reading-progress avec proposal/design/specs/tasks Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
MODIFIED Requirements
Requirement: Consulter le détail d'un livre
Le système SHALL retourner les détails d'un livre via GET /books/:id, incluant désormais les informations de progression de lecture : reading_status (valeur par défaut "unread"), reading_current_page (nullable), et reading_last_read_at (nullable).
Scenario: Livre sans progression enregistrée
- WHEN le client appelle
GET /books/:idpour un livre sans progression - THEN le système retourne HTTP 200 avec les champs de progression à leurs valeurs par défaut :
reading_status = "unread",reading_current_page = null,reading_last_read_at = null
Scenario: Livre avec progression en cours
- WHEN le client appelle
GET /books/:idpour un livre dont la progression estreading - THEN le système retourne HTTP 200 avec
reading_status = "reading",reading_current_page = <n>,reading_last_read_at = <timestamp>
Scenario: Livre inexistant
- WHEN le client appelle
GET /books/:idavec un UUID inexistant - THEN le système retourne HTTP 404