@faiber/faiber-lms 0.10.2 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,9 +28,17 @@ export type AcademyCompleteSessionPostInput = import("./types.js").AcademyComple
28
28
  /** Backend response type: Value. */
29
29
  export type AcademyCompleteSessionPostResponse = import("./types.js").AcademySessionCompletionResponse;
30
30
  /** Backend response type: SessionResponse. */
31
+ export interface SessionGetSelfGetResponseDataProfile extends JsonObject {
32
+ "user_id": string;
33
+ "first_name"?: JsonValue | null;
34
+ "last_name"?: JsonValue | null;
35
+ "email"?: string | null;
36
+ "national_code"?: string | null;
37
+ "phone"?: string | null;
38
+ }
31
39
  export interface SessionGetSelfGetResponseData extends JsonObject {
32
40
  "user_id": string;
33
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
41
+ "profile"?: SessionGetSelfGetResponseDataProfile | null;
34
42
  "roles": string[];
35
43
  "permissions": string[];
36
44
  }
@@ -42,252 +50,34 @@ export interface CertificateIndexCertificateGetQuery extends QueryParams {
42
50
  "page_size"?: number | null;
43
51
  }
44
52
  /** Backend response type: crate::models::PagedResult<models::CertificateResponse>. */
45
- export interface CertificateIndexCertificateGetResponseItem extends JsonObject {
46
- "id": string;
47
- "public_id": string;
48
- "user_id": string;
49
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
50
- "course_id"?: string | null;
51
- "course_name"?: string | null;
52
- "classroom_id"?: string | null;
53
- "classroom_name"?: string | null;
54
- "title": string;
55
- "certificate_template_id"?: string | null;
56
- "grade_id"?: string | null;
57
- "score"?: number | null;
58
- "passing_mark"?: number | null;
59
- "status": string;
60
- "verification_code"?: string | null;
61
- "legacy_code"?: string | null;
62
- "issued_by"?: string | null;
63
- "issued_at": string;
64
- "media_url"?: string | null;
65
- "revoked_at"?: string | null;
66
- "revoke_reason"?: string | null;
67
- "render_snapshot": JsonValue;
68
- "created_at": string;
69
- "updated_at": string;
70
- }
71
- export interface CertificateIndexCertificateGetResponsePageMeta extends JsonObject {
72
- "page": number;
73
- "page_size": number;
74
- "total_items": number;
75
- "total_pages": number;
76
- }
77
- export interface CertificateIndexCertificateGetResponseData extends JsonObject {
78
- "data": CertificateIndexCertificateGetResponseItem[];
79
- "meta": CertificateIndexCertificateGetResponsePageMeta;
80
- }
81
- export interface CertificateIndexCertificateGetResponse extends ApiEnvelope<CertificateIndexCertificateGetResponseData> {
82
- }
53
+ export type CertificateIndexCertificateGetResponse = import("./types.js").CertificateListResponse;
83
54
  /** Backend request type: models::CreateCertificateRequest. */
84
- export interface CertificateStoreCertificatePostInput extends JsonObject {
85
- "user_id": string;
86
- "course_id"?: string | null;
87
- "classroom_id"?: string | null;
88
- "title": string;
89
- "certificate_template_id"?: string | null;
90
- "grade_id"?: string | null;
91
- "status"?: string | null;
92
- "verification_code"?: string | null;
93
- "issued_by"?: string | null;
94
- "issued_at": string;
95
- "media_url"?: string | null;
96
- "render_snapshot"?: JsonValue | null;
97
- }
55
+ export type CertificateStoreCertificatePostInput = import("./types.js").CreateCertificateInput;
98
56
  /** Backend response type: models::CertificateResponse. */
99
- export interface CertificateStoreCertificatePostResponseData extends JsonObject {
100
- "id": string;
101
- "public_id": string;
102
- "user_id": string;
103
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
104
- "course_id"?: string | null;
105
- "course_name"?: string | null;
106
- "classroom_id"?: string | null;
107
- "classroom_name"?: string | null;
108
- "title": string;
109
- "certificate_template_id"?: string | null;
110
- "grade_id"?: string | null;
111
- "score"?: number | null;
112
- "passing_mark"?: number | null;
113
- "status": string;
114
- "verification_code"?: string | null;
115
- "legacy_code"?: string | null;
116
- "issued_by"?: string | null;
117
- "issued_at": string;
118
- "media_url"?: string | null;
119
- "revoked_at"?: string | null;
120
- "revoke_reason"?: string | null;
121
- "render_snapshot": JsonValue;
122
- "created_at": string;
123
- "updated_at": string;
124
- }
125
- export interface CertificateStoreCertificatePostResponse extends ApiEnvelope<CertificateStoreCertificatePostResponseData> {
126
- }
57
+ export type CertificateStoreCertificatePostResponse = import("./types.js").CertificateResponse;
127
58
  /** Backend response type: models::CertificateResponse. */
128
- export interface CertificateShowCertificateGetResponseData extends JsonObject {
129
- "id": string;
130
- "public_id": string;
131
- "user_id": string;
132
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
133
- "course_id"?: string | null;
134
- "course_name"?: string | null;
135
- "classroom_id"?: string | null;
136
- "classroom_name"?: string | null;
137
- "title": string;
138
- "certificate_template_id"?: string | null;
139
- "grade_id"?: string | null;
140
- "score"?: number | null;
141
- "passing_mark"?: number | null;
142
- "status": string;
143
- "verification_code"?: string | null;
144
- "legacy_code"?: string | null;
145
- "issued_by"?: string | null;
146
- "issued_at": string;
147
- "media_url"?: string | null;
148
- "revoked_at"?: string | null;
149
- "revoke_reason"?: string | null;
150
- "render_snapshot": JsonValue;
151
- "created_at": string;
152
- "updated_at": string;
153
- }
154
- export interface CertificateShowCertificateGetResponse extends ApiEnvelope<CertificateShowCertificateGetResponseData> {
155
- }
59
+ export type CertificateShowCertificateGetResponse = import("./types.js").CertificateResponse;
156
60
  /** Backend request type: models::UpdateCertificateRequest. */
157
- export interface CertificateUpdateCertificatePatchInput extends JsonObject {
158
- "user_id"?: string | null;
159
- "course_id"?: string | null;
160
- "classroom_id"?: string | null;
161
- "title"?: string | null;
162
- "status"?: string | null;
163
- "issued_at"?: string | null;
164
- "media_url"?: string | null;
165
- "revoke_reason"?: string | null;
166
- }
61
+ export type CertificateUpdateCertificatePatchInput = import("./types.js").UpdateCertificateInput;
167
62
  /** Backend response type: models::CertificateResponse. */
168
- export interface CertificateUpdateCertificatePatchResponseData extends JsonObject {
169
- "id": string;
170
- "public_id": string;
171
- "user_id": string;
172
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
173
- "course_id"?: string | null;
174
- "course_name"?: string | null;
175
- "classroom_id"?: string | null;
176
- "classroom_name"?: string | null;
177
- "title": string;
178
- "certificate_template_id"?: string | null;
179
- "grade_id"?: string | null;
180
- "score"?: number | null;
181
- "passing_mark"?: number | null;
182
- "status": string;
183
- "verification_code"?: string | null;
184
- "legacy_code"?: string | null;
185
- "issued_by"?: string | null;
186
- "issued_at": string;
187
- "media_url"?: string | null;
188
- "revoked_at"?: string | null;
189
- "revoke_reason"?: string | null;
190
- "render_snapshot": JsonValue;
191
- "created_at": string;
192
- "updated_at": string;
193
- }
194
- export interface CertificateUpdateCertificatePatchResponse extends ApiEnvelope<CertificateUpdateCertificatePatchResponseData> {
195
- }
63
+ export type CertificateUpdateCertificatePatchResponse = import("./types.js").CertificateResponse;
196
64
  /** Backend query type: PaginationQuery. */
197
65
  export interface CertificateIndexTemplateGetQuery extends QueryParams {
198
66
  "page_number"?: number | null;
199
67
  "page_size"?: number | null;
200
68
  }
201
69
  /** Backend response type: crate::models::PagedResult<models::CertificateTemplateResponse>. */
202
- export interface CertificateIndexTemplateGetResponseItem extends JsonObject {
203
- "id": string;
204
- "name": string;
205
- "name_en"?: string | null;
206
- "background_url": string;
207
- "canvas_width": number;
208
- "canvas_height": number;
209
- "layout": JsonValue;
210
- "status": string;
211
- "created_at": string;
212
- "updated_at": string;
213
- }
214
- export interface CertificateIndexTemplateGetResponsePageMeta extends JsonObject {
215
- "page": number;
216
- "page_size": number;
217
- "total_items": number;
218
- "total_pages": number;
219
- }
220
- export interface CertificateIndexTemplateGetResponseData extends JsonObject {
221
- "data": CertificateIndexTemplateGetResponseItem[];
222
- "meta": CertificateIndexTemplateGetResponsePageMeta;
223
- }
224
- export interface CertificateIndexTemplateGetResponse extends ApiEnvelope<CertificateIndexTemplateGetResponseData> {
225
- }
70
+ export type CertificateIndexTemplateGetResponse = import("./types.js").CertificateTemplateListResponse;
226
71
  /** Backend request type: models::CreateCertificateTemplateRequest. */
227
- export interface CertificateStoreTemplatePostInput extends JsonObject {
228
- "name": string;
229
- "name_en"?: string | null;
230
- "background_url": string;
231
- "canvas_width": number;
232
- "canvas_height": number;
233
- "layout"?: JsonValue | null;
234
- "status"?: string | null;
235
- }
72
+ export type CertificateStoreTemplatePostInput = import("./types.js").CreateCertificateTemplateInput;
236
73
  /** Backend response type: models::CertificateTemplateResponse. */
237
- export interface CertificateStoreTemplatePostResponseData extends JsonObject {
238
- "id": string;
239
- "name": string;
240
- "name_en"?: string | null;
241
- "background_url": string;
242
- "canvas_width": number;
243
- "canvas_height": number;
244
- "layout": JsonValue;
245
- "status": string;
246
- "created_at": string;
247
- "updated_at": string;
248
- }
249
- export interface CertificateStoreTemplatePostResponse extends ApiEnvelope<CertificateStoreTemplatePostResponseData> {
250
- }
74
+ export type CertificateStoreTemplatePostResponse = import("./types.js").CertificateTemplateResponse;
251
75
  /** Backend response type: models::CertificateTemplateResponse. */
252
- export interface CertificateShowTemplateGetResponseData extends JsonObject {
253
- "id": string;
254
- "name": string;
255
- "name_en"?: string | null;
256
- "background_url": string;
257
- "canvas_width": number;
258
- "canvas_height": number;
259
- "layout": JsonValue;
260
- "status": string;
261
- "created_at": string;
262
- "updated_at": string;
263
- }
264
- export interface CertificateShowTemplateGetResponse extends ApiEnvelope<CertificateShowTemplateGetResponseData> {
265
- }
76
+ export type CertificateShowTemplateGetResponse = import("./types.js").CertificateTemplateResponse;
266
77
  /** Backend request type: models::UpdateCertificateTemplateRequest. */
267
- export interface CertificateUpdateTemplatePatchInput extends JsonObject {
268
- "name"?: string | null;
269
- "name_en"?: string | null;
270
- "background_url"?: string | null;
271
- "canvas_width"?: number | null;
272
- "canvas_height"?: number | null;
273
- "layout"?: JsonValue | null;
274
- "status"?: string | null;
275
- }
78
+ export type CertificateUpdateTemplatePatchInput = import("./types.js").UpdateCertificateTemplateInput;
276
79
  /** Backend response type: models::CertificateTemplateResponse. */
277
- export interface CertificateUpdateTemplatePatchResponseData extends JsonObject {
278
- "id": string;
279
- "name": string;
280
- "name_en"?: string | null;
281
- "background_url": string;
282
- "canvas_width": number;
283
- "canvas_height": number;
284
- "layout": JsonValue;
285
- "status": string;
286
- "created_at": string;
287
- "updated_at": string;
288
- }
289
- export interface CertificateUpdateTemplatePatchResponse extends ApiEnvelope<CertificateUpdateTemplatePatchResponseData> {
290
- }
80
+ export type CertificateUpdateTemplatePatchResponse = import("./types.js").CertificateTemplateResponse;
291
81
  /** Backend query type: models::ClassroomListQuery. */
292
82
  export interface ClassroomIndexClassroomGetQuery extends QueryParams {
293
83
  "page_number"?: number | null;
@@ -303,6 +93,30 @@ export interface ClassroomIndexClassroomGetQuery extends QueryParams {
303
93
  "to"?: string | null;
304
94
  }
305
95
  /** Backend response type: crate::models::PagedResult<models::ClassroomResponse>. */
96
+ export interface ClassroomIndexClassroomGetResponseItemTeacherProfile extends JsonObject {
97
+ "user_id": string;
98
+ "first_name"?: JsonValue | null;
99
+ "last_name"?: JsonValue | null;
100
+ "email"?: string | null;
101
+ "national_code"?: string | null;
102
+ "phone"?: string | null;
103
+ }
104
+ export interface ClassroomIndexClassroomGetResponseItemConsultantProfile extends JsonObject {
105
+ "user_id": string;
106
+ "first_name"?: JsonValue | null;
107
+ "last_name"?: JsonValue | null;
108
+ "email"?: string | null;
109
+ "national_code"?: string | null;
110
+ "phone"?: string | null;
111
+ }
112
+ export interface ClassroomIndexClassroomGetResponseItemSupportProfile extends JsonObject {
113
+ "user_id": string;
114
+ "first_name"?: JsonValue | null;
115
+ "last_name"?: JsonValue | null;
116
+ "email"?: string | null;
117
+ "national_code"?: string | null;
118
+ "phone"?: string | null;
119
+ }
306
120
  export interface ClassroomIndexClassroomGetResponseItem extends JsonObject {
307
121
  "id": string;
308
122
  "course_id": string;
@@ -312,6 +126,9 @@ export interface ClassroomIndexClassroomGetResponseItem extends JsonObject {
312
126
  "course_passing_mark"?: number | null;
313
127
  "current_user_score"?: number | null;
314
128
  "current_user_passed"?: boolean | null;
129
+ "session_count": number;
130
+ "completed_session_count": number;
131
+ "progress_rate": number;
315
132
  "name": string;
316
133
  "code"?: string | null;
317
134
  "description"?: string | null;
@@ -320,11 +137,11 @@ export interface ClassroomIndexClassroomGetResponseItem extends JsonObject {
320
137
  "school_grade_id"?: string | null;
321
138
  "grade_id"?: string | null;
322
139
  "teacher_user_id"?: string | null;
323
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
140
+ "teacher_profile"?: ClassroomIndexClassroomGetResponseItemTeacherProfile | null;
324
141
  "consultant_user_id"?: string | null;
325
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
142
+ "consultant_profile"?: ClassroomIndexClassroomGetResponseItemConsultantProfile | null;
326
143
  "support_user_id"?: string | null;
327
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
144
+ "support_profile"?: ClassroomIndexClassroomGetResponseItemSupportProfile | null;
328
145
  "capacity"?: number | null;
329
146
  "notifications": JsonValue;
330
147
  "weekly_schedule": JsonValue;
@@ -369,6 +186,30 @@ export interface ClassroomStoreClassroomPostInput extends JsonObject {
369
186
  "status": string;
370
187
  }
371
188
  /** Backend response type: models::ClassroomResponse. */
189
+ export interface ClassroomStoreClassroomPostResponseDataTeacherProfile extends JsonObject {
190
+ "user_id": string;
191
+ "first_name"?: JsonValue | null;
192
+ "last_name"?: JsonValue | null;
193
+ "email"?: string | null;
194
+ "national_code"?: string | null;
195
+ "phone"?: string | null;
196
+ }
197
+ export interface ClassroomStoreClassroomPostResponseDataConsultantProfile extends JsonObject {
198
+ "user_id": string;
199
+ "first_name"?: JsonValue | null;
200
+ "last_name"?: JsonValue | null;
201
+ "email"?: string | null;
202
+ "national_code"?: string | null;
203
+ "phone"?: string | null;
204
+ }
205
+ export interface ClassroomStoreClassroomPostResponseDataSupportProfile extends JsonObject {
206
+ "user_id": string;
207
+ "first_name"?: JsonValue | null;
208
+ "last_name"?: JsonValue | null;
209
+ "email"?: string | null;
210
+ "national_code"?: string | null;
211
+ "phone"?: string | null;
212
+ }
372
213
  export interface ClassroomStoreClassroomPostResponseData extends JsonObject {
373
214
  "id": string;
374
215
  "course_id": string;
@@ -378,6 +219,9 @@ export interface ClassroomStoreClassroomPostResponseData extends JsonObject {
378
219
  "course_passing_mark"?: number | null;
379
220
  "current_user_score"?: number | null;
380
221
  "current_user_passed"?: boolean | null;
222
+ "session_count": number;
223
+ "completed_session_count": number;
224
+ "progress_rate": number;
381
225
  "name": string;
382
226
  "code"?: string | null;
383
227
  "description"?: string | null;
@@ -386,11 +230,11 @@ export interface ClassroomStoreClassroomPostResponseData extends JsonObject {
386
230
  "school_grade_id"?: string | null;
387
231
  "grade_id"?: string | null;
388
232
  "teacher_user_id"?: string | null;
389
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
233
+ "teacher_profile"?: ClassroomStoreClassroomPostResponseDataTeacherProfile | null;
390
234
  "consultant_user_id"?: string | null;
391
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
235
+ "consultant_profile"?: ClassroomStoreClassroomPostResponseDataConsultantProfile | null;
392
236
  "support_user_id"?: string | null;
393
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
237
+ "support_profile"?: ClassroomStoreClassroomPostResponseDataSupportProfile | null;
394
238
  "capacity"?: number | null;
395
239
  "notifications": JsonValue;
396
240
  "weekly_schedule": JsonValue;
@@ -404,6 +248,30 @@ export interface ClassroomStoreClassroomPostResponseData extends JsonObject {
404
248
  export interface ClassroomStoreClassroomPostResponse extends ApiEnvelope<ClassroomStoreClassroomPostResponseData> {
405
249
  }
406
250
  /** Backend response type: models::ClassroomResponse. */
251
+ export interface ClassroomShowClassroomGetResponseDataTeacherProfile extends JsonObject {
252
+ "user_id": string;
253
+ "first_name"?: JsonValue | null;
254
+ "last_name"?: JsonValue | null;
255
+ "email"?: string | null;
256
+ "national_code"?: string | null;
257
+ "phone"?: string | null;
258
+ }
259
+ export interface ClassroomShowClassroomGetResponseDataConsultantProfile extends JsonObject {
260
+ "user_id": string;
261
+ "first_name"?: JsonValue | null;
262
+ "last_name"?: JsonValue | null;
263
+ "email"?: string | null;
264
+ "national_code"?: string | null;
265
+ "phone"?: string | null;
266
+ }
267
+ export interface ClassroomShowClassroomGetResponseDataSupportProfile extends JsonObject {
268
+ "user_id": string;
269
+ "first_name"?: JsonValue | null;
270
+ "last_name"?: JsonValue | null;
271
+ "email"?: string | null;
272
+ "national_code"?: string | null;
273
+ "phone"?: string | null;
274
+ }
407
275
  export interface ClassroomShowClassroomGetResponseData extends JsonObject {
408
276
  "id": string;
409
277
  "course_id": string;
@@ -413,6 +281,9 @@ export interface ClassroomShowClassroomGetResponseData extends JsonObject {
413
281
  "course_passing_mark"?: number | null;
414
282
  "current_user_score"?: number | null;
415
283
  "current_user_passed"?: boolean | null;
284
+ "session_count": number;
285
+ "completed_session_count": number;
286
+ "progress_rate": number;
416
287
  "name": string;
417
288
  "code"?: string | null;
418
289
  "description"?: string | null;
@@ -421,11 +292,11 @@ export interface ClassroomShowClassroomGetResponseData extends JsonObject {
421
292
  "school_grade_id"?: string | null;
422
293
  "grade_id"?: string | null;
423
294
  "teacher_user_id"?: string | null;
424
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
295
+ "teacher_profile"?: ClassroomShowClassroomGetResponseDataTeacherProfile | null;
425
296
  "consultant_user_id"?: string | null;
426
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
297
+ "consultant_profile"?: ClassroomShowClassroomGetResponseDataConsultantProfile | null;
427
298
  "support_user_id"?: string | null;
428
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
299
+ "support_profile"?: ClassroomShowClassroomGetResponseDataSupportProfile | null;
429
300
  "capacity"?: number | null;
430
301
  "notifications": JsonValue;
431
302
  "weekly_schedule": JsonValue;
@@ -460,6 +331,30 @@ export interface ClassroomUpdateClassroomPatchInput extends JsonObject {
460
331
  "status"?: string | null;
461
332
  }
462
333
  /** Backend response type: models::ClassroomResponse. */
334
+ export interface ClassroomUpdateClassroomPatchResponseDataTeacherProfile extends JsonObject {
335
+ "user_id": string;
336
+ "first_name"?: JsonValue | null;
337
+ "last_name"?: JsonValue | null;
338
+ "email"?: string | null;
339
+ "national_code"?: string | null;
340
+ "phone"?: string | null;
341
+ }
342
+ export interface ClassroomUpdateClassroomPatchResponseDataConsultantProfile extends JsonObject {
343
+ "user_id": string;
344
+ "first_name"?: JsonValue | null;
345
+ "last_name"?: JsonValue | null;
346
+ "email"?: string | null;
347
+ "national_code"?: string | null;
348
+ "phone"?: string | null;
349
+ }
350
+ export interface ClassroomUpdateClassroomPatchResponseDataSupportProfile extends JsonObject {
351
+ "user_id": string;
352
+ "first_name"?: JsonValue | null;
353
+ "last_name"?: JsonValue | null;
354
+ "email"?: string | null;
355
+ "national_code"?: string | null;
356
+ "phone"?: string | null;
357
+ }
463
358
  export interface ClassroomUpdateClassroomPatchResponseData extends JsonObject {
464
359
  "id": string;
465
360
  "course_id": string;
@@ -469,6 +364,9 @@ export interface ClassroomUpdateClassroomPatchResponseData extends JsonObject {
469
364
  "course_passing_mark"?: number | null;
470
365
  "current_user_score"?: number | null;
471
366
  "current_user_passed"?: boolean | null;
367
+ "session_count": number;
368
+ "completed_session_count": number;
369
+ "progress_rate": number;
472
370
  "name": string;
473
371
  "code"?: string | null;
474
372
  "description"?: string | null;
@@ -477,11 +375,11 @@ export interface ClassroomUpdateClassroomPatchResponseData extends JsonObject {
477
375
  "school_grade_id"?: string | null;
478
376
  "grade_id"?: string | null;
479
377
  "teacher_user_id"?: string | null;
480
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
378
+ "teacher_profile"?: ClassroomUpdateClassroomPatchResponseDataTeacherProfile | null;
481
379
  "consultant_user_id"?: string | null;
482
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
380
+ "consultant_profile"?: ClassroomUpdateClassroomPatchResponseDataConsultantProfile | null;
483
381
  "support_user_id"?: string | null;
484
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
382
+ "support_profile"?: ClassroomUpdateClassroomPatchResponseDataSupportProfile | null;
485
383
  "capacity"?: number | null;
486
384
  "notifications": JsonValue;
487
385
  "weekly_schedule": JsonValue;
@@ -495,6 +393,38 @@ export interface ClassroomUpdateClassroomPatchResponseData extends JsonObject {
495
393
  export interface ClassroomUpdateClassroomPatchResponse extends ApiEnvelope<ClassroomUpdateClassroomPatchResponseData> {
496
394
  }
497
395
  /** Backend response type: models::CompletionReviewResponse. */
396
+ export interface ClassroomShowCompletionGetResponseDataExams extends JsonObject {
397
+ "exam_session_id": string;
398
+ "exam_id": string;
399
+ "name": string;
400
+ }
401
+ export interface ClassroomShowCompletionGetResponseDataCertificateTemplates extends JsonObject {
402
+ "id": string;
403
+ "name": string;
404
+ }
405
+ export interface ClassroomShowCompletionGetResponseDataStudentsProfile extends JsonObject {
406
+ "user_id": string;
407
+ "first_name"?: JsonValue | null;
408
+ "last_name"?: JsonValue | null;
409
+ "email"?: string | null;
410
+ "national_code"?: string | null;
411
+ "phone"?: string | null;
412
+ }
413
+ export interface ClassroomShowCompletionGetResponseDataStudentsExamScores extends JsonObject {
414
+ "exam_session_id": string;
415
+ "score"?: number | null;
416
+ "teacher_score"?: number | null;
417
+ "effective_score"?: number | null;
418
+ "status": string;
419
+ }
420
+ export interface ClassroomShowCompletionGetResponseDataStudents extends JsonObject {
421
+ "user_id": string;
422
+ "profile"?: ClassroomShowCompletionGetResponseDataStudentsProfile | null;
423
+ "exam_scores": ClassroomShowCompletionGetResponseDataStudentsExamScores[];
424
+ "suggested_final_score"?: number | null;
425
+ "final_score"?: number | null;
426
+ "passed"?: boolean | null;
427
+ }
498
428
  export interface ClassroomShowCompletionGetResponseData extends JsonObject {
499
429
  "classroom_id": string;
500
430
  "classroom_name": string;
@@ -502,16 +432,20 @@ export interface ClassroomShowCompletionGetResponseData extends JsonObject {
502
432
  "course_id": string;
503
433
  "course_name": string;
504
434
  "passing_mark"?: number | null;
505
- "exams": BackendJson<"CompletionExam">[];
506
- "certificate_templates": BackendJson<"CompletionCertificateTemplate">[];
507
- "students": BackendJson<"CompletionStudent">[];
435
+ "exams": ClassroomShowCompletionGetResponseDataExams[];
436
+ "certificate_templates": ClassroomShowCompletionGetResponseDataCertificateTemplates[];
437
+ "students": ClassroomShowCompletionGetResponseDataStudents[];
508
438
  }
509
439
  export interface ClassroomShowCompletionGetResponse extends ApiEnvelope<ClassroomShowCompletionGetResponseData> {
510
440
  }
511
441
  /** Backend request type: models::FinalizeClassroomRequest. */
442
+ export interface ClassroomFinalizeClassroomPostInputStudents extends JsonObject {
443
+ "user_id": BackendJson<"uuid::Uuid">;
444
+ "final_score": number;
445
+ }
512
446
  export interface ClassroomFinalizeClassroomPostInput extends JsonObject {
513
447
  "idempotency_key": string;
514
- "students": BackendJson<"FinalScoreRequest">[];
448
+ "students": ClassroomFinalizeClassroomPostInputStudents[];
515
449
  }
516
450
  /** Backend response type: models::FinalizeClassroomResponse. */
517
451
  export interface ClassroomFinalizeClassroomPostResponseData extends JsonObject {
@@ -528,11 +462,19 @@ export interface ClassroomIndexClassroomUsersGetQuery extends QueryParams {
528
462
  "page_size"?: number | null;
529
463
  }
530
464
  /** Backend response type: crate::models::PagedResult<models::ClassroomUserResponse>. */
465
+ export interface ClassroomIndexClassroomUsersGetResponseItemProfile extends JsonObject {
466
+ "user_id": string;
467
+ "first_name"?: JsonValue | null;
468
+ "last_name"?: JsonValue | null;
469
+ "email"?: string | null;
470
+ "national_code"?: string | null;
471
+ "phone"?: string | null;
472
+ }
531
473
  export interface ClassroomIndexClassroomUsersGetResponseItem extends JsonObject {
532
474
  "id": string;
533
475
  "classroom_id": string;
534
476
  "user_id": string;
535
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
477
+ "profile"?: ClassroomIndexClassroomUsersGetResponseItemProfile | null;
536
478
  "score"?: number | null;
537
479
  "status": string;
538
480
  "created_at": string;
@@ -557,11 +499,19 @@ export interface ClassroomEnrollClassroomUserPostInput extends JsonObject {
557
499
  "status"?: string | null;
558
500
  }
559
501
  /** Backend response type: models::ClassroomUserResponse. */
502
+ export interface ClassroomEnrollClassroomUserPostResponseDataProfile extends JsonObject {
503
+ "user_id": string;
504
+ "first_name"?: JsonValue | null;
505
+ "last_name"?: JsonValue | null;
506
+ "email"?: string | null;
507
+ "national_code"?: string | null;
508
+ "phone"?: string | null;
509
+ }
560
510
  export interface ClassroomEnrollClassroomUserPostResponseData extends JsonObject {
561
511
  "id": string;
562
512
  "classroom_id": string;
563
513
  "user_id": string;
564
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
514
+ "profile"?: ClassroomEnrollClassroomUserPostResponseDataProfile | null;
565
515
  "score"?: number | null;
566
516
  "status": string;
567
517
  "created_at": string;
@@ -578,11 +528,19 @@ export interface ClassroomUpdateClassroomUserPatchInput extends JsonObject {
578
528
  "status"?: string | null;
579
529
  }
580
530
  /** Backend response type: models::ClassroomUserResponse. */
531
+ export interface ClassroomUpdateClassroomUserPatchResponseDataProfile extends JsonObject {
532
+ "user_id": string;
533
+ "first_name"?: JsonValue | null;
534
+ "last_name"?: JsonValue | null;
535
+ "email"?: string | null;
536
+ "national_code"?: string | null;
537
+ "phone"?: string | null;
538
+ }
581
539
  export interface ClassroomUpdateClassroomUserPatchResponseData extends JsonObject {
582
540
  "id": string;
583
541
  "classroom_id": string;
584
542
  "user_id": string;
585
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
543
+ "profile"?: ClassroomUpdateClassroomUserPatchResponseDataProfile | null;
586
544
  "score"?: number | null;
587
545
  "status": string;
588
546
  "created_at": string;
@@ -590,12 +548,19 @@ export interface ClassroomUpdateClassroomUserPatchResponseData extends JsonObjec
590
548
  }
591
549
  export interface ClassroomUpdateClassroomUserPatchResponse extends ApiEnvelope<ClassroomUpdateClassroomUserPatchResponseData> {
592
550
  }
551
+ /** Backend request type: IdBatch. */
552
+ export interface IntegrationBatchClassroomsPostInput extends JsonObject {
553
+ "ids"?: string[];
554
+ }
555
+ /** Backend response type: Value. */
556
+ export interface IntegrationBatchClassroomsPostResponse extends ApiEnvelope<JsonValue> {
557
+ }
593
558
  /** Backend response type: Vec<models::ClassroomSessionTypeResponse>. */
594
559
  export interface ClassroomIndexSessionTypesGetResponseItem extends JsonObject {
595
560
  "id": string;
596
561
  "code": string;
597
562
  "name": string;
598
- "name_en"?: string | null;
563
+ "name_fa"?: string | null;
599
564
  "is_online": boolean;
600
565
  "status": string;
601
566
  "sort_order": number;
@@ -615,25 +580,58 @@ export interface ClassroomIndexSessionGetQuery extends QueryParams {
615
580
  "to"?: string | null;
616
581
  }
617
582
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
583
+ export interface ClassroomIndexSessionGetResponseItemCourseSession extends JsonObject {
584
+ "id": string;
585
+ "course_id": string;
586
+ "name": string;
587
+ "description"?: string | null;
588
+ "sort_order": number;
589
+ "session_type": string;
590
+ "session_type_id"?: string | null;
591
+ "duration_minutes"?: number | null;
592
+ "status": string;
593
+ }
594
+ export interface ClassroomIndexSessionGetResponseItemSessionType extends JsonObject {
595
+ "id": string;
596
+ "code": string;
597
+ "name": string;
598
+ "name_fa"?: string | null;
599
+ "is_online": boolean;
600
+ "status": string;
601
+ "sort_order": number;
602
+ "created_at": string;
603
+ "updated_at": string;
604
+ }
605
+ export interface ClassroomIndexSessionGetResponseItemTeacherProfile extends JsonObject {
606
+ "user_id": string;
607
+ "first_name"?: JsonValue | null;
608
+ "last_name"?: JsonValue | null;
609
+ "email"?: string | null;
610
+ "national_code"?: string | null;
611
+ "phone"?: string | null;
612
+ }
618
613
  export interface ClassroomIndexSessionGetResponseItem extends JsonObject {
619
614
  "id": string;
620
615
  "classroom_id": string;
621
616
  "classroom_name"?: string | null;
622
617
  "course_session_id"?: string | null;
623
- "course_session"?: import("./types.js").ClassroomCourseSession | null;
618
+ "course_session"?: ClassroomIndexSessionGetResponseItemCourseSession | null;
624
619
  "course_session_type_id"?: string | null;
625
- "session_type"?: import("./types.js").ClassroomSessionType | null;
620
+ "session_type"?: ClassroomIndexSessionGetResponseItemSessionType | null;
626
621
  "name"?: string | null;
627
622
  "session_number"?: number | null;
628
623
  "duration_minutes"?: number | null;
629
624
  "description"?: string | null;
630
625
  "teacher_user_id"?: string | null;
631
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
626
+ "teacher_profile"?: ClassroomIndexSessionGetResponseItemTeacherProfile | null;
632
627
  "locked": boolean;
633
628
  "auto_unlock": boolean;
634
629
  "auto_present": boolean;
635
630
  "invited": boolean;
636
631
  "session_room_id"?: string | null;
632
+ "session_lifecycle_status"?: string | null;
633
+ "session_access_mode": string;
634
+ "session_archive_ready": boolean;
637
635
  "starts_at"?: string | null;
638
636
  "ends_at"?: string | null;
639
637
  "status": string;
@@ -656,6 +654,7 @@ export interface ClassroomIndexSessionGetResponse extends ApiEnvelope<ClassroomI
656
654
  export interface ClassroomStoreSessionPostInput extends JsonObject {
657
655
  "classroom_id": string;
658
656
  "course_session_id"?: string | null;
657
+ "course_session_type_id"?: string | null;
659
658
  "name"?: string | null;
660
659
  "session_number"?: number | null;
661
660
  "duration_minutes"?: number | null;
@@ -666,29 +665,61 @@ export interface ClassroomStoreSessionPostInput extends JsonObject {
666
665
  "auto_present"?: boolean | null;
667
666
  "invited"?: boolean | null;
668
667
  "starts_at"?: string | null;
669
- "ends_at"?: string | null;
670
668
  "status": string;
671
669
  }
672
670
  /** Backend response type: models::SessionResponse. */
671
+ export interface ClassroomStoreSessionPostResponseDataCourseSession extends JsonObject {
672
+ "id": string;
673
+ "course_id": string;
674
+ "name": string;
675
+ "description"?: string | null;
676
+ "sort_order": number;
677
+ "session_type": string;
678
+ "session_type_id"?: string | null;
679
+ "duration_minutes"?: number | null;
680
+ "status": string;
681
+ }
682
+ export interface ClassroomStoreSessionPostResponseDataSessionType extends JsonObject {
683
+ "id": string;
684
+ "code": string;
685
+ "name": string;
686
+ "name_fa"?: string | null;
687
+ "is_online": boolean;
688
+ "status": string;
689
+ "sort_order": number;
690
+ "created_at": string;
691
+ "updated_at": string;
692
+ }
693
+ export interface ClassroomStoreSessionPostResponseDataTeacherProfile extends JsonObject {
694
+ "user_id": string;
695
+ "first_name"?: JsonValue | null;
696
+ "last_name"?: JsonValue | null;
697
+ "email"?: string | null;
698
+ "national_code"?: string | null;
699
+ "phone"?: string | null;
700
+ }
673
701
  export interface ClassroomStoreSessionPostResponseData extends JsonObject {
674
702
  "id": string;
675
703
  "classroom_id": string;
676
704
  "classroom_name"?: string | null;
677
705
  "course_session_id"?: string | null;
678
- "course_session"?: import("./types.js").ClassroomCourseSession | null;
706
+ "course_session"?: ClassroomStoreSessionPostResponseDataCourseSession | null;
679
707
  "course_session_type_id"?: string | null;
680
- "session_type"?: import("./types.js").ClassroomSessionType | null;
708
+ "session_type"?: ClassroomStoreSessionPostResponseDataSessionType | null;
681
709
  "name"?: string | null;
682
710
  "session_number"?: number | null;
683
711
  "duration_minutes"?: number | null;
684
712
  "description"?: string | null;
685
713
  "teacher_user_id"?: string | null;
686
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
714
+ "teacher_profile"?: ClassroomStoreSessionPostResponseDataTeacherProfile | null;
687
715
  "locked": boolean;
688
716
  "auto_unlock": boolean;
689
717
  "auto_present": boolean;
690
718
  "invited": boolean;
691
719
  "session_room_id"?: string | null;
720
+ "session_lifecycle_status"?: string | null;
721
+ "session_access_mode": string;
722
+ "session_archive_ready": boolean;
692
723
  "starts_at"?: string | null;
693
724
  "ends_at"?: string | null;
694
725
  "status": string;
@@ -698,25 +729,58 @@ export interface ClassroomStoreSessionPostResponseData extends JsonObject {
698
729
  export interface ClassroomStoreSessionPostResponse extends ApiEnvelope<ClassroomStoreSessionPostResponseData> {
699
730
  }
700
731
  /** Backend response type: models::SessionResponse. */
732
+ export interface ClassroomShowSessionGetResponseDataCourseSession extends JsonObject {
733
+ "id": string;
734
+ "course_id": string;
735
+ "name": string;
736
+ "description"?: string | null;
737
+ "sort_order": number;
738
+ "session_type": string;
739
+ "session_type_id"?: string | null;
740
+ "duration_minutes"?: number | null;
741
+ "status": string;
742
+ }
743
+ export interface ClassroomShowSessionGetResponseDataSessionType extends JsonObject {
744
+ "id": string;
745
+ "code": string;
746
+ "name": string;
747
+ "name_fa"?: string | null;
748
+ "is_online": boolean;
749
+ "status": string;
750
+ "sort_order": number;
751
+ "created_at": string;
752
+ "updated_at": string;
753
+ }
754
+ export interface ClassroomShowSessionGetResponseDataTeacherProfile extends JsonObject {
755
+ "user_id": string;
756
+ "first_name"?: JsonValue | null;
757
+ "last_name"?: JsonValue | null;
758
+ "email"?: string | null;
759
+ "national_code"?: string | null;
760
+ "phone"?: string | null;
761
+ }
701
762
  export interface ClassroomShowSessionGetResponseData extends JsonObject {
702
763
  "id": string;
703
764
  "classroom_id": string;
704
765
  "classroom_name"?: string | null;
705
766
  "course_session_id"?: string | null;
706
- "course_session"?: import("./types.js").ClassroomCourseSession | null;
767
+ "course_session"?: ClassroomShowSessionGetResponseDataCourseSession | null;
707
768
  "course_session_type_id"?: string | null;
708
- "session_type"?: import("./types.js").ClassroomSessionType | null;
769
+ "session_type"?: ClassroomShowSessionGetResponseDataSessionType | null;
709
770
  "name"?: string | null;
710
771
  "session_number"?: number | null;
711
772
  "duration_minutes"?: number | null;
712
773
  "description"?: string | null;
713
774
  "teacher_user_id"?: string | null;
714
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
775
+ "teacher_profile"?: ClassroomShowSessionGetResponseDataTeacherProfile | null;
715
776
  "locked": boolean;
716
777
  "auto_unlock": boolean;
717
778
  "auto_present": boolean;
718
779
  "invited": boolean;
719
780
  "session_room_id"?: string | null;
781
+ "session_lifecycle_status"?: string | null;
782
+ "session_access_mode": string;
783
+ "session_archive_ready": boolean;
720
784
  "starts_at"?: string | null;
721
785
  "ends_at"?: string | null;
722
786
  "status": string;
@@ -727,8 +791,10 @@ export interface ClassroomShowSessionGetResponse extends ApiEnvelope<ClassroomSh
727
791
  }
728
792
  /** Backend request type: models::UpdateSessionRequest. */
729
793
  export interface ClassroomUpdateSessionPatchInput extends JsonObject {
794
+ "confirm_recording_reset"?: boolean;
730
795
  "classroom_id"?: string | null;
731
796
  "course_session_id"?: string | null;
797
+ "course_session_type_id"?: string | null;
732
798
  "name"?: string | null;
733
799
  "session_number"?: number | null;
734
800
  "duration_minutes"?: number | null;
@@ -739,29 +805,61 @@ export interface ClassroomUpdateSessionPatchInput extends JsonObject {
739
805
  "auto_present"?: boolean | null;
740
806
  "invited"?: boolean | null;
741
807
  "starts_at"?: string | null;
742
- "ends_at"?: string | null;
743
808
  "status"?: string | null;
744
809
  }
745
810
  /** Backend response type: models::SessionResponse. */
811
+ export interface ClassroomUpdateSessionPatchResponseDataCourseSession extends JsonObject {
812
+ "id": string;
813
+ "course_id": string;
814
+ "name": string;
815
+ "description"?: string | null;
816
+ "sort_order": number;
817
+ "session_type": string;
818
+ "session_type_id"?: string | null;
819
+ "duration_minutes"?: number | null;
820
+ "status": string;
821
+ }
822
+ export interface ClassroomUpdateSessionPatchResponseDataSessionType extends JsonObject {
823
+ "id": string;
824
+ "code": string;
825
+ "name": string;
826
+ "name_fa"?: string | null;
827
+ "is_online": boolean;
828
+ "status": string;
829
+ "sort_order": number;
830
+ "created_at": string;
831
+ "updated_at": string;
832
+ }
833
+ export interface ClassroomUpdateSessionPatchResponseDataTeacherProfile extends JsonObject {
834
+ "user_id": string;
835
+ "first_name"?: JsonValue | null;
836
+ "last_name"?: JsonValue | null;
837
+ "email"?: string | null;
838
+ "national_code"?: string | null;
839
+ "phone"?: string | null;
840
+ }
746
841
  export interface ClassroomUpdateSessionPatchResponseData extends JsonObject {
747
842
  "id": string;
748
843
  "classroom_id": string;
749
844
  "classroom_name"?: string | null;
750
845
  "course_session_id"?: string | null;
751
- "course_session"?: import("./types.js").ClassroomCourseSession | null;
846
+ "course_session"?: ClassroomUpdateSessionPatchResponseDataCourseSession | null;
752
847
  "course_session_type_id"?: string | null;
753
- "session_type"?: import("./types.js").ClassroomSessionType | null;
848
+ "session_type"?: ClassroomUpdateSessionPatchResponseDataSessionType | null;
754
849
  "name"?: string | null;
755
850
  "session_number"?: number | null;
756
851
  "duration_minutes"?: number | null;
757
852
  "description"?: string | null;
758
853
  "teacher_user_id"?: string | null;
759
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
854
+ "teacher_profile"?: ClassroomUpdateSessionPatchResponseDataTeacherProfile | null;
760
855
  "locked": boolean;
761
856
  "auto_unlock": boolean;
762
857
  "auto_present": boolean;
763
858
  "invited": boolean;
764
859
  "session_room_id"?: string | null;
860
+ "session_lifecycle_status"?: string | null;
861
+ "session_access_mode": string;
862
+ "session_archive_ready": boolean;
765
863
  "starts_at"?: string | null;
766
864
  "ends_at"?: string | null;
767
865
  "status": string;
@@ -776,11 +874,19 @@ export interface ClassroomIndexAttendanceGetQuery extends QueryParams {
776
874
  "page_size"?: number | null;
777
875
  }
778
876
  /** Backend response type: crate::models::PagedResult<models::AbsenceResponse>. */
877
+ export interface ClassroomIndexAttendanceGetResponseItemProfile extends JsonObject {
878
+ "user_id": string;
879
+ "first_name"?: JsonValue | null;
880
+ "last_name"?: JsonValue | null;
881
+ "email"?: string | null;
882
+ "national_code"?: string | null;
883
+ "phone"?: string | null;
884
+ }
779
885
  export interface ClassroomIndexAttendanceGetResponseItem extends JsonObject {
780
886
  "id": string;
781
887
  "classroom_session_id": string;
782
888
  "user_id": string;
783
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
889
+ "profile"?: ClassroomIndexAttendanceGetResponseItemProfile | null;
784
890
  "status": string;
785
891
  "absence_reason"?: string | null;
786
892
  "created_at": string;
@@ -798,8 +904,17 @@ export interface ClassroomIndexAttendanceGetResponseData extends JsonObject {
798
904
  export interface ClassroomIndexAttendanceGetResponse extends ApiEnvelope<ClassroomIndexAttendanceGetResponseData> {
799
905
  }
800
906
  /** Backend request type: models::BatchAttendanceRequest. */
907
+ export interface ClassroomRecordAttendancePutInputItems extends JsonObject {
908
+ "user_id": BackendJson<"uuid::Uuid">;
909
+ "status": string;
910
+ "absence_reason"?: string | null;
911
+ "ratings"?: JsonValue | null;
912
+ "description"?: string | null;
913
+ "online"?: boolean | null;
914
+ "attended_seconds"?: number | null;
915
+ }
801
916
  export interface ClassroomRecordAttendancePutInput extends JsonObject {
802
- "items": BackendJson<"AttendanceItem">[];
917
+ "items": ClassroomRecordAttendancePutInputItems[];
803
918
  "idempotency_key": string;
804
919
  }
805
920
  /** Backend response type: models::BatchAttendanceResponse. */
@@ -817,25 +932,58 @@ export interface ClassroomIndexTodaySessionsGetQuery extends QueryParams {
817
932
  "timezone_offset_minutes"?: number | null;
818
933
  }
819
934
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
935
+ export interface ClassroomIndexTodaySessionsGetResponseItemCourseSession extends JsonObject {
936
+ "id": string;
937
+ "course_id": string;
938
+ "name": string;
939
+ "description"?: string | null;
940
+ "sort_order": number;
941
+ "session_type": string;
942
+ "session_type_id"?: string | null;
943
+ "duration_minutes"?: number | null;
944
+ "status": string;
945
+ }
946
+ export interface ClassroomIndexTodaySessionsGetResponseItemSessionType extends JsonObject {
947
+ "id": string;
948
+ "code": string;
949
+ "name": string;
950
+ "name_fa"?: string | null;
951
+ "is_online": boolean;
952
+ "status": string;
953
+ "sort_order": number;
954
+ "created_at": string;
955
+ "updated_at": string;
956
+ }
957
+ export interface ClassroomIndexTodaySessionsGetResponseItemTeacherProfile extends JsonObject {
958
+ "user_id": string;
959
+ "first_name"?: JsonValue | null;
960
+ "last_name"?: JsonValue | null;
961
+ "email"?: string | null;
962
+ "national_code"?: string | null;
963
+ "phone"?: string | null;
964
+ }
820
965
  export interface ClassroomIndexTodaySessionsGetResponseItem extends JsonObject {
821
966
  "id": string;
822
967
  "classroom_id": string;
823
968
  "classroom_name"?: string | null;
824
969
  "course_session_id"?: string | null;
825
- "course_session"?: import("./types.js").ClassroomCourseSession | null;
970
+ "course_session"?: ClassroomIndexTodaySessionsGetResponseItemCourseSession | null;
826
971
  "course_session_type_id"?: string | null;
827
- "session_type"?: import("./types.js").ClassroomSessionType | null;
972
+ "session_type"?: ClassroomIndexTodaySessionsGetResponseItemSessionType | null;
828
973
  "name"?: string | null;
829
974
  "session_number"?: number | null;
830
975
  "duration_minutes"?: number | null;
831
976
  "description"?: string | null;
832
977
  "teacher_user_id"?: string | null;
833
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
978
+ "teacher_profile"?: ClassroomIndexTodaySessionsGetResponseItemTeacherProfile | null;
834
979
  "locked": boolean;
835
980
  "auto_unlock": boolean;
836
981
  "auto_present": boolean;
837
982
  "invited": boolean;
838
983
  "session_room_id"?: string | null;
984
+ "session_lifecycle_status"?: string | null;
985
+ "session_access_mode": string;
986
+ "session_archive_ready": boolean;
839
987
  "starts_at"?: string | null;
840
988
  "ends_at"?: string | null;
841
989
  "status": string;
@@ -854,17 +1002,35 @@ export interface ClassroomIndexTodaySessionsGetResponseData extends JsonObject {
854
1002
  }
855
1003
  export interface ClassroomIndexTodaySessionsGetResponse extends ApiEnvelope<ClassroomIndexTodaySessionsGetResponseData> {
856
1004
  }
1005
+ /** Backend response type: Value. */
1006
+ export interface IntegrationCurrentClassroomUsersGetResponse extends ApiEnvelope<JsonValue> {
1007
+ }
1008
+ /** Backend request type: UserIdBatch. */
1009
+ export interface IntegrationDropoutEligibilityPostInput extends JsonObject {
1010
+ "user_ids"?: string[];
1011
+ }
1012
+ /** Backend response type: Value. */
1013
+ export interface IntegrationDropoutEligibilityPostResponse extends ApiEnvelope<JsonValue> {
1014
+ }
857
1015
  /** Backend query type: PaginationQuery. */
858
1016
  export interface ClassroomIndexAbsencesGetQuery extends QueryParams {
859
1017
  "page_number"?: number | null;
860
1018
  "page_size"?: number | null;
861
1019
  }
862
1020
  /** Backend response type: crate::models::PagedResult<models::AbsenceResponse>. */
1021
+ export interface ClassroomIndexAbsencesGetResponseItemProfile extends JsonObject {
1022
+ "user_id": string;
1023
+ "first_name"?: JsonValue | null;
1024
+ "last_name"?: JsonValue | null;
1025
+ "email"?: string | null;
1026
+ "national_code"?: string | null;
1027
+ "phone"?: string | null;
1028
+ }
863
1029
  export interface ClassroomIndexAbsencesGetResponseItem extends JsonObject {
864
1030
  "id": string;
865
1031
  "classroom_session_id": string;
866
1032
  "user_id": string;
867
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
1033
+ "profile"?: ClassroomIndexAbsencesGetResponseItemProfile | null;
868
1034
  "status": string;
869
1035
  "absence_reason"?: string | null;
870
1036
  "created_at": string;
@@ -879,7 +1045,37 @@ export interface ClassroomIndexAbsencesGetResponseData extends JsonObject {
879
1045
  "data": ClassroomIndexAbsencesGetResponseItem[];
880
1046
  "meta": ClassroomIndexAbsencesGetResponsePageMeta;
881
1047
  }
882
- export interface ClassroomIndexAbsencesGetResponse extends ApiEnvelope<ClassroomIndexAbsencesGetResponseData> {
1048
+ export interface ClassroomIndexAbsencesGetResponse extends ApiEnvelope<ClassroomIndexAbsencesGetResponseData> {
1049
+ }
1050
+ /** Backend response type: Branding. */
1051
+ export interface BrandingShowGetResponseData extends JsonObject {
1052
+ "title"?: string | null;
1053
+ "localizations": Record<string, JsonValue>;
1054
+ "icon_asset_key"?: string | null;
1055
+ "icon_url"?: string | null;
1056
+ }
1057
+ export interface BrandingShowGetResponse extends ApiEnvelope<BrandingShowGetResponseData> {
1058
+ }
1059
+ /** Backend request type: Branding. */
1060
+ export interface BrandingUpdatePutInput extends JsonObject {
1061
+ "title"?: string | null;
1062
+ "localizations": Record<string, JsonValue>;
1063
+ "icon_asset_key"?: string | null;
1064
+ "icon_url"?: string | null;
1065
+ }
1066
+ /** Backend response type: Branding. */
1067
+ export interface BrandingUpdatePutResponseData extends JsonObject {
1068
+ "title"?: string | null;
1069
+ "localizations": Record<string, JsonValue>;
1070
+ "icon_asset_key"?: string | null;
1071
+ "icon_url"?: string | null;
1072
+ }
1073
+ export interface BrandingUpdatePutResponse extends ApiEnvelope<BrandingUpdatePutResponseData> {
1074
+ }
1075
+ /** Backend request type: multipart/form-data. */
1076
+ export type BrandingUploadPostInput = FormData;
1077
+ /** Backend response type: serde_json::Value. */
1078
+ export interface BrandingUploadPostResponse extends ApiEnvelope<JsonValue> {
883
1079
  }
884
1080
  /** Backend query type: PaginationQuery. */
885
1081
  export interface ConfigIndexClassroomTypeGetQuery extends QueryParams {
@@ -1276,7 +1472,7 @@ export interface CourseIndexSessionGetQuery extends QueryParams {
1276
1472
  "page_size"?: number | null;
1277
1473
  }
1278
1474
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
1279
- export interface CourseIndexSessionGetResponseItem extends JsonObject {
1475
+ export interface CourseIndexSessionGetResponseItemCourseSession extends JsonObject {
1280
1476
  "id": string;
1281
1477
  "course_id": string;
1282
1478
  "name": string;
@@ -1284,13 +1480,52 @@ export interface CourseIndexSessionGetResponseItem extends JsonObject {
1284
1480
  "sort_order": number;
1285
1481
  "session_type": string;
1286
1482
  "session_type_id"?: string | null;
1287
- "exam_id"?: string | null;
1288
1483
  "duration_minutes"?: number | null;
1484
+ "status": string;
1485
+ }
1486
+ export interface CourseIndexSessionGetResponseItemSessionType extends JsonObject {
1487
+ "id": string;
1488
+ "code": string;
1489
+ "name": string;
1490
+ "name_fa"?: string | null;
1491
+ "is_online": boolean;
1492
+ "status": string;
1493
+ "sort_order": number;
1494
+ "created_at": string;
1495
+ "updated_at": string;
1496
+ }
1497
+ export interface CourseIndexSessionGetResponseItemTeacherProfile extends JsonObject {
1498
+ "user_id": string;
1499
+ "first_name"?: JsonValue | null;
1500
+ "last_name"?: JsonValue | null;
1501
+ "email"?: string | null;
1502
+ "national_code"?: string | null;
1503
+ "phone"?: string | null;
1504
+ }
1505
+ export interface CourseIndexSessionGetResponseItem extends JsonObject {
1506
+ "id": string;
1507
+ "classroom_id": string;
1508
+ "classroom_name"?: string | null;
1509
+ "course_session_id"?: string | null;
1510
+ "course_session"?: CourseIndexSessionGetResponseItemCourseSession | null;
1511
+ "course_session_type_id"?: string | null;
1512
+ "session_type"?: CourseIndexSessionGetResponseItemSessionType | null;
1513
+ "name"?: string | null;
1514
+ "session_number"?: number | null;
1515
+ "duration_minutes"?: number | null;
1516
+ "description"?: string | null;
1517
+ "teacher_user_id"?: string | null;
1518
+ "teacher_profile"?: CourseIndexSessionGetResponseItemTeacherProfile | null;
1519
+ "locked": boolean;
1289
1520
  "auto_unlock": boolean;
1290
- "info"?: string | null;
1291
- "video_type"?: string | null;
1292
- "external_url"?: string | null;
1293
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1521
+ "auto_present": boolean;
1522
+ "invited": boolean;
1523
+ "session_room_id"?: string | null;
1524
+ "session_lifecycle_status"?: string | null;
1525
+ "session_access_mode": string;
1526
+ "session_archive_ready": boolean;
1527
+ "starts_at"?: string | null;
1528
+ "ends_at"?: string | null;
1294
1529
  "status": string;
1295
1530
  "created_at": string;
1296
1531
  "updated_at": string;
@@ -1309,37 +1544,76 @@ export interface CourseIndexSessionGetResponse extends ApiEnvelope<CourseIndexSe
1309
1544
  }
1310
1545
  /** Backend request type: models::CreateSessionRequest. */
1311
1546
  export interface CourseStoreSessionPostInput extends JsonObject {
1547
+ "classroom_id": string;
1548
+ "course_session_id"?: string | null;
1549
+ "course_session_type_id"?: string | null;
1550
+ "name"?: string | null;
1551
+ "session_number"?: number | null;
1552
+ "duration_minutes"?: number | null;
1553
+ "description"?: string | null;
1554
+ "teacher_user_id"?: string | null;
1555
+ "locked"?: boolean | null;
1556
+ "auto_unlock"?: boolean | null;
1557
+ "auto_present"?: boolean | null;
1558
+ "invited"?: boolean | null;
1559
+ "starts_at"?: string | null;
1560
+ "status": string;
1561
+ }
1562
+ /** Backend response type: models::SessionResponse. */
1563
+ export interface CourseStoreSessionPostResponseDataCourseSession extends JsonObject {
1564
+ "id": string;
1312
1565
  "course_id": string;
1313
1566
  "name": string;
1314
1567
  "description"?: string | null;
1315
1568
  "sort_order": number;
1316
1569
  "session_type": string;
1317
1570
  "session_type_id"?: string | null;
1318
- "exam_id"?: string | null;
1319
1571
  "duration_minutes"?: number | null;
1320
- "auto_unlock": boolean;
1321
- "info"?: string | null;
1322
- "video_type"?: string | null;
1323
- "external_url"?: string | null;
1324
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1325
1572
  "status": string;
1326
1573
  }
1327
- /** Backend response type: models::SessionResponse. */
1328
- export interface CourseStoreSessionPostResponseData extends JsonObject {
1574
+ export interface CourseStoreSessionPostResponseDataSessionType extends JsonObject {
1329
1575
  "id": string;
1330
- "course_id": string;
1576
+ "code": string;
1331
1577
  "name": string;
1332
- "description"?: string | null;
1578
+ "name_fa"?: string | null;
1579
+ "is_online": boolean;
1580
+ "status": string;
1333
1581
  "sort_order": number;
1334
- "session_type": string;
1335
- "session_type_id"?: string | null;
1336
- "exam_id"?: string | null;
1582
+ "created_at": string;
1583
+ "updated_at": string;
1584
+ }
1585
+ export interface CourseStoreSessionPostResponseDataTeacherProfile extends JsonObject {
1586
+ "user_id": string;
1587
+ "first_name"?: JsonValue | null;
1588
+ "last_name"?: JsonValue | null;
1589
+ "email"?: string | null;
1590
+ "national_code"?: string | null;
1591
+ "phone"?: string | null;
1592
+ }
1593
+ export interface CourseStoreSessionPostResponseData extends JsonObject {
1594
+ "id": string;
1595
+ "classroom_id": string;
1596
+ "classroom_name"?: string | null;
1597
+ "course_session_id"?: string | null;
1598
+ "course_session"?: CourseStoreSessionPostResponseDataCourseSession | null;
1599
+ "course_session_type_id"?: string | null;
1600
+ "session_type"?: CourseStoreSessionPostResponseDataSessionType | null;
1601
+ "name"?: string | null;
1602
+ "session_number"?: number | null;
1337
1603
  "duration_minutes"?: number | null;
1604
+ "description"?: string | null;
1605
+ "teacher_user_id"?: string | null;
1606
+ "teacher_profile"?: CourseStoreSessionPostResponseDataTeacherProfile | null;
1607
+ "locked": boolean;
1338
1608
  "auto_unlock": boolean;
1339
- "info"?: string | null;
1340
- "video_type"?: string | null;
1341
- "external_url"?: string | null;
1342
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1609
+ "auto_present": boolean;
1610
+ "invited": boolean;
1611
+ "session_room_id"?: string | null;
1612
+ "session_lifecycle_status"?: string | null;
1613
+ "session_access_mode": string;
1614
+ "session_archive_ready": boolean;
1615
+ "starts_at"?: string | null;
1616
+ "ends_at"?: string | null;
1343
1617
  "status": string;
1344
1618
  "created_at": string;
1345
1619
  "updated_at": string;
@@ -1350,7 +1624,7 @@ export interface CourseStoreSessionPostResponse extends ApiEnvelope<CourseStoreS
1350
1624
  export interface CourseDestroySessionDeleteResponse extends ApiEnvelope<JsonValue> {
1351
1625
  }
1352
1626
  /** Backend response type: models::SessionResponse. */
1353
- export interface CourseShowSessionGetResponseData extends JsonObject {
1627
+ export interface CourseShowSessionGetResponseDataCourseSession extends JsonObject {
1354
1628
  "id": string;
1355
1629
  "course_id": string;
1356
1630
  "name": string;
@@ -1358,13 +1632,52 @@ export interface CourseShowSessionGetResponseData extends JsonObject {
1358
1632
  "sort_order": number;
1359
1633
  "session_type": string;
1360
1634
  "session_type_id"?: string | null;
1361
- "exam_id"?: string | null;
1362
1635
  "duration_minutes"?: number | null;
1636
+ "status": string;
1637
+ }
1638
+ export interface CourseShowSessionGetResponseDataSessionType extends JsonObject {
1639
+ "id": string;
1640
+ "code": string;
1641
+ "name": string;
1642
+ "name_fa"?: string | null;
1643
+ "is_online": boolean;
1644
+ "status": string;
1645
+ "sort_order": number;
1646
+ "created_at": string;
1647
+ "updated_at": string;
1648
+ }
1649
+ export interface CourseShowSessionGetResponseDataTeacherProfile extends JsonObject {
1650
+ "user_id": string;
1651
+ "first_name"?: JsonValue | null;
1652
+ "last_name"?: JsonValue | null;
1653
+ "email"?: string | null;
1654
+ "national_code"?: string | null;
1655
+ "phone"?: string | null;
1656
+ }
1657
+ export interface CourseShowSessionGetResponseData extends JsonObject {
1658
+ "id": string;
1659
+ "classroom_id": string;
1660
+ "classroom_name"?: string | null;
1661
+ "course_session_id"?: string | null;
1662
+ "course_session"?: CourseShowSessionGetResponseDataCourseSession | null;
1663
+ "course_session_type_id"?: string | null;
1664
+ "session_type"?: CourseShowSessionGetResponseDataSessionType | null;
1665
+ "name"?: string | null;
1666
+ "session_number"?: number | null;
1667
+ "duration_minutes"?: number | null;
1668
+ "description"?: string | null;
1669
+ "teacher_user_id"?: string | null;
1670
+ "teacher_profile"?: CourseShowSessionGetResponseDataTeacherProfile | null;
1671
+ "locked": boolean;
1363
1672
  "auto_unlock": boolean;
1364
- "info"?: string | null;
1365
- "video_type"?: string | null;
1366
- "external_url"?: string | null;
1367
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1673
+ "auto_present": boolean;
1674
+ "invited": boolean;
1675
+ "session_room_id"?: string | null;
1676
+ "session_lifecycle_status"?: string | null;
1677
+ "session_access_mode": string;
1678
+ "session_archive_ready": boolean;
1679
+ "starts_at"?: string | null;
1680
+ "ends_at"?: string | null;
1368
1681
  "status": string;
1369
1682
  "created_at": string;
1370
1683
  "updated_at": string;
@@ -1373,22 +1686,24 @@ export interface CourseShowSessionGetResponse extends ApiEnvelope<CourseShowSess
1373
1686
  }
1374
1687
  /** Backend request type: models::UpdateSessionRequest. */
1375
1688
  export interface CourseUpdateSessionPatchInput extends JsonObject {
1689
+ "confirm_recording_reset"?: boolean;
1690
+ "classroom_id"?: string | null;
1691
+ "course_session_id"?: string | null;
1692
+ "course_session_type_id"?: string | null;
1376
1693
  "name"?: string | null;
1377
- "description"?: string | null;
1378
- "sort_order"?: number | null;
1379
- "session_type"?: string | null;
1380
- "session_type_id"?: string | null;
1381
- "exam_id"?: string | null;
1694
+ "session_number"?: number | null;
1382
1695
  "duration_minutes"?: number | null;
1696
+ "description"?: string | null;
1697
+ "teacher_user_id"?: string | null;
1698
+ "locked"?: boolean | null;
1383
1699
  "auto_unlock"?: boolean | null;
1384
- "info"?: string | null;
1385
- "video_type"?: string | null;
1386
- "external_url"?: string | null;
1387
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1700
+ "auto_present"?: boolean | null;
1701
+ "invited"?: boolean | null;
1702
+ "starts_at"?: string | null;
1388
1703
  "status"?: string | null;
1389
1704
  }
1390
1705
  /** Backend response type: models::SessionResponse. */
1391
- export interface CourseUpdateSessionPatchResponseData extends JsonObject {
1706
+ export interface CourseUpdateSessionPatchResponseDataCourseSession extends JsonObject {
1392
1707
  "id": string;
1393
1708
  "course_id": string;
1394
1709
  "name": string;
@@ -1396,13 +1711,52 @@ export interface CourseUpdateSessionPatchResponseData extends JsonObject {
1396
1711
  "sort_order": number;
1397
1712
  "session_type": string;
1398
1713
  "session_type_id"?: string | null;
1399
- "exam_id"?: string | null;
1400
1714
  "duration_minutes"?: number | null;
1715
+ "status": string;
1716
+ }
1717
+ export interface CourseUpdateSessionPatchResponseDataSessionType extends JsonObject {
1718
+ "id": string;
1719
+ "code": string;
1720
+ "name": string;
1721
+ "name_fa"?: string | null;
1722
+ "is_online": boolean;
1723
+ "status": string;
1724
+ "sort_order": number;
1725
+ "created_at": string;
1726
+ "updated_at": string;
1727
+ }
1728
+ export interface CourseUpdateSessionPatchResponseDataTeacherProfile extends JsonObject {
1729
+ "user_id": string;
1730
+ "first_name"?: JsonValue | null;
1731
+ "last_name"?: JsonValue | null;
1732
+ "email"?: string | null;
1733
+ "national_code"?: string | null;
1734
+ "phone"?: string | null;
1735
+ }
1736
+ export interface CourseUpdateSessionPatchResponseData extends JsonObject {
1737
+ "id": string;
1738
+ "classroom_id": string;
1739
+ "classroom_name"?: string | null;
1740
+ "course_session_id"?: string | null;
1741
+ "course_session"?: CourseUpdateSessionPatchResponseDataCourseSession | null;
1742
+ "course_session_type_id"?: string | null;
1743
+ "session_type"?: CourseUpdateSessionPatchResponseDataSessionType | null;
1744
+ "name"?: string | null;
1745
+ "session_number"?: number | null;
1746
+ "duration_minutes"?: number | null;
1747
+ "description"?: string | null;
1748
+ "teacher_user_id"?: string | null;
1749
+ "teacher_profile"?: CourseUpdateSessionPatchResponseDataTeacherProfile | null;
1750
+ "locked": boolean;
1401
1751
  "auto_unlock": boolean;
1402
- "info"?: string | null;
1403
- "video_type"?: string | null;
1404
- "external_url"?: string | null;
1405
- "drm_mixed_media_id"?: BackendJson<"uuid::Uuid"> | null;
1752
+ "auto_present": boolean;
1753
+ "invited": boolean;
1754
+ "session_room_id"?: string | null;
1755
+ "session_lifecycle_status"?: string | null;
1756
+ "session_access_mode": string;
1757
+ "session_archive_ready": boolean;
1758
+ "starts_at"?: string | null;
1759
+ "ends_at"?: string | null;
1406
1760
  "status": string;
1407
1761
  "created_at": string;
1408
1762
  "updated_at": string;
@@ -1464,6 +1818,13 @@ export interface CourseUpdateCoursePatchResponseData extends JsonObject {
1464
1818
  }
1465
1819
  export interface CourseUpdateCoursePatchResponse extends ApiEnvelope<CourseUpdateCoursePatchResponseData> {
1466
1820
  }
1821
+ /** Backend request type: IdBatch. */
1822
+ export interface IntegrationBatchCoursesPostInput extends JsonObject {
1823
+ "ids"?: string[];
1824
+ }
1825
+ /** Backend response type: Value. */
1826
+ export interface IntegrationBatchCoursesPostResponse extends ApiEnvelope<JsonValue> {
1827
+ }
1467
1828
  /** Backend query type: PaginationQuery. */
1468
1829
  export interface CourseIndexCategoryGetQuery extends QueryParams {
1469
1830
  "page_number"?: number | null;
@@ -1566,6 +1927,13 @@ export interface CourseReorderCoursesPatchInput extends JsonObject {
1566
1927
  /** Backend response type: serde_json::Value. */
1567
1928
  export interface CourseReorderCoursesPatchResponse extends ApiEnvelope<JsonValue> {
1568
1929
  }
1930
+ /** Backend request type: IdBatch. */
1931
+ export interface IntegrationBatchCourseSuccessorsPostInput extends JsonObject {
1932
+ "ids"?: string[];
1933
+ }
1934
+ /** Backend response type: Value. */
1935
+ export interface IntegrationBatchCourseSuccessorsPostResponse extends ApiEnvelope<JsonValue> {
1936
+ }
1569
1937
  /** Backend query type: models::DashboardQuery. */
1570
1938
  export interface DashboardIndexGetQuery extends QueryParams {
1571
1939
  "mode"?: string | null;
@@ -1618,6 +1986,77 @@ export interface DrmRoutesIndexCompositionsGetResponseData extends JsonObject {
1618
1986
  }
1619
1987
  export interface DrmRoutesIndexCompositionsGetResponse extends ApiEnvelope<DrmRoutesIndexCompositionsGetResponseData> {
1620
1988
  }
1989
+ /** Backend response type: models::EvaluationContext. */
1990
+ export interface EvaluationGetContextGetResponseDataTeacherRatingsTargetsProfile extends JsonObject {
1991
+ "user_id": string;
1992
+ "first_name"?: JsonValue | null;
1993
+ "last_name"?: JsonValue | null;
1994
+ "email"?: string | null;
1995
+ "national_code"?: string | null;
1996
+ "phone"?: string | null;
1997
+ }
1998
+ export interface EvaluationGetContextGetResponseDataTeacherRatingsTargets extends JsonObject {
1999
+ "user_id": string;
2000
+ "profile"?: EvaluationGetContextGetResponseDataTeacherRatingsTargetsProfile | null;
2001
+ "submitted": boolean;
2002
+ "scores"?: JsonValue | null;
2003
+ "description"?: string | null;
2004
+ }
2005
+ export interface EvaluationGetContextGetResponseDataTeacherRatings extends JsonObject {
2006
+ "enabled": boolean;
2007
+ "applicable": boolean;
2008
+ "targets": EvaluationGetContextGetResponseDataTeacherRatingsTargets[];
2009
+ "fields": string[];
2010
+ }
2011
+ export interface EvaluationGetContextGetResponseDataStudentFeedback extends JsonObject {
2012
+ "enabled": boolean;
2013
+ "applicable": boolean;
2014
+ "submitted": boolean;
2015
+ "scores"?: JsonValue | null;
2016
+ "description"?: string | null;
2017
+ "fields": string[];
2018
+ }
2019
+ export interface EvaluationGetContextGetResponseData extends JsonObject {
2020
+ "classroom_session_id": string;
2021
+ "available": boolean;
2022
+ "teacher_ratings": EvaluationGetContextGetResponseDataTeacherRatings;
2023
+ "student_feedback": EvaluationGetContextGetResponseDataStudentFeedback;
2024
+ }
2025
+ export interface EvaluationGetContextGetResponse extends ApiEnvelope<EvaluationGetContextGetResponseData> {
2026
+ }
2027
+ /** Backend request type: models::SubmitEvaluation. */
2028
+ export interface EvaluationSubmitPostInput extends JsonObject {
2029
+ "kind": string;
2030
+ "target_user_id"?: string | null;
2031
+ "scores": JsonValue;
2032
+ "description"?: string | null;
2033
+ }
2034
+ /** Backend response type: models::SubmitEvaluationResponse. */
2035
+ export interface EvaluationSubmitPostResponseData extends JsonObject {
2036
+ "id": string;
2037
+ "submitted": boolean;
2038
+ }
2039
+ export interface EvaluationSubmitPostResponse extends ApiEnvelope<EvaluationSubmitPostResponseData> {
2040
+ }
2041
+ /** Backend response type: models::EvaluationSettings. */
2042
+ export interface EvaluationGetSettingsGetResponseData extends JsonObject {
2043
+ "teacher_ratings_enabled": boolean;
2044
+ "student_feedback_enabled": boolean;
2045
+ }
2046
+ export interface EvaluationGetSettingsGetResponse extends ApiEnvelope<EvaluationGetSettingsGetResponseData> {
2047
+ }
2048
+ /** Backend request type: models::UpdateEvaluationSettings. */
2049
+ export interface EvaluationUpdateSettingsPutInput extends JsonObject {
2050
+ "teacher_ratings_enabled": boolean;
2051
+ "student_feedback_enabled": boolean;
2052
+ }
2053
+ /** Backend response type: models::EvaluationSettings. */
2054
+ export interface EvaluationUpdateSettingsPutResponseData extends JsonObject {
2055
+ "teacher_ratings_enabled": boolean;
2056
+ "student_feedback_enabled": boolean;
2057
+ }
2058
+ export interface EvaluationUpdateSettingsPutResponse extends ApiEnvelope<EvaluationUpdateSettingsPutResponseData> {
2059
+ }
1621
2060
  /** Backend query type: models::ExamListQuery. */
1622
2061
  export interface ExamIndexExamGetQuery extends QueryParams {
1623
2062
  "page_number"?: number | null;
@@ -1776,6 +2215,14 @@ export interface ExamIndexAttemptGetQuery extends QueryParams {
1776
2215
  "to"?: string | null;
1777
2216
  }
1778
2217
  /** Backend response type: crate::models::PagedResult<models::AttemptResponse>. */
2218
+ export interface ExamIndexAttemptGetResponseItemProfile extends JsonObject {
2219
+ "user_id": string;
2220
+ "first_name"?: JsonValue | null;
2221
+ "last_name"?: JsonValue | null;
2222
+ "email"?: string | null;
2223
+ "national_code"?: string | null;
2224
+ "phone"?: string | null;
2225
+ }
1779
2226
  export interface ExamIndexAttemptGetResponseItem extends JsonObject {
1780
2227
  "id": string;
1781
2228
  "exam_session_id": string;
@@ -1786,7 +2233,7 @@ export interface ExamIndexAttemptGetResponseItem extends JsonObject {
1786
2233
  "course_id"?: string | null;
1787
2234
  "course_name"?: string | null;
1788
2235
  "user_id": string;
1789
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2236
+ "profile"?: ExamIndexAttemptGetResponseItemProfile | null;
1790
2237
  "score"?: number | null;
1791
2238
  "teacher_score"?: number | null;
1792
2239
  "description"?: string | null;
@@ -1811,6 +2258,14 @@ export interface ExamIndexAttemptGetResponseData extends JsonObject {
1811
2258
  export interface ExamIndexAttemptGetResponse extends ApiEnvelope<ExamIndexAttemptGetResponseData> {
1812
2259
  }
1813
2260
  /** Backend response type: models::AttemptResponse. */
2261
+ export interface ExamShowAttemptGetResponseDataProfile extends JsonObject {
2262
+ "user_id": string;
2263
+ "first_name"?: JsonValue | null;
2264
+ "last_name"?: JsonValue | null;
2265
+ "email"?: string | null;
2266
+ "national_code"?: string | null;
2267
+ "phone"?: string | null;
2268
+ }
1814
2269
  export interface ExamShowAttemptGetResponseData extends JsonObject {
1815
2270
  "id": string;
1816
2271
  "exam_session_id": string;
@@ -1821,7 +2276,7 @@ export interface ExamShowAttemptGetResponseData extends JsonObject {
1821
2276
  "course_id"?: string | null;
1822
2277
  "course_name"?: string | null;
1823
2278
  "user_id": string;
1824
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2279
+ "profile"?: ExamShowAttemptGetResponseDataProfile | null;
1825
2280
  "score"?: number | null;
1826
2281
  "teacher_score"?: number | null;
1827
2282
  "description"?: string | null;
@@ -1845,6 +2300,14 @@ export interface ExamUpdateAttemptPatchInput extends JsonObject {
1845
2300
  "status"?: string | null;
1846
2301
  }
1847
2302
  /** Backend response type: models::AttemptResponse. */
2303
+ export interface ExamUpdateAttemptPatchResponseDataProfile extends JsonObject {
2304
+ "user_id": string;
2305
+ "first_name"?: JsonValue | null;
2306
+ "last_name"?: JsonValue | null;
2307
+ "email"?: string | null;
2308
+ "national_code"?: string | null;
2309
+ "phone"?: string | null;
2310
+ }
1848
2311
  export interface ExamUpdateAttemptPatchResponseData extends JsonObject {
1849
2312
  "id": string;
1850
2313
  "exam_session_id": string;
@@ -1855,7 +2318,7 @@ export interface ExamUpdateAttemptPatchResponseData extends JsonObject {
1855
2318
  "course_id"?: string | null;
1856
2319
  "course_name"?: string | null;
1857
2320
  "user_id": string;
1858
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2321
+ "profile"?: ExamUpdateAttemptPatchResponseDataProfile | null;
1859
2322
  "score"?: number | null;
1860
2323
  "teacher_score"?: number | null;
1861
2324
  "description"?: string | null;
@@ -1881,12 +2344,34 @@ export interface ExamSaveAttemptAnswerPutResponseData extends JsonObject {
1881
2344
  }
1882
2345
  export interface ExamSaveAttemptAnswerPutResponse extends ApiEnvelope<ExamSaveAttemptAnswerPutResponseData> {
1883
2346
  }
1884
- /** Backend response type: models::AttemptDeliveryResponse. */
2347
+ /** Backend response type: models::AttemptDeliveryResponse. */
2348
+ export interface ExamShowAttemptDeliveryGetResponseDataProfile extends JsonObject {
2349
+ "user_id": string;
2350
+ "first_name"?: JsonValue | null;
2351
+ "last_name"?: JsonValue | null;
2352
+ "email"?: string | null;
2353
+ "national_code"?: string | null;
2354
+ "phone"?: string | null;
2355
+ }
2356
+ export interface ExamShowAttemptDeliveryGetResponseDataQuestions extends JsonObject {
2357
+ "position": number;
2358
+ "id": string;
2359
+ "text": string;
2360
+ "question_type": string;
2361
+ "options": JsonValue;
2362
+ "points": number;
2363
+ "media": JsonValue;
2364
+ "answer"?: JsonValue | null;
2365
+ "answered_at"?: string | null;
2366
+ "is_correct"?: boolean | null;
2367
+ "awarded_score"?: number | null;
2368
+ "correct_answer"?: string | null;
2369
+ }
1885
2370
  export interface ExamShowAttemptDeliveryGetResponseData extends JsonObject {
1886
2371
  "attempt_id": string;
1887
2372
  "exam_session_id": string;
1888
2373
  "user_id": string;
1889
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2374
+ "profile"?: ExamShowAttemptDeliveryGetResponseDataProfile | null;
1890
2375
  "exam_id": string;
1891
2376
  "exam_name": string;
1892
2377
  "exam_description"?: string | null;
@@ -1914,16 +2399,38 @@ export interface ExamShowAttemptDeliveryGetResponseData extends JsonObject {
1914
2399
  "total_questions": number;
1915
2400
  "can_start": boolean;
1916
2401
  "can_answer": boolean;
1917
- "questions": BackendJson<"DeliveryQuestionResponse">[];
2402
+ "questions": ExamShowAttemptDeliveryGetResponseDataQuestions[];
1918
2403
  }
1919
2404
  export interface ExamShowAttemptDeliveryGetResponse extends ApiEnvelope<ExamShowAttemptDeliveryGetResponseData> {
1920
2405
  }
1921
2406
  /** Backend response type: models::AttemptDeliveryResponse. */
2407
+ export interface ExamStartAttemptPostResponseDataProfile extends JsonObject {
2408
+ "user_id": string;
2409
+ "first_name"?: JsonValue | null;
2410
+ "last_name"?: JsonValue | null;
2411
+ "email"?: string | null;
2412
+ "national_code"?: string | null;
2413
+ "phone"?: string | null;
2414
+ }
2415
+ export interface ExamStartAttemptPostResponseDataQuestions extends JsonObject {
2416
+ "position": number;
2417
+ "id": string;
2418
+ "text": string;
2419
+ "question_type": string;
2420
+ "options": JsonValue;
2421
+ "points": number;
2422
+ "media": JsonValue;
2423
+ "answer"?: JsonValue | null;
2424
+ "answered_at"?: string | null;
2425
+ "is_correct"?: boolean | null;
2426
+ "awarded_score"?: number | null;
2427
+ "correct_answer"?: string | null;
2428
+ }
1922
2429
  export interface ExamStartAttemptPostResponseData extends JsonObject {
1923
2430
  "attempt_id": string;
1924
2431
  "exam_session_id": string;
1925
2432
  "user_id": string;
1926
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2433
+ "profile"?: ExamStartAttemptPostResponseDataProfile | null;
1927
2434
  "exam_id": string;
1928
2435
  "exam_name": string;
1929
2436
  "exam_description"?: string | null;
@@ -1951,16 +2458,38 @@ export interface ExamStartAttemptPostResponseData extends JsonObject {
1951
2458
  "total_questions": number;
1952
2459
  "can_start": boolean;
1953
2460
  "can_answer": boolean;
1954
- "questions": BackendJson<"DeliveryQuestionResponse">[];
2461
+ "questions": ExamStartAttemptPostResponseDataQuestions[];
1955
2462
  }
1956
2463
  export interface ExamStartAttemptPostResponse extends ApiEnvelope<ExamStartAttemptPostResponseData> {
1957
2464
  }
1958
2465
  /** Backend response type: models::AttemptDeliveryResponse. */
2466
+ export interface ExamSubmitAttemptPostResponseDataProfile extends JsonObject {
2467
+ "user_id": string;
2468
+ "first_name"?: JsonValue | null;
2469
+ "last_name"?: JsonValue | null;
2470
+ "email"?: string | null;
2471
+ "national_code"?: string | null;
2472
+ "phone"?: string | null;
2473
+ }
2474
+ export interface ExamSubmitAttemptPostResponseDataQuestions extends JsonObject {
2475
+ "position": number;
2476
+ "id": string;
2477
+ "text": string;
2478
+ "question_type": string;
2479
+ "options": JsonValue;
2480
+ "points": number;
2481
+ "media": JsonValue;
2482
+ "answer"?: JsonValue | null;
2483
+ "answered_at"?: string | null;
2484
+ "is_correct"?: boolean | null;
2485
+ "awarded_score"?: number | null;
2486
+ "correct_answer"?: string | null;
2487
+ }
1959
2488
  export interface ExamSubmitAttemptPostResponseData extends JsonObject {
1960
2489
  "attempt_id": string;
1961
2490
  "exam_session_id": string;
1962
2491
  "user_id": string;
1963
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2492
+ "profile"?: ExamSubmitAttemptPostResponseDataProfile | null;
1964
2493
  "exam_id": string;
1965
2494
  "exam_name": string;
1966
2495
  "exam_description"?: string | null;
@@ -1988,7 +2517,7 @@ export interface ExamSubmitAttemptPostResponseData extends JsonObject {
1988
2517
  "total_questions": number;
1989
2518
  "can_start": boolean;
1990
2519
  "can_answer": boolean;
1991
- "questions": BackendJson<"DeliveryQuestionResponse">[];
2520
+ "questions": ExamSubmitAttemptPostResponseDataQuestions[];
1992
2521
  }
1993
2522
  export interface ExamSubmitAttemptPostResponse extends ApiEnvelope<ExamSubmitAttemptPostResponseData> {
1994
2523
  }
@@ -2112,47 +2641,68 @@ export interface ExamUpdateQuestionPatchResponse extends ApiEnvelope<ExamUpdateQ
2112
2641
  export interface ExamIndexSessionGetQuery extends QueryParams {
2113
2642
  "page_number"?: number | null;
2114
2643
  "page_size"?: number | null;
2115
- "search"?: string | null;
2116
2644
  "status"?: string | null;
2117
- "exam_id"?: string | null;
2118
2645
  "classroom_id"?: string | null;
2119
2646
  "user_id"?: string | null;
2120
- "teacher_user_id"?: string | null;
2121
- "consultant_user_id"?: string | null;
2122
- "support_user_id"?: string | null;
2123
2647
  "from"?: string | null;
2124
2648
  "to"?: string | null;
2125
2649
  }
2126
2650
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
2651
+ export interface ExamIndexSessionGetResponseItemCourseSession extends JsonObject {
2652
+ "id": string;
2653
+ "course_id": string;
2654
+ "name": string;
2655
+ "description"?: string | null;
2656
+ "sort_order": number;
2657
+ "session_type": string;
2658
+ "session_type_id"?: string | null;
2659
+ "duration_minutes"?: number | null;
2660
+ "status": string;
2661
+ }
2662
+ export interface ExamIndexSessionGetResponseItemSessionType extends JsonObject {
2663
+ "id": string;
2664
+ "code": string;
2665
+ "name": string;
2666
+ "name_fa"?: string | null;
2667
+ "is_online": boolean;
2668
+ "status": string;
2669
+ "sort_order": number;
2670
+ "created_at": string;
2671
+ "updated_at": string;
2672
+ }
2673
+ export interface ExamIndexSessionGetResponseItemTeacherProfile extends JsonObject {
2674
+ "user_id": string;
2675
+ "first_name"?: JsonValue | null;
2676
+ "last_name"?: JsonValue | null;
2677
+ "email"?: string | null;
2678
+ "national_code"?: string | null;
2679
+ "phone"?: string | null;
2680
+ }
2127
2681
  export interface ExamIndexSessionGetResponseItem extends JsonObject {
2128
2682
  "id": string;
2129
- "exam_id": string;
2130
- "exam_name"?: string | null;
2131
- "classroom_id"?: string | null;
2683
+ "classroom_id": string;
2132
2684
  "classroom_name"?: string | null;
2133
- "classroom_session_id"?: string | null;
2685
+ "course_session_id"?: string | null;
2686
+ "course_session"?: ExamIndexSessionGetResponseItemCourseSession | null;
2687
+ "course_session_type_id"?: string | null;
2688
+ "session_type"?: ExamIndexSessionGetResponseItemSessionType | null;
2134
2689
  "name"?: string | null;
2135
- "description"?: string | null;
2136
- "info"?: string | null;
2690
+ "session_number"?: number | null;
2137
2691
  "duration_minutes"?: number | null;
2138
- "questions_count"?: number | null;
2139
- "easy_count"?: number | null;
2140
- "medium_count"?: number | null;
2141
- "hard_count"?: number | null;
2142
- "selection_mode": string;
2692
+ "description"?: string | null;
2143
2693
  "teacher_user_id"?: string | null;
2144
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2145
- "consultant_user_id"?: string | null;
2146
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2147
- "support_user_id"?: string | null;
2148
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2694
+ "teacher_profile"?: ExamIndexSessionGetResponseItemTeacherProfile | null;
2695
+ "locked": boolean;
2696
+ "auto_unlock": boolean;
2697
+ "auto_present": boolean;
2698
+ "invited": boolean;
2699
+ "session_room_id"?: string | null;
2700
+ "session_lifecycle_status"?: string | null;
2701
+ "session_access_mode": string;
2702
+ "session_archive_ready": boolean;
2149
2703
  "starts_at"?: string | null;
2150
2704
  "ends_at"?: string | null;
2151
2705
  "status": string;
2152
- "attempts_total": number;
2153
- "attempts_active": number;
2154
- "attempts_completed": number;
2155
- "average_score"?: number | null;
2156
2706
  "created_at": string;
2157
2707
  "updated_at": string;
2158
2708
  }
@@ -2170,55 +2720,77 @@ export interface ExamIndexSessionGetResponse extends ApiEnvelope<ExamIndexSessio
2170
2720
  }
2171
2721
  /** Backend request type: models::CreateSessionRequest. */
2172
2722
  export interface ExamStoreSessionPostInput extends JsonObject {
2173
- "exam_id": string;
2174
- "classroom_id"?: string | null;
2175
- "classroom_session_id"?: string | null;
2723
+ "classroom_id": string;
2724
+ "course_session_id"?: string | null;
2725
+ "course_session_type_id"?: string | null;
2176
2726
  "name"?: string | null;
2177
- "description"?: string | null;
2178
- "info"?: string | null;
2727
+ "session_number"?: number | null;
2179
2728
  "duration_minutes"?: number | null;
2180
- "questions_count"?: number | null;
2181
- "easy_count"?: number | null;
2182
- "medium_count"?: number | null;
2183
- "hard_count"?: number | null;
2184
- "selection_mode"?: string | null;
2729
+ "description"?: string | null;
2185
2730
  "teacher_user_id"?: string | null;
2186
- "consultant_user_id"?: string | null;
2187
- "support_user_id"?: string | null;
2731
+ "locked"?: boolean | null;
2732
+ "auto_unlock"?: boolean | null;
2733
+ "auto_present"?: boolean | null;
2734
+ "invited"?: boolean | null;
2188
2735
  "starts_at"?: string | null;
2189
- "ends_at"?: string | null;
2190
2736
  "status": string;
2191
2737
  }
2192
2738
  /** Backend response type: models::SessionResponse. */
2739
+ export interface ExamStoreSessionPostResponseDataCourseSession extends JsonObject {
2740
+ "id": string;
2741
+ "course_id": string;
2742
+ "name": string;
2743
+ "description"?: string | null;
2744
+ "sort_order": number;
2745
+ "session_type": string;
2746
+ "session_type_id"?: string | null;
2747
+ "duration_minutes"?: number | null;
2748
+ "status": string;
2749
+ }
2750
+ export interface ExamStoreSessionPostResponseDataSessionType extends JsonObject {
2751
+ "id": string;
2752
+ "code": string;
2753
+ "name": string;
2754
+ "name_fa"?: string | null;
2755
+ "is_online": boolean;
2756
+ "status": string;
2757
+ "sort_order": number;
2758
+ "created_at": string;
2759
+ "updated_at": string;
2760
+ }
2761
+ export interface ExamStoreSessionPostResponseDataTeacherProfile extends JsonObject {
2762
+ "user_id": string;
2763
+ "first_name"?: JsonValue | null;
2764
+ "last_name"?: JsonValue | null;
2765
+ "email"?: string | null;
2766
+ "national_code"?: string | null;
2767
+ "phone"?: string | null;
2768
+ }
2193
2769
  export interface ExamStoreSessionPostResponseData extends JsonObject {
2194
2770
  "id": string;
2195
- "exam_id": string;
2196
- "exam_name"?: string | null;
2197
- "classroom_id"?: string | null;
2771
+ "classroom_id": string;
2198
2772
  "classroom_name"?: string | null;
2199
- "classroom_session_id"?: string | null;
2773
+ "course_session_id"?: string | null;
2774
+ "course_session"?: ExamStoreSessionPostResponseDataCourseSession | null;
2775
+ "course_session_type_id"?: string | null;
2776
+ "session_type"?: ExamStoreSessionPostResponseDataSessionType | null;
2200
2777
  "name"?: string | null;
2201
- "description"?: string | null;
2202
- "info"?: string | null;
2778
+ "session_number"?: number | null;
2203
2779
  "duration_minutes"?: number | null;
2204
- "questions_count"?: number | null;
2205
- "easy_count"?: number | null;
2206
- "medium_count"?: number | null;
2207
- "hard_count"?: number | null;
2208
- "selection_mode": string;
2780
+ "description"?: string | null;
2209
2781
  "teacher_user_id"?: string | null;
2210
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2211
- "consultant_user_id"?: string | null;
2212
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2213
- "support_user_id"?: string | null;
2214
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2782
+ "teacher_profile"?: ExamStoreSessionPostResponseDataTeacherProfile | null;
2783
+ "locked": boolean;
2784
+ "auto_unlock": boolean;
2785
+ "auto_present": boolean;
2786
+ "invited": boolean;
2787
+ "session_room_id"?: string | null;
2788
+ "session_lifecycle_status"?: string | null;
2789
+ "session_access_mode": string;
2790
+ "session_archive_ready": boolean;
2215
2791
  "starts_at"?: string | null;
2216
2792
  "ends_at"?: string | null;
2217
2793
  "status": string;
2218
- "attempts_total": number;
2219
- "attempts_active": number;
2220
- "attempts_completed": number;
2221
- "average_score"?: number | null;
2222
2794
  "created_at": string;
2223
2795
  "updated_at": string;
2224
2796
  }
@@ -2228,35 +2800,61 @@ export interface ExamStoreSessionPostResponse extends ApiEnvelope<ExamStoreSessi
2228
2800
  export interface ExamDestroySessionDeleteResponse extends ApiEnvelope<JsonValue> {
2229
2801
  }
2230
2802
  /** Backend response type: models::SessionResponse. */
2803
+ export interface ExamShowSessionGetResponseDataCourseSession extends JsonObject {
2804
+ "id": string;
2805
+ "course_id": string;
2806
+ "name": string;
2807
+ "description"?: string | null;
2808
+ "sort_order": number;
2809
+ "session_type": string;
2810
+ "session_type_id"?: string | null;
2811
+ "duration_minutes"?: number | null;
2812
+ "status": string;
2813
+ }
2814
+ export interface ExamShowSessionGetResponseDataSessionType extends JsonObject {
2815
+ "id": string;
2816
+ "code": string;
2817
+ "name": string;
2818
+ "name_fa"?: string | null;
2819
+ "is_online": boolean;
2820
+ "status": string;
2821
+ "sort_order": number;
2822
+ "created_at": string;
2823
+ "updated_at": string;
2824
+ }
2825
+ export interface ExamShowSessionGetResponseDataTeacherProfile extends JsonObject {
2826
+ "user_id": string;
2827
+ "first_name"?: JsonValue | null;
2828
+ "last_name"?: JsonValue | null;
2829
+ "email"?: string | null;
2830
+ "national_code"?: string | null;
2831
+ "phone"?: string | null;
2832
+ }
2231
2833
  export interface ExamShowSessionGetResponseData extends JsonObject {
2232
2834
  "id": string;
2233
- "exam_id": string;
2234
- "exam_name"?: string | null;
2235
- "classroom_id"?: string | null;
2835
+ "classroom_id": string;
2236
2836
  "classroom_name"?: string | null;
2237
- "classroom_session_id"?: string | null;
2837
+ "course_session_id"?: string | null;
2838
+ "course_session"?: ExamShowSessionGetResponseDataCourseSession | null;
2839
+ "course_session_type_id"?: string | null;
2840
+ "session_type"?: ExamShowSessionGetResponseDataSessionType | null;
2238
2841
  "name"?: string | null;
2239
- "description"?: string | null;
2240
- "info"?: string | null;
2842
+ "session_number"?: number | null;
2241
2843
  "duration_minutes"?: number | null;
2242
- "questions_count"?: number | null;
2243
- "easy_count"?: number | null;
2244
- "medium_count"?: number | null;
2245
- "hard_count"?: number | null;
2246
- "selection_mode": string;
2844
+ "description"?: string | null;
2247
2845
  "teacher_user_id"?: string | null;
2248
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2249
- "consultant_user_id"?: string | null;
2250
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2251
- "support_user_id"?: string | null;
2252
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2846
+ "teacher_profile"?: ExamShowSessionGetResponseDataTeacherProfile | null;
2847
+ "locked": boolean;
2848
+ "auto_unlock": boolean;
2849
+ "auto_present": boolean;
2850
+ "invited": boolean;
2851
+ "session_room_id"?: string | null;
2852
+ "session_lifecycle_status"?: string | null;
2853
+ "session_access_mode": string;
2854
+ "session_archive_ready": boolean;
2253
2855
  "starts_at"?: string | null;
2254
2856
  "ends_at"?: string | null;
2255
2857
  "status": string;
2256
- "attempts_total": number;
2257
- "attempts_active": number;
2258
- "attempts_completed": number;
2259
- "average_score"?: number | null;
2260
2858
  "created_at": string;
2261
2859
  "updated_at": string;
2262
2860
  }
@@ -2264,55 +2862,78 @@ export interface ExamShowSessionGetResponse extends ApiEnvelope<ExamShowSessionG
2264
2862
  }
2265
2863
  /** Backend request type: models::UpdateSessionRequest. */
2266
2864
  export interface ExamUpdateSessionPatchInput extends JsonObject {
2267
- "exam_id"?: string | null;
2268
- "classroom_id"?: BackendJson<"PatchField<Uuid>">;
2269
- "classroom_session_id"?: BackendJson<"PatchField<Uuid>">;
2270
- "name"?: BackendJson<"PatchField<String>">;
2271
- "description"?: BackendJson<"PatchField<String>">;
2272
- "info"?: BackendJson<"PatchField<String>">;
2273
- "duration_minutes"?: BackendJson<"PatchField<i32>">;
2274
- "questions_count"?: BackendJson<"PatchField<i32>">;
2275
- "easy_count"?: BackendJson<"PatchField<i32>">;
2276
- "medium_count"?: BackendJson<"PatchField<i32>">;
2277
- "hard_count"?: BackendJson<"PatchField<i32>">;
2278
- "selection_mode"?: string | null;
2279
- "teacher_user_id"?: BackendJson<"PatchField<String>">;
2280
- "consultant_user_id"?: BackendJson<"PatchField<String>">;
2281
- "support_user_id"?: BackendJson<"PatchField<String>">;
2282
- "starts_at"?: BackendJson<"PatchField<String>">;
2283
- "ends_at"?: BackendJson<"PatchField<String>">;
2865
+ "confirm_recording_reset"?: boolean;
2866
+ "classroom_id"?: string | null;
2867
+ "course_session_id"?: string | null;
2868
+ "course_session_type_id"?: string | null;
2869
+ "name"?: string | null;
2870
+ "session_number"?: number | null;
2871
+ "duration_minutes"?: number | null;
2872
+ "description"?: string | null;
2873
+ "teacher_user_id"?: string | null;
2874
+ "locked"?: boolean | null;
2875
+ "auto_unlock"?: boolean | null;
2876
+ "auto_present"?: boolean | null;
2877
+ "invited"?: boolean | null;
2878
+ "starts_at"?: string | null;
2284
2879
  "status"?: string | null;
2285
2880
  }
2286
2881
  /** Backend response type: models::SessionResponse. */
2287
- export interface ExamUpdateSessionPatchResponseData extends JsonObject {
2882
+ export interface ExamUpdateSessionPatchResponseDataCourseSession extends JsonObject {
2288
2883
  "id": string;
2289
- "exam_id": string;
2290
- "exam_name"?: string | null;
2291
- "classroom_id"?: string | null;
2292
- "classroom_name"?: string | null;
2293
- "classroom_session_id"?: string | null;
2294
- "name"?: string | null;
2884
+ "course_id": string;
2885
+ "name": string;
2295
2886
  "description"?: string | null;
2296
- "info"?: string | null;
2887
+ "sort_order": number;
2888
+ "session_type": string;
2889
+ "session_type_id"?: string | null;
2297
2890
  "duration_minutes"?: number | null;
2298
- "questions_count"?: number | null;
2299
- "easy_count"?: number | null;
2300
- "medium_count"?: number | null;
2301
- "hard_count"?: number | null;
2302
- "selection_mode": string;
2891
+ "status": string;
2892
+ }
2893
+ export interface ExamUpdateSessionPatchResponseDataSessionType extends JsonObject {
2894
+ "id": string;
2895
+ "code": string;
2896
+ "name": string;
2897
+ "name_fa"?: string | null;
2898
+ "is_online": boolean;
2899
+ "status": string;
2900
+ "sort_order": number;
2901
+ "created_at": string;
2902
+ "updated_at": string;
2903
+ }
2904
+ export interface ExamUpdateSessionPatchResponseDataTeacherProfile extends JsonObject {
2905
+ "user_id": string;
2906
+ "first_name"?: JsonValue | null;
2907
+ "last_name"?: JsonValue | null;
2908
+ "email"?: string | null;
2909
+ "national_code"?: string | null;
2910
+ "phone"?: string | null;
2911
+ }
2912
+ export interface ExamUpdateSessionPatchResponseData extends JsonObject {
2913
+ "id": string;
2914
+ "classroom_id": string;
2915
+ "classroom_name"?: string | null;
2916
+ "course_session_id"?: string | null;
2917
+ "course_session"?: ExamUpdateSessionPatchResponseDataCourseSession | null;
2918
+ "course_session_type_id"?: string | null;
2919
+ "session_type"?: ExamUpdateSessionPatchResponseDataSessionType | null;
2920
+ "name"?: string | null;
2921
+ "session_number"?: number | null;
2922
+ "duration_minutes"?: number | null;
2923
+ "description"?: string | null;
2303
2924
  "teacher_user_id"?: string | null;
2304
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2305
- "consultant_user_id"?: string | null;
2306
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2307
- "support_user_id"?: string | null;
2308
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2925
+ "teacher_profile"?: ExamUpdateSessionPatchResponseDataTeacherProfile | null;
2926
+ "locked": boolean;
2927
+ "auto_unlock": boolean;
2928
+ "auto_present": boolean;
2929
+ "invited": boolean;
2930
+ "session_room_id"?: string | null;
2931
+ "session_lifecycle_status"?: string | null;
2932
+ "session_access_mode": string;
2933
+ "session_archive_ready": boolean;
2309
2934
  "starts_at"?: string | null;
2310
2935
  "ends_at"?: string | null;
2311
2936
  "status": string;
2312
- "attempts_total": number;
2313
- "attempts_active": number;
2314
- "attempts_completed": number;
2315
- "average_score"?: number | null;
2316
2937
  "created_at": string;
2317
2938
  "updated_at": string;
2318
2939
  }
@@ -2429,6 +3050,38 @@ export interface HomeworkIndexAssignmentGetQuery extends QueryParams {
2429
3050
  "to"?: string | null;
2430
3051
  }
2431
3052
  /** Backend response type: crate::models::PagedResult<models::AssignmentResponse>. */
3053
+ export interface HomeworkIndexAssignmentGetResponseItemProfile extends JsonObject {
3054
+ "user_id": string;
3055
+ "first_name"?: JsonValue | null;
3056
+ "last_name"?: JsonValue | null;
3057
+ "email"?: string | null;
3058
+ "national_code"?: string | null;
3059
+ "phone"?: string | null;
3060
+ }
3061
+ export interface HomeworkIndexAssignmentGetResponseItemTeacherProfile extends JsonObject {
3062
+ "user_id": string;
3063
+ "first_name"?: JsonValue | null;
3064
+ "last_name"?: JsonValue | null;
3065
+ "email"?: string | null;
3066
+ "national_code"?: string | null;
3067
+ "phone"?: string | null;
3068
+ }
3069
+ export interface HomeworkIndexAssignmentGetResponseItemConsultantProfile extends JsonObject {
3070
+ "user_id": string;
3071
+ "first_name"?: JsonValue | null;
3072
+ "last_name"?: JsonValue | null;
3073
+ "email"?: string | null;
3074
+ "national_code"?: string | null;
3075
+ "phone"?: string | null;
3076
+ }
3077
+ export interface HomeworkIndexAssignmentGetResponseItemSupportProfile extends JsonObject {
3078
+ "user_id": string;
3079
+ "first_name"?: JsonValue | null;
3080
+ "last_name"?: JsonValue | null;
3081
+ "email"?: string | null;
3082
+ "national_code"?: string | null;
3083
+ "phone"?: string | null;
3084
+ }
2432
3085
  export interface HomeworkIndexAssignmentGetResponseItem extends JsonObject {
2433
3086
  "id": string;
2434
3087
  "homework_id": string;
@@ -2436,13 +3089,13 @@ export interface HomeworkIndexAssignmentGetResponseItem extends JsonObject {
2436
3089
  "classroom_id"?: string | null;
2437
3090
  "classroom_name"?: string | null;
2438
3091
  "user_id"?: string | null;
2439
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3092
+ "profile"?: HomeworkIndexAssignmentGetResponseItemProfile | null;
2440
3093
  "teacher_user_id"?: string | null;
2441
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3094
+ "teacher_profile"?: HomeworkIndexAssignmentGetResponseItemTeacherProfile | null;
2442
3095
  "consultant_user_id"?: string | null;
2443
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3096
+ "consultant_profile"?: HomeworkIndexAssignmentGetResponseItemConsultantProfile | null;
2444
3097
  "support_user_id"?: string | null;
2445
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3098
+ "support_profile"?: HomeworkIndexAssignmentGetResponseItemSupportProfile | null;
2446
3099
  "chat_conversation_id"?: string | null;
2447
3100
  "due_at"?: string | null;
2448
3101
  "status": string;
@@ -2477,6 +3130,38 @@ export interface HomeworkStoreAssignmentPostInput extends JsonObject {
2477
3130
  "score"?: number | null;
2478
3131
  }
2479
3132
  /** Backend response type: models::AssignmentResponse. */
3133
+ export interface HomeworkStoreAssignmentPostResponseDataProfile extends JsonObject {
3134
+ "user_id": string;
3135
+ "first_name"?: JsonValue | null;
3136
+ "last_name"?: JsonValue | null;
3137
+ "email"?: string | null;
3138
+ "national_code"?: string | null;
3139
+ "phone"?: string | null;
3140
+ }
3141
+ export interface HomeworkStoreAssignmentPostResponseDataTeacherProfile extends JsonObject {
3142
+ "user_id": string;
3143
+ "first_name"?: JsonValue | null;
3144
+ "last_name"?: JsonValue | null;
3145
+ "email"?: string | null;
3146
+ "national_code"?: string | null;
3147
+ "phone"?: string | null;
3148
+ }
3149
+ export interface HomeworkStoreAssignmentPostResponseDataConsultantProfile extends JsonObject {
3150
+ "user_id": string;
3151
+ "first_name"?: JsonValue | null;
3152
+ "last_name"?: JsonValue | null;
3153
+ "email"?: string | null;
3154
+ "national_code"?: string | null;
3155
+ "phone"?: string | null;
3156
+ }
3157
+ export interface HomeworkStoreAssignmentPostResponseDataSupportProfile extends JsonObject {
3158
+ "user_id": string;
3159
+ "first_name"?: JsonValue | null;
3160
+ "last_name"?: JsonValue | null;
3161
+ "email"?: string | null;
3162
+ "national_code"?: string | null;
3163
+ "phone"?: string | null;
3164
+ }
2480
3165
  export interface HomeworkStoreAssignmentPostResponseData extends JsonObject {
2481
3166
  "id": string;
2482
3167
  "homework_id": string;
@@ -2484,13 +3169,13 @@ export interface HomeworkStoreAssignmentPostResponseData extends JsonObject {
2484
3169
  "classroom_id"?: string | null;
2485
3170
  "classroom_name"?: string | null;
2486
3171
  "user_id"?: string | null;
2487
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3172
+ "profile"?: HomeworkStoreAssignmentPostResponseDataProfile | null;
2488
3173
  "teacher_user_id"?: string | null;
2489
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3174
+ "teacher_profile"?: HomeworkStoreAssignmentPostResponseDataTeacherProfile | null;
2490
3175
  "consultant_user_id"?: string | null;
2491
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3176
+ "consultant_profile"?: HomeworkStoreAssignmentPostResponseDataConsultantProfile | null;
2492
3177
  "support_user_id"?: string | null;
2493
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3178
+ "support_profile"?: HomeworkStoreAssignmentPostResponseDataSupportProfile | null;
2494
3179
  "chat_conversation_id"?: string | null;
2495
3180
  "due_at"?: string | null;
2496
3181
  "status": string;
@@ -2502,6 +3187,38 @@ export interface HomeworkStoreAssignmentPostResponseData extends JsonObject {
2502
3187
  export interface HomeworkStoreAssignmentPostResponse extends ApiEnvelope<HomeworkStoreAssignmentPostResponseData> {
2503
3188
  }
2504
3189
  /** Backend response type: models::AssignmentResponse. */
3190
+ export interface HomeworkShowAssignmentGetResponseDataProfile extends JsonObject {
3191
+ "user_id": string;
3192
+ "first_name"?: JsonValue | null;
3193
+ "last_name"?: JsonValue | null;
3194
+ "email"?: string | null;
3195
+ "national_code"?: string | null;
3196
+ "phone"?: string | null;
3197
+ }
3198
+ export interface HomeworkShowAssignmentGetResponseDataTeacherProfile extends JsonObject {
3199
+ "user_id": string;
3200
+ "first_name"?: JsonValue | null;
3201
+ "last_name"?: JsonValue | null;
3202
+ "email"?: string | null;
3203
+ "national_code"?: string | null;
3204
+ "phone"?: string | null;
3205
+ }
3206
+ export interface HomeworkShowAssignmentGetResponseDataConsultantProfile extends JsonObject {
3207
+ "user_id": string;
3208
+ "first_name"?: JsonValue | null;
3209
+ "last_name"?: JsonValue | null;
3210
+ "email"?: string | null;
3211
+ "national_code"?: string | null;
3212
+ "phone"?: string | null;
3213
+ }
3214
+ export interface HomeworkShowAssignmentGetResponseDataSupportProfile extends JsonObject {
3215
+ "user_id": string;
3216
+ "first_name"?: JsonValue | null;
3217
+ "last_name"?: JsonValue | null;
3218
+ "email"?: string | null;
3219
+ "national_code"?: string | null;
3220
+ "phone"?: string | null;
3221
+ }
2505
3222
  export interface HomeworkShowAssignmentGetResponseData extends JsonObject {
2506
3223
  "id": string;
2507
3224
  "homework_id": string;
@@ -2509,13 +3226,13 @@ export interface HomeworkShowAssignmentGetResponseData extends JsonObject {
2509
3226
  "classroom_id"?: string | null;
2510
3227
  "classroom_name"?: string | null;
2511
3228
  "user_id"?: string | null;
2512
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3229
+ "profile"?: HomeworkShowAssignmentGetResponseDataProfile | null;
2513
3230
  "teacher_user_id"?: string | null;
2514
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3231
+ "teacher_profile"?: HomeworkShowAssignmentGetResponseDataTeacherProfile | null;
2515
3232
  "consultant_user_id"?: string | null;
2516
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3233
+ "consultant_profile"?: HomeworkShowAssignmentGetResponseDataConsultantProfile | null;
2517
3234
  "support_user_id"?: string | null;
2518
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3235
+ "support_profile"?: HomeworkShowAssignmentGetResponseDataSupportProfile | null;
2519
3236
  "chat_conversation_id"?: string | null;
2520
3237
  "due_at"?: string | null;
2521
3238
  "status": string;
@@ -2541,6 +3258,38 @@ export interface HomeworkUpdateAssignmentPatchInput extends JsonObject {
2541
3258
  "score"?: number | null;
2542
3259
  }
2543
3260
  /** Backend response type: models::AssignmentResponse. */
3261
+ export interface HomeworkUpdateAssignmentPatchResponseDataProfile extends JsonObject {
3262
+ "user_id": string;
3263
+ "first_name"?: JsonValue | null;
3264
+ "last_name"?: JsonValue | null;
3265
+ "email"?: string | null;
3266
+ "national_code"?: string | null;
3267
+ "phone"?: string | null;
3268
+ }
3269
+ export interface HomeworkUpdateAssignmentPatchResponseDataTeacherProfile extends JsonObject {
3270
+ "user_id": string;
3271
+ "first_name"?: JsonValue | null;
3272
+ "last_name"?: JsonValue | null;
3273
+ "email"?: string | null;
3274
+ "national_code"?: string | null;
3275
+ "phone"?: string | null;
3276
+ }
3277
+ export interface HomeworkUpdateAssignmentPatchResponseDataConsultantProfile extends JsonObject {
3278
+ "user_id": string;
3279
+ "first_name"?: JsonValue | null;
3280
+ "last_name"?: JsonValue | null;
3281
+ "email"?: string | null;
3282
+ "national_code"?: string | null;
3283
+ "phone"?: string | null;
3284
+ }
3285
+ export interface HomeworkUpdateAssignmentPatchResponseDataSupportProfile extends JsonObject {
3286
+ "user_id": string;
3287
+ "first_name"?: JsonValue | null;
3288
+ "last_name"?: JsonValue | null;
3289
+ "email"?: string | null;
3290
+ "national_code"?: string | null;
3291
+ "phone"?: string | null;
3292
+ }
2544
3293
  export interface HomeworkUpdateAssignmentPatchResponseData extends JsonObject {
2545
3294
  "id": string;
2546
3295
  "homework_id": string;
@@ -2548,13 +3297,13 @@ export interface HomeworkUpdateAssignmentPatchResponseData extends JsonObject {
2548
3297
  "classroom_id"?: string | null;
2549
3298
  "classroom_name"?: string | null;
2550
3299
  "user_id"?: string | null;
2551
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3300
+ "profile"?: HomeworkUpdateAssignmentPatchResponseDataProfile | null;
2552
3301
  "teacher_user_id"?: string | null;
2553
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3302
+ "teacher_profile"?: HomeworkUpdateAssignmentPatchResponseDataTeacherProfile | null;
2554
3303
  "consultant_user_id"?: string | null;
2555
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3304
+ "consultant_profile"?: HomeworkUpdateAssignmentPatchResponseDataConsultantProfile | null;
2556
3305
  "support_user_id"?: string | null;
2557
- "support_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3306
+ "support_profile"?: HomeworkUpdateAssignmentPatchResponseDataSupportProfile | null;
2558
3307
  "chat_conversation_id"?: string | null;
2559
3308
  "due_at"?: string | null;
2560
3309
  "status": string;
@@ -2573,16 +3322,16 @@ export interface HomeworkIndexQuestionGetQuery extends QueryParams {
2573
3322
  /** Backend response type: crate::models::PagedResult<models::QuestionResponse>. */
2574
3323
  export interface HomeworkIndexQuestionGetResponseItem extends JsonObject {
2575
3324
  "id": string;
2576
- "homework_id": string;
3325
+ "exam_id"?: string | null;
2577
3326
  "question_text": string;
2578
- "description"?: string | null;
2579
- "answer"?: string | null;
2580
3327
  "question_type": string;
3328
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3329
+ "correct_answer"?: string | null;
3330
+ "sort_order": number;
3331
+ "difficulty": string;
2581
3332
  "points": number;
2582
- "is_final": boolean;
2583
- "media": JsonValue;
3333
+ "media": BackendJson<"sea_orm::prelude::Json">;
2584
3334
  "status": string;
2585
- "sort_order": number;
2586
3335
  "created_at": string;
2587
3336
  "updated_at": string;
2588
3337
  }
@@ -2600,30 +3349,30 @@ export interface HomeworkIndexQuestionGetResponse extends ApiEnvelope<HomeworkIn
2600
3349
  }
2601
3350
  /** Backend request type: models::CreateQuestionRequest. */
2602
3351
  export interface HomeworkStoreQuestionPostInput extends JsonObject {
2603
- "homework_id": string;
3352
+ "exam_id"?: string | null;
2604
3353
  "question_text": string;
2605
- "description"?: string | null;
2606
- "answer"?: string | null;
2607
- "question_type"?: string;
2608
- "points"?: number;
2609
- "is_final"?: boolean;
2610
- "media"?: JsonValue | null;
2611
- "status"?: string;
2612
- "sort_order"?: number;
3354
+ "question_type": string;
3355
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3356
+ "correct_answer"?: string | null;
3357
+ "sort_order": number;
3358
+ "difficulty"?: string | null;
3359
+ "points"?: number | null;
3360
+ "media"?: BackendJson<"sea_orm::prelude::Json"> | null;
3361
+ "status"?: string | null;
2613
3362
  }
2614
3363
  /** Backend response type: models::QuestionResponse. */
2615
3364
  export interface HomeworkStoreQuestionPostResponseData extends JsonObject {
2616
3365
  "id": string;
2617
- "homework_id": string;
3366
+ "exam_id"?: string | null;
2618
3367
  "question_text": string;
2619
- "description"?: string | null;
2620
- "answer"?: string | null;
2621
3368
  "question_type": string;
3369
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3370
+ "correct_answer"?: string | null;
3371
+ "sort_order": number;
3372
+ "difficulty": string;
2622
3373
  "points": number;
2623
- "is_final": boolean;
2624
- "media": JsonValue;
3374
+ "media": BackendJson<"sea_orm::prelude::Json">;
2625
3375
  "status": string;
2626
- "sort_order": number;
2627
3376
  "created_at": string;
2628
3377
  "updated_at": string;
2629
3378
  }
@@ -2632,16 +3381,16 @@ export interface HomeworkStoreQuestionPostResponse extends ApiEnvelope<HomeworkS
2632
3381
  /** Backend response type: models::QuestionResponse. */
2633
3382
  export interface HomeworkShowQuestionGetResponseData extends JsonObject {
2634
3383
  "id": string;
2635
- "homework_id": string;
3384
+ "exam_id"?: string | null;
2636
3385
  "question_text": string;
2637
- "description"?: string | null;
2638
- "answer"?: string | null;
2639
3386
  "question_type": string;
3387
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3388
+ "correct_answer"?: string | null;
3389
+ "sort_order": number;
3390
+ "difficulty": string;
2640
3391
  "points": number;
2641
- "is_final": boolean;
2642
- "media": JsonValue;
3392
+ "media": BackendJson<"sea_orm::prelude::Json">;
2643
3393
  "status": string;
2644
- "sort_order": number;
2645
3394
  "created_at": string;
2646
3395
  "updated_at": string;
2647
3396
  }
@@ -2649,30 +3398,30 @@ export interface HomeworkShowQuestionGetResponse extends ApiEnvelope<HomeworkSho
2649
3398
  }
2650
3399
  /** Backend request type: models::UpdateQuestionRequest. */
2651
3400
  export interface HomeworkUpdateQuestionPatchInput extends JsonObject {
2652
- "homework_id"?: string | null;
3401
+ "exam_id"?: string | null;
2653
3402
  "question_text"?: string | null;
2654
- "description"?: string | null;
2655
- "answer"?: string | null;
2656
3403
  "question_type"?: string | null;
3404
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3405
+ "correct_answer"?: string | null;
3406
+ "sort_order"?: number | null;
3407
+ "difficulty"?: string | null;
2657
3408
  "points"?: number | null;
2658
- "is_final"?: boolean | null;
2659
- "media"?: JsonValue | null;
3409
+ "media"?: BackendJson<"sea_orm::prelude::Json"> | null;
2660
3410
  "status"?: string | null;
2661
- "sort_order"?: number | null;
2662
3411
  }
2663
3412
  /** Backend response type: models::QuestionResponse. */
2664
3413
  export interface HomeworkUpdateQuestionPatchResponseData extends JsonObject {
2665
3414
  "id": string;
2666
- "homework_id": string;
3415
+ "exam_id"?: string | null;
2667
3416
  "question_text": string;
2668
- "description"?: string | null;
2669
- "answer"?: string | null;
2670
3417
  "question_type": string;
3418
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
3419
+ "correct_answer"?: string | null;
3420
+ "sort_order": number;
3421
+ "difficulty": string;
2671
3422
  "points": number;
2672
- "is_final": boolean;
2673
- "media": JsonValue;
3423
+ "media": BackendJson<"sea_orm::prelude::Json">;
2674
3424
  "status": string;
2675
- "sort_order": number;
2676
3425
  "created_at": string;
2677
3426
  "updated_at": string;
2678
3427
  }
@@ -2681,6 +3430,14 @@ export interface HomeworkUpdateQuestionPatchResponse extends ApiEnvelope<Homewor
2681
3430
  /** Backend response type: infera_flow_sdk::FlowIntegrationResponse. */
2682
3431
  export interface IntegrationFlowIntegrationShowGetResponse extends ApiEnvelope<BackendJson<"infera_flow_sdk::FlowIntegrationResponse">> {
2683
3432
  }
3433
+ /** Backend request type: LegacyIdBatch. */
3434
+ export interface IntegrationResolveLegacyIdsPostInput extends JsonObject {
3435
+ "courses"?: number[];
3436
+ "classrooms"?: number[];
3437
+ }
3438
+ /** Backend response type: Value. */
3439
+ export interface IntegrationResolveLegacyIdsPostResponse extends ApiEnvelope<JsonValue> {
3440
+ }
2684
3441
  /** Backend request type: multipart/form-data. */
2685
3442
  export type MediaUploadImagePostInput = FormData;
2686
3443
  /** Backend response type: UploadResponse. */
@@ -2723,25 +3480,48 @@ export interface ProfileRoutesIndexGetResponse extends ApiEnvelope<ProfileRoutes
2723
3480
  /** Backend response type: Option<ProfileSummary>. */
2724
3481
  export interface ProfileRoutesShowGetResponse extends ApiEnvelope<BackendJson<"ProfileSummary"> | null> {
2725
3482
  }
2726
- /** Backend response type: models::PublicCertificateResponse. */
2727
- export interface CertificateVerifyCertificateGetResponseData extends JsonObject {
2728
- "public_id": string;
2729
- "title": string;
2730
- "student_name": string;
2731
- "course_name": string;
2732
- "classroom_name": string;
2733
- "score"?: number | null;
2734
- "passing_mark"?: number | null;
2735
- "status": string;
2736
- "valid": boolean;
2737
- "verification_code": string;
2738
- "issued_at": string;
2739
- "image_url": string;
3483
+ /** Backend response type: Branding. */
3484
+ export interface BrandingPublicShowGetResponseData extends JsonObject {
3485
+ "title"?: string | null;
3486
+ "localizations": Record<string, JsonValue>;
3487
+ "icon_asset_key"?: string | null;
3488
+ "icon_url"?: string | null;
2740
3489
  }
2741
- export interface CertificateVerifyCertificateGetResponse extends ApiEnvelope<CertificateVerifyCertificateGetResponseData> {
3490
+ export interface BrandingPublicShowGetResponse extends ApiEnvelope<BrandingPublicShowGetResponseData> {
3491
+ }
3492
+ /** Backend response type: raw-response. */
3493
+ export interface BrandingAssetGetResponse extends ApiEnvelope<JsonValue> {
2742
3494
  }
3495
+ /** Backend response type: models::PublicCertificateResponse. */
3496
+ export type CertificateVerifyCertificateGetResponse = import("./types.js").PublicCertificateResponse;
2743
3497
  /** Backend response type: raw-response. */
2744
- export interface CertificateRenderCertificateImageGetResponse extends ApiEnvelope<JsonValue> {
3498
+ export type CertificateRenderCertificateImageGetResponse = import("./types.js").CertificateSvgResponse;
3499
+ /** Backend query type: models::AssignedStudentsQuery. */
3500
+ export interface ReportAssignedStudentsGetQuery extends QueryParams {
3501
+ "page_number"?: number | null;
3502
+ "page_size"?: number | null;
3503
+ "search"?: string | null;
3504
+ }
3505
+ /** Backend response type: crate::models::PagedResult<crate::profile::ProfileSummary>. */
3506
+ export interface ReportAssignedStudentsGetResponseItem extends JsonObject {
3507
+ "user_id": string;
3508
+ "first_name"?: JsonValue | null;
3509
+ "last_name"?: JsonValue | null;
3510
+ "email"?: string | null;
3511
+ "national_code"?: string | null;
3512
+ "phone"?: string | null;
3513
+ }
3514
+ export interface ReportAssignedStudentsGetResponsePageMeta extends JsonObject {
3515
+ "page": number;
3516
+ "page_size": number;
3517
+ "total_items": number;
3518
+ "total_pages": number;
3519
+ }
3520
+ export interface ReportAssignedStudentsGetResponseData extends JsonObject {
3521
+ "data": ReportAssignedStudentsGetResponseItem[];
3522
+ "meta": ReportAssignedStudentsGetResponsePageMeta;
3523
+ }
3524
+ export interface ReportAssignedStudentsGetResponse extends ApiEnvelope<ReportAssignedStudentsGetResponseData> {
2745
3525
  }
2746
3526
  /** Backend query type: models::ReportQuery. */
2747
3527
  export interface ReportClassroomsGetQuery extends QueryParams {
@@ -2750,15 +3530,31 @@ export interface ReportClassroomsGetQuery extends QueryParams {
2750
3530
  "status"?: string | null;
2751
3531
  }
2752
3532
  /** Backend response type: Vec<models::ClassroomReport>. */
3533
+ export interface ReportClassroomsGetResponseItemTeacherProfile extends JsonObject {
3534
+ "user_id": string;
3535
+ "first_name"?: JsonValue | null;
3536
+ "last_name"?: JsonValue | null;
3537
+ "email"?: string | null;
3538
+ "national_code"?: string | null;
3539
+ "phone"?: string | null;
3540
+ }
3541
+ export interface ReportClassroomsGetResponseItemConsultantProfile extends JsonObject {
3542
+ "user_id": string;
3543
+ "first_name"?: JsonValue | null;
3544
+ "last_name"?: JsonValue | null;
3545
+ "email"?: string | null;
3546
+ "national_code"?: string | null;
3547
+ "phone"?: string | null;
3548
+ }
2753
3549
  export interface ReportClassroomsGetResponseItem extends JsonObject {
2754
3550
  "classroom_id": string;
2755
3551
  "course_id": string;
2756
3552
  "name": string;
2757
3553
  "status": string;
2758
3554
  "teacher_user_id"?: string | null;
2759
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3555
+ "teacher_profile"?: ReportClassroomsGetResponseItemTeacherProfile | null;
2760
3556
  "consultant_user_id"?: string | null;
2761
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3557
+ "consultant_profile"?: ReportClassroomsGetResponseItemConsultantProfile | null;
2762
3558
  "student_count": number;
2763
3559
  "session_count": number;
2764
3560
  "completed_session_count": number;
@@ -2775,9 +3571,17 @@ export interface ReportConsultantsGetQuery extends QueryParams {
2775
3571
  "status"?: string | null;
2776
3572
  }
2777
3573
  /** Backend response type: Vec<models::ConsultantReport>. */
3574
+ export interface ReportConsultantsGetResponseItemConsultantProfile extends JsonObject {
3575
+ "user_id": string;
3576
+ "first_name"?: JsonValue | null;
3577
+ "last_name"?: JsonValue | null;
3578
+ "email"?: string | null;
3579
+ "national_code"?: string | null;
3580
+ "phone"?: string | null;
3581
+ }
2778
3582
  export interface ReportConsultantsGetResponseItem extends JsonObject {
2779
3583
  "consultant_user_id": string;
2780
- "consultant_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3584
+ "consultant_profile"?: ReportConsultantsGetResponseItemConsultantProfile | null;
2781
3585
  "classroom_count": number;
2782
3586
  "active_classroom_count": number;
2783
3587
  "student_count": number;
@@ -2816,9 +3620,18 @@ export interface ReportStudentSummaryGetQuery extends QueryParams {
2816
3620
  "student_user_id"?: string | null;
2817
3621
  }
2818
3622
  /** Backend response type: models::StudentReport. */
3623
+ export interface ReportStudentSummaryGetResponseDataProfile extends JsonObject {
3624
+ "user_id": string;
3625
+ "first_name"?: JsonValue | null;
3626
+ "last_name"?: JsonValue | null;
3627
+ "email"?: string | null;
3628
+ "national_code"?: string | null;
3629
+ "phone"?: string | null;
3630
+ }
2819
3631
  export interface ReportStudentSummaryGetResponseData extends JsonObject {
3632
+ "courses"?: JsonValue[] | null;
2820
3633
  "user_id": string;
2821
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3634
+ "profile"?: ReportStudentSummaryGetResponseDataProfile | null;
2822
3635
  "classroom_count": number;
2823
3636
  "session_count": number;
2824
3637
  "attendance_count": number;
@@ -2834,9 +3647,18 @@ export interface ReportStudentsGetQuery extends QueryParams {
2834
3647
  "status"?: string | null;
2835
3648
  }
2836
3649
  /** Backend response type: Vec<models::StudentReport>. */
3650
+ export interface ReportStudentsGetResponseItemProfile extends JsonObject {
3651
+ "user_id": string;
3652
+ "first_name"?: JsonValue | null;
3653
+ "last_name"?: JsonValue | null;
3654
+ "email"?: string | null;
3655
+ "national_code"?: string | null;
3656
+ "phone"?: string | null;
3657
+ }
2837
3658
  export interface ReportStudentsGetResponseItem extends JsonObject {
3659
+ "courses"?: JsonValue[] | null;
2838
3660
  "user_id": string;
2839
- "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3661
+ "profile"?: ReportStudentsGetResponseItemProfile | null;
2840
3662
  "classroom_count": number;
2841
3663
  "session_count": number;
2842
3664
  "attendance_count": number;
@@ -2852,9 +3674,17 @@ export interface ReportTeachersGetQuery extends QueryParams {
2852
3674
  "status"?: string | null;
2853
3675
  }
2854
3676
  /** Backend response type: Vec<models::TeacherReport>. */
3677
+ export interface ReportTeachersGetResponseItemTeacherProfile extends JsonObject {
3678
+ "user_id": string;
3679
+ "first_name"?: JsonValue | null;
3680
+ "last_name"?: JsonValue | null;
3681
+ "email"?: string | null;
3682
+ "national_code"?: string | null;
3683
+ "phone"?: string | null;
3684
+ }
2855
3685
  export interface ReportTeachersGetResponseItem extends JsonObject {
2856
3686
  "teacher_user_id": string;
2857
- "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
3687
+ "teacher_profile"?: ReportTeachersGetResponseItemTeacherProfile | null;
2858
3688
  "classroom_count": number;
2859
3689
  "active_classroom_count": number;
2860
3690
  "student_count": number;