feat(education): complete student core loop delivery

This commit is contained in:
2026-07-28 14:58:14 +08:00
parent 93f02df68c
commit ce02f8acb4
50 changed files with 1536 additions and 64 deletions

View File

@@ -0,0 +1,60 @@
# Fixture schemas
Fixtures are synthetic documentation examples, not default application data and not copies of prototype data. They model the stable fields the harness reads.
## `context.json`
```json
{
"userId": 1001,
"tenantId": 2001,
"tenantName": "Local Pilot School",
"displayName": "Local Pilot School"
}
```
## `question-collection.json`
```json
{
"id": "collection-local-001",
"name": "Synthetic practice collection",
"collectionType": "QUESTION_BANK",
"questionCount": 3,
"status": "PUBLISHED"
}
```
## `practice-session.json`
```json
{
"id": 9001,
"clientSessionId": "local-session-001",
"status": "ACTIVE",
"questionCount": 3,
"sessionVersion": 1,
"questions": [
{
"sequence": 1,
"questionId": "question-local-001",
"contentVersion": "v1",
"stem": "Synthetic question content",
"type": "choice",
"options": [{ "label": "A", "content": "Synthetic option" }],
"selectedAnswer": null
}
]
}
```
## `page.json`
```json
{
"list": [],
"total": 0
}
```
Do not add `correctAnswer`, `explanation`, access tokens, phone numbers, real names, provider identifiers, or licensed question text to pre-submission fixtures. Post-submission report examples may include answer/explanation fields only when explicitly needed to document the permitted post-submit response boundary.

View File

@@ -0,0 +1,6 @@
{
"userId": 1001,
"tenantId": 2001,
"tenantName": "Local Pilot School",
"displayName": "Local Pilot School"
}

View File

@@ -0,0 +1,4 @@
{
"list": [],
"total": 0
}

View File

@@ -0,0 +1,18 @@
{
"id": 9001,
"clientSessionId": "local-session-001",
"status": "ACTIVE",
"questionCount": 3,
"sessionVersion": 1,
"questions": [
{
"sequence": 1,
"questionId": "question-local-001",
"contentVersion": "v1",
"stem": "Synthetic question content",
"type": "choice",
"options": [{ "label": "A", "content": "Synthetic option" }],
"selectedAnswer": null
}
]
}

View File

@@ -0,0 +1,7 @@
{
"id": "collection-local-001",
"name": "Synthetic practice collection",
"collectionType": "QUESTION_BANK",
"questionCount": 3,
"status": "PUBLISHED"
}