@@ -77,13 +77,69 @@ export const adminExams = [
|
||||
},
|
||||
]
|
||||
|
||||
// FE-mock-only — no backend endpoint for exam participants.
|
||||
// Mirrors GET /exams/:examId/attempts. Each row is one attempt with the user
|
||||
// embedded; multiple rows per user are possible.
|
||||
export const examAttempts = new Map([
|
||||
[
|
||||
201,
|
||||
[
|
||||
{
|
||||
id: 14,
|
||||
examId: 201,
|
||||
score: 85,
|
||||
isPassed: true,
|
||||
startedAt: '2026-04-12T15:00:00+03:30',
|
||||
submittedAt: '2026-04-12T15:30:00+03:30',
|
||||
deadlineAt: '2026-04-12T15:30:00+03:30',
|
||||
user: {
|
||||
id: 100,
|
||||
name: 'فاطمه رضایی',
|
||||
email: 'fatemeh.r@example.com',
|
||||
phone: '+989121234567',
|
||||
provinceId: 8,
|
||||
cityId: 47,
|
||||
province: { id: 8, name: 'تهران' },
|
||||
city: { id: 47, provinceId: 8, name: 'تهران' },
|
||||
roles: ['student'],
|
||||
avatarUrl: null,
|
||||
avatarDownloadUrl: null,
|
||||
createdAt: '2026-02-01T10:00:00+00:00',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 15,
|
||||
examId: 201,
|
||||
score: 42,
|
||||
isPassed: false,
|
||||
startedAt: '2026-04-13T09:00:00+03:30',
|
||||
submittedAt: '2026-04-13T09:25:00+03:30',
|
||||
deadlineAt: '2026-04-13T09:30:00+03:30',
|
||||
user: {
|
||||
id: 102,
|
||||
name: 'مریم احمدی',
|
||||
email: 'maryam.a@example.com',
|
||||
phone: '+989121111111',
|
||||
provinceId: 15,
|
||||
cityId: 90,
|
||||
province: { id: 15, name: 'اصفهان' },
|
||||
city: { id: 90, provinceId: 15, name: 'اصفهان' },
|
||||
roles: ['student'],
|
||||
avatarUrl: null,
|
||||
avatarDownloadUrl: null,
|
||||
createdAt: '2026-02-03T10:00:00+00:00',
|
||||
},
|
||||
},
|
||||
],
|
||||
],
|
||||
])
|
||||
|
||||
// Kept for the FE-mock-only single-participant detail endpoint (no backend yet).
|
||||
export const examParticipants = new Map([
|
||||
[
|
||||
201,
|
||||
[
|
||||
{
|
||||
id: 1,
|
||||
id: 100,
|
||||
userId: 100,
|
||||
firstName: 'فاطمه',
|
||||
lastName: 'رضایی',
|
||||
@@ -91,21 +147,21 @@ export const examParticipants = new Map([
|
||||
avatarUrl: '',
|
||||
address: { province: { name: 'تهران' }, city: { name: 'تهران' } },
|
||||
location: 'تهران، تهران',
|
||||
submittedAt: '2026-05-05T10:30:00.000Z',
|
||||
submittedAt: '2026-04-12T15:30:00+03:30',
|
||||
attempts: [
|
||||
{
|
||||
id: 1,
|
||||
id: 14,
|
||||
title: 'تلاش اول',
|
||||
courseTitle: 'اصول اخلاق اسلامی',
|
||||
sessionTitle: 'مقدمهای بر اخلاق اسلامی',
|
||||
date: '2026-05-05T10:30:00.000Z',
|
||||
date: '2026-04-12T15:30:00+03:30',
|
||||
score: 17,
|
||||
scoreTone: 'good',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
id: 102,
|
||||
userId: 102,
|
||||
firstName: 'مریم',
|
||||
lastName: 'احمدی',
|
||||
@@ -113,14 +169,14 @@ export const examParticipants = new Map([
|
||||
avatarUrl: '',
|
||||
address: { province: { name: 'اصفهان' }, city: { name: 'اصفهان' } },
|
||||
location: 'اصفهان، اصفهان',
|
||||
submittedAt: '2026-05-06T11:00:00.000Z',
|
||||
submittedAt: '2026-04-13T09:25:00+03:30',
|
||||
attempts: [
|
||||
{
|
||||
id: 2,
|
||||
id: 15,
|
||||
title: 'تلاش اول',
|
||||
courseTitle: 'اصول اخلاق اسلامی',
|
||||
sessionTitle: 'مقدمهای بر اخلاق اسلامی',
|
||||
date: '2026-05-06T11:00:00.000Z',
|
||||
date: '2026-04-13T09:25:00+03:30',
|
||||
score: 9,
|
||||
scoreTone: 'bad',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user