DraftDT-4662Exercise AISRDAPIRESTGuidedTBD

Do-Test API — Guided Practice

Áp dụng cho GUIDED_PRACTICE. Scaffolded — chưa có endpoint riêng. Hiện chỉ:

  • content = GuidedProgressContentquestions[] = GuidedQuestionProgress (chỉ field base questionId / order / state, chưa có payload riêng — TBD).
  • Làm bài qua các Common API: start, demo-start, GET /{progressId}, next, skip, submit.
  • computeSubmitSummary cho guided hiện no-op (chưa có tổng kết riêng).

Ví dụ — GET /{progressId} (content guided)

{
  "id": "6700a1b2c3d4e5f60718293a",
  "exerciseType": "GUIDED_PRACTICE",
  "status": "IN_PROGRESS",
  "currentIndex": 0,
  "totalQuestion": 10,
  "content": {
    "questions": [
      { "questionId": "665fae11b2c3d4e5f6071900", "order": 0, "state": "ANSWERING" },
      { "questionId": "665fae11b2c3d4e5f6071901", "order": 1, "state": "NOT_ANSWER" }
    ]
  }
}

Request/response của start, skip, next, submit giống hệt Common API — guided chưa có biến thể riêng.

Khi bổ sung luồng guided

Thêm payload cho GuidedQuestionProgress + endpoint mutation riêng, cập nhật computeSubmitSummary, và đồng bộ trang này. Tham chiếu PRD khi shape được chốt.