41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
# Flows - Reader Web
|
|
|
|
Luon xem `reader-api` la canonical behavior.
|
|
|
|
## Flow 1: Web Login and Session
|
|
|
|
- Trigger: user bam dang nhap Google.
|
|
- Preconditions: env OAuth hop le.
|
|
- Steps:
|
|
1. User xac thuc Google qua NextAuth.
|
|
2. Web co session cookie.
|
|
3. Web goi endpoint user de hydrate profile/state.
|
|
- Success: user vao trang co tinh nang ca nhan hoa.
|
|
|
|
## Flow 2: Browse -> Novel Detail -> Read Chapter
|
|
|
|
- Trigger: user click tu home/search/genre.
|
|
- Steps:
|
|
1. Goi `/api/novels/browse` hoac `/api/novels/{idOrSlug}`.
|
|
2. Goi `/api/truyen/{id}/chapters` lay muc luc.
|
|
3. Doc chapter qua luong chapter hien co cua web.
|
|
- Failure handling:
|
|
- 404: thong bao khong tim thay truyen/chuong.
|
|
- 5xx: retry UI + fallback message.
|
|
|
|
## Flow 3: Bookmark and Progress Sync
|
|
|
|
- Trigger: user bookmark hoac chuyen chuong.
|
|
- Steps:
|
|
1. Bookmark: `GET/POST/DELETE /api/user/bookmarks`.
|
|
2. Progress: `POST /api/user/reading-progress`.
|
|
3. UI cap nhat trang thai optimistic + reconcile API.
|
|
- Expected parity: cung nghia status voi mobile.
|
|
|
|
## Flow 4: Comment / Rating / Recommendation
|
|
|
|
- Comment: `GET/POST /api/truyen/{id}/comments`.
|
|
- Rating: `POST /api/truyen/{id}/rate`.
|
|
- Recommendation: `/api/user/recommendations`.
|
|
- Error rules: follow `CONTRACT.md`.
|