@faiber/faiber-lms 0.10.1 → 0.11.0

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.
@@ -42,252 +42,34 @@ export interface CertificateIndexCertificateGetQuery extends QueryParams {
42
42
  "page_size"?: number | null;
43
43
  }
44
44
  /** 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
- }
45
+ export type CertificateIndexCertificateGetResponse = import("./types.js").CertificateListResponse;
83
46
  /** 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
- }
47
+ export type CertificateStoreCertificatePostInput = import("./types.js").CreateCertificateInput;
98
48
  /** 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
- }
49
+ export type CertificateStoreCertificatePostResponse = import("./types.js").CertificateResponse;
127
50
  /** 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
- }
51
+ export type CertificateShowCertificateGetResponse = import("./types.js").CertificateResponse;
156
52
  /** 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
- }
53
+ export type CertificateUpdateCertificatePatchInput = import("./types.js").UpdateCertificateInput;
167
54
  /** 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
- }
55
+ export type CertificateUpdateCertificatePatchResponse = import("./types.js").CertificateResponse;
196
56
  /** Backend query type: PaginationQuery. */
197
57
  export interface CertificateIndexTemplateGetQuery extends QueryParams {
198
58
  "page_number"?: number | null;
199
59
  "page_size"?: number | null;
200
60
  }
201
61
  /** 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
- }
62
+ export type CertificateIndexTemplateGetResponse = import("./types.js").CertificateTemplateListResponse;
226
63
  /** 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
- }
64
+ export type CertificateStoreTemplatePostInput = import("./types.js").CreateCertificateTemplateInput;
236
65
  /** 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
- }
66
+ export type CertificateStoreTemplatePostResponse = import("./types.js").CertificateTemplateResponse;
251
67
  /** 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
- }
68
+ export type CertificateShowTemplateGetResponse = import("./types.js").CertificateTemplateResponse;
266
69
  /** 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
- }
70
+ export type CertificateUpdateTemplatePatchInput = import("./types.js").UpdateCertificateTemplateInput;
276
71
  /** 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
- }
72
+ export type CertificateUpdateTemplatePatchResponse = import("./types.js").CertificateTemplateResponse;
291
73
  /** Backend query type: models::ClassroomListQuery. */
292
74
  export interface ClassroomIndexClassroomGetQuery extends QueryParams {
293
75
  "page_number"?: number | null;
@@ -312,6 +94,9 @@ export interface ClassroomIndexClassroomGetResponseItem extends JsonObject {
312
94
  "course_passing_mark"?: number | null;
313
95
  "current_user_score"?: number | null;
314
96
  "current_user_passed"?: boolean | null;
97
+ "session_count": number;
98
+ "completed_session_count": number;
99
+ "progress_rate": number;
315
100
  "name": string;
316
101
  "code"?: string | null;
317
102
  "description"?: string | null;
@@ -378,6 +163,9 @@ export interface ClassroomStoreClassroomPostResponseData extends JsonObject {
378
163
  "course_passing_mark"?: number | null;
379
164
  "current_user_score"?: number | null;
380
165
  "current_user_passed"?: boolean | null;
166
+ "session_count": number;
167
+ "completed_session_count": number;
168
+ "progress_rate": number;
381
169
  "name": string;
382
170
  "code"?: string | null;
383
171
  "description"?: string | null;
@@ -413,6 +201,9 @@ export interface ClassroomShowClassroomGetResponseData extends JsonObject {
413
201
  "course_passing_mark"?: number | null;
414
202
  "current_user_score"?: number | null;
415
203
  "current_user_passed"?: boolean | null;
204
+ "session_count": number;
205
+ "completed_session_count": number;
206
+ "progress_rate": number;
416
207
  "name": string;
417
208
  "code"?: string | null;
418
209
  "description"?: string | null;
@@ -469,6 +260,9 @@ export interface ClassroomUpdateClassroomPatchResponseData extends JsonObject {
469
260
  "course_passing_mark"?: number | null;
470
261
  "current_user_score"?: number | null;
471
262
  "current_user_passed"?: boolean | null;
263
+ "session_count": number;
264
+ "completed_session_count": number;
265
+ "progress_rate": number;
472
266
  "name": string;
473
267
  "code"?: string | null;
474
268
  "description"?: string | null;
@@ -590,12 +384,19 @@ export interface ClassroomUpdateClassroomUserPatchResponseData extends JsonObjec
590
384
  }
591
385
  export interface ClassroomUpdateClassroomUserPatchResponse extends ApiEnvelope<ClassroomUpdateClassroomUserPatchResponseData> {
592
386
  }
387
+ /** Backend request type: IdBatch. */
388
+ export interface IntegrationBatchClassroomsPostInput extends JsonObject {
389
+ "ids"?: string[];
390
+ }
391
+ /** Backend response type: Value. */
392
+ export interface IntegrationBatchClassroomsPostResponse extends ApiEnvelope<JsonValue> {
393
+ }
593
394
  /** Backend response type: Vec<models::ClassroomSessionTypeResponse>. */
594
395
  export interface ClassroomIndexSessionTypesGetResponseItem extends JsonObject {
595
396
  "id": string;
596
397
  "code": string;
597
398
  "name": string;
598
- "name_en"?: string | null;
399
+ "name_fa"?: string | null;
599
400
  "is_online": boolean;
600
401
  "status": string;
601
402
  "sort_order": number;
@@ -634,6 +435,9 @@ export interface ClassroomIndexSessionGetResponseItem extends JsonObject {
634
435
  "auto_present": boolean;
635
436
  "invited": boolean;
636
437
  "session_room_id"?: string | null;
438
+ "session_lifecycle_status"?: string | null;
439
+ "session_access_mode": string;
440
+ "session_archive_ready": boolean;
637
441
  "starts_at"?: string | null;
638
442
  "ends_at"?: string | null;
639
443
  "status": string;
@@ -656,6 +460,7 @@ export interface ClassroomIndexSessionGetResponse extends ApiEnvelope<ClassroomI
656
460
  export interface ClassroomStoreSessionPostInput extends JsonObject {
657
461
  "classroom_id": string;
658
462
  "course_session_id"?: string | null;
463
+ "course_session_type_id"?: string | null;
659
464
  "name"?: string | null;
660
465
  "session_number"?: number | null;
661
466
  "duration_minutes"?: number | null;
@@ -666,7 +471,6 @@ export interface ClassroomStoreSessionPostInput extends JsonObject {
666
471
  "auto_present"?: boolean | null;
667
472
  "invited"?: boolean | null;
668
473
  "starts_at"?: string | null;
669
- "ends_at"?: string | null;
670
474
  "status": string;
671
475
  }
672
476
  /** Backend response type: models::SessionResponse. */
@@ -689,6 +493,9 @@ export interface ClassroomStoreSessionPostResponseData extends JsonObject {
689
493
  "auto_present": boolean;
690
494
  "invited": boolean;
691
495
  "session_room_id"?: string | null;
496
+ "session_lifecycle_status"?: string | null;
497
+ "session_access_mode": string;
498
+ "session_archive_ready": boolean;
692
499
  "starts_at"?: string | null;
693
500
  "ends_at"?: string | null;
694
501
  "status": string;
@@ -717,6 +524,9 @@ export interface ClassroomShowSessionGetResponseData extends JsonObject {
717
524
  "auto_present": boolean;
718
525
  "invited": boolean;
719
526
  "session_room_id"?: string | null;
527
+ "session_lifecycle_status"?: string | null;
528
+ "session_access_mode": string;
529
+ "session_archive_ready": boolean;
720
530
  "starts_at"?: string | null;
721
531
  "ends_at"?: string | null;
722
532
  "status": string;
@@ -727,8 +537,10 @@ export interface ClassroomShowSessionGetResponse extends ApiEnvelope<ClassroomSh
727
537
  }
728
538
  /** Backend request type: models::UpdateSessionRequest. */
729
539
  export interface ClassroomUpdateSessionPatchInput extends JsonObject {
540
+ "confirm_recording_reset"?: boolean;
730
541
  "classroom_id"?: string | null;
731
542
  "course_session_id"?: string | null;
543
+ "course_session_type_id"?: string | null;
732
544
  "name"?: string | null;
733
545
  "session_number"?: number | null;
734
546
  "duration_minutes"?: number | null;
@@ -739,7 +551,6 @@ export interface ClassroomUpdateSessionPatchInput extends JsonObject {
739
551
  "auto_present"?: boolean | null;
740
552
  "invited"?: boolean | null;
741
553
  "starts_at"?: string | null;
742
- "ends_at"?: string | null;
743
554
  "status"?: string | null;
744
555
  }
745
556
  /** Backend response type: models::SessionResponse. */
@@ -762,6 +573,9 @@ export interface ClassroomUpdateSessionPatchResponseData extends JsonObject {
762
573
  "auto_present": boolean;
763
574
  "invited": boolean;
764
575
  "session_room_id"?: string | null;
576
+ "session_lifecycle_status"?: string | null;
577
+ "session_access_mode": string;
578
+ "session_archive_ready": boolean;
765
579
  "starts_at"?: string | null;
766
580
  "ends_at"?: string | null;
767
581
  "status": string;
@@ -836,6 +650,9 @@ export interface ClassroomIndexTodaySessionsGetResponseItem extends JsonObject {
836
650
  "auto_present": boolean;
837
651
  "invited": boolean;
838
652
  "session_room_id"?: string | null;
653
+ "session_lifecycle_status"?: string | null;
654
+ "session_access_mode": string;
655
+ "session_archive_ready": boolean;
839
656
  "starts_at"?: string | null;
840
657
  "ends_at"?: string | null;
841
658
  "status": string;
@@ -854,6 +671,16 @@ export interface ClassroomIndexTodaySessionsGetResponseData extends JsonObject {
854
671
  }
855
672
  export interface ClassroomIndexTodaySessionsGetResponse extends ApiEnvelope<ClassroomIndexTodaySessionsGetResponseData> {
856
673
  }
674
+ /** Backend response type: Value. */
675
+ export interface IntegrationCurrentClassroomUsersGetResponse extends ApiEnvelope<JsonValue> {
676
+ }
677
+ /** Backend request type: UserIdBatch. */
678
+ export interface IntegrationDropoutEligibilityPostInput extends JsonObject {
679
+ "user_ids"?: string[];
680
+ }
681
+ /** Backend response type: Value. */
682
+ export interface IntegrationDropoutEligibilityPostResponse extends ApiEnvelope<JsonValue> {
683
+ }
857
684
  /** Backend query type: PaginationQuery. */
858
685
  export interface ClassroomIndexAbsencesGetQuery extends QueryParams {
859
686
  "page_number"?: number | null;
@@ -881,6 +708,36 @@ export interface ClassroomIndexAbsencesGetResponseData extends JsonObject {
881
708
  }
882
709
  export interface ClassroomIndexAbsencesGetResponse extends ApiEnvelope<ClassroomIndexAbsencesGetResponseData> {
883
710
  }
711
+ /** Backend response type: Branding. */
712
+ export interface BrandingShowGetResponseData extends JsonObject {
713
+ "title"?: string | null;
714
+ "localizations": Record<string, JsonValue>;
715
+ "icon_asset_key"?: string | null;
716
+ "icon_url"?: string | null;
717
+ }
718
+ export interface BrandingShowGetResponse extends ApiEnvelope<BrandingShowGetResponseData> {
719
+ }
720
+ /** Backend request type: Branding. */
721
+ export interface BrandingUpdatePutInput extends JsonObject {
722
+ "title"?: string | null;
723
+ "localizations": Record<string, JsonValue>;
724
+ "icon_asset_key"?: string | null;
725
+ "icon_url"?: string | null;
726
+ }
727
+ /** Backend response type: Branding. */
728
+ export interface BrandingUpdatePutResponseData extends JsonObject {
729
+ "title"?: string | null;
730
+ "localizations": Record<string, JsonValue>;
731
+ "icon_asset_key"?: string | null;
732
+ "icon_url"?: string | null;
733
+ }
734
+ export interface BrandingUpdatePutResponse extends ApiEnvelope<BrandingUpdatePutResponseData> {
735
+ }
736
+ /** Backend request type: multipart/form-data. */
737
+ export type BrandingUploadPostInput = FormData;
738
+ /** Backend response type: serde_json::Value. */
739
+ export interface BrandingUploadPostResponse extends ApiEnvelope<JsonValue> {
740
+ }
884
741
  /** Backend query type: PaginationQuery. */
885
742
  export interface ConfigIndexClassroomTypeGetQuery extends QueryParams {
886
743
  "page_number"?: number | null;
@@ -1278,19 +1135,28 @@ export interface CourseIndexSessionGetQuery extends QueryParams {
1278
1135
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
1279
1136
  export interface CourseIndexSessionGetResponseItem extends JsonObject {
1280
1137
  "id": string;
1281
- "course_id": string;
1282
- "name": string;
1283
- "description"?: string | null;
1284
- "sort_order": number;
1285
- "session_type": string;
1286
- "session_type_id"?: string | null;
1287
- "exam_id"?: string | null;
1138
+ "classroom_id": string;
1139
+ "classroom_name"?: string | null;
1140
+ "course_session_id"?: string | null;
1141
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
1142
+ "course_session_type_id"?: string | null;
1143
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
1144
+ "name"?: string | null;
1145
+ "session_number"?: number | null;
1288
1146
  "duration_minutes"?: number | null;
1147
+ "description"?: string | null;
1148
+ "teacher_user_id"?: string | null;
1149
+ "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
1150
+ "locked": boolean;
1289
1151
  "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;
1152
+ "auto_present": boolean;
1153
+ "invited": boolean;
1154
+ "session_room_id"?: string | null;
1155
+ "session_lifecycle_status"?: string | null;
1156
+ "session_access_mode": string;
1157
+ "session_archive_ready": boolean;
1158
+ "starts_at"?: string | null;
1159
+ "ends_at"?: string | null;
1294
1160
  "status": string;
1295
1161
  "created_at": string;
1296
1162
  "updated_at": string;
@@ -1309,37 +1175,46 @@ export interface CourseIndexSessionGetResponse extends ApiEnvelope<CourseIndexSe
1309
1175
  }
1310
1176
  /** Backend request type: models::CreateSessionRequest. */
1311
1177
  export interface CourseStoreSessionPostInput extends JsonObject {
1312
- "course_id": string;
1313
- "name": string;
1314
- "description"?: string | null;
1315
- "sort_order": number;
1316
- "session_type": string;
1317
- "session_type_id"?: string | null;
1318
- "exam_id"?: string | null;
1178
+ "classroom_id": string;
1179
+ "course_session_id"?: string | null;
1180
+ "course_session_type_id"?: string | null;
1181
+ "name"?: string | null;
1182
+ "session_number"?: number | null;
1319
1183
  "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;
1184
+ "description"?: string | null;
1185
+ "teacher_user_id"?: string | null;
1186
+ "locked"?: boolean | null;
1187
+ "auto_unlock"?: boolean | null;
1188
+ "auto_present"?: boolean | null;
1189
+ "invited"?: boolean | null;
1190
+ "starts_at"?: string | null;
1325
1191
  "status": string;
1326
1192
  }
1327
1193
  /** Backend response type: models::SessionResponse. */
1328
1194
  export interface CourseStoreSessionPostResponseData extends JsonObject {
1329
1195
  "id": string;
1330
- "course_id": string;
1331
- "name": string;
1332
- "description"?: string | null;
1333
- "sort_order": number;
1334
- "session_type": string;
1335
- "session_type_id"?: string | null;
1336
- "exam_id"?: string | null;
1196
+ "classroom_id": string;
1197
+ "classroom_name"?: string | null;
1198
+ "course_session_id"?: string | null;
1199
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
1200
+ "course_session_type_id"?: string | null;
1201
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
1202
+ "name"?: string | null;
1203
+ "session_number"?: number | null;
1337
1204
  "duration_minutes"?: number | null;
1205
+ "description"?: string | null;
1206
+ "teacher_user_id"?: string | null;
1207
+ "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
1208
+ "locked": boolean;
1338
1209
  "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;
1210
+ "auto_present": boolean;
1211
+ "invited": boolean;
1212
+ "session_room_id"?: string | null;
1213
+ "session_lifecycle_status"?: string | null;
1214
+ "session_access_mode": string;
1215
+ "session_archive_ready": boolean;
1216
+ "starts_at"?: string | null;
1217
+ "ends_at"?: string | null;
1343
1218
  "status": string;
1344
1219
  "created_at": string;
1345
1220
  "updated_at": string;
@@ -1352,19 +1227,28 @@ export interface CourseDestroySessionDeleteResponse extends ApiEnvelope<JsonValu
1352
1227
  /** Backend response type: models::SessionResponse. */
1353
1228
  export interface CourseShowSessionGetResponseData extends JsonObject {
1354
1229
  "id": string;
1355
- "course_id": string;
1356
- "name": string;
1357
- "description"?: string | null;
1358
- "sort_order": number;
1359
- "session_type": string;
1360
- "session_type_id"?: string | null;
1361
- "exam_id"?: string | null;
1230
+ "classroom_id": string;
1231
+ "classroom_name"?: string | null;
1232
+ "course_session_id"?: string | null;
1233
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
1234
+ "course_session_type_id"?: string | null;
1235
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
1236
+ "name"?: string | null;
1237
+ "session_number"?: number | null;
1362
1238
  "duration_minutes"?: number | null;
1239
+ "description"?: string | null;
1240
+ "teacher_user_id"?: string | null;
1241
+ "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
1242
+ "locked": boolean;
1363
1243
  "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;
1244
+ "auto_present": boolean;
1245
+ "invited": boolean;
1246
+ "session_room_id"?: string | null;
1247
+ "session_lifecycle_status"?: string | null;
1248
+ "session_access_mode": string;
1249
+ "session_archive_ready": boolean;
1250
+ "starts_at"?: string | null;
1251
+ "ends_at"?: string | null;
1368
1252
  "status": string;
1369
1253
  "created_at": string;
1370
1254
  "updated_at": string;
@@ -1373,36 +1257,47 @@ export interface CourseShowSessionGetResponse extends ApiEnvelope<CourseShowSess
1373
1257
  }
1374
1258
  /** Backend request type: models::UpdateSessionRequest. */
1375
1259
  export interface CourseUpdateSessionPatchInput extends JsonObject {
1260
+ "confirm_recording_reset"?: boolean;
1261
+ "classroom_id"?: string | null;
1262
+ "course_session_id"?: string | null;
1263
+ "course_session_type_id"?: string | null;
1376
1264
  "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;
1265
+ "session_number"?: number | null;
1382
1266
  "duration_minutes"?: number | null;
1267
+ "description"?: string | null;
1268
+ "teacher_user_id"?: string | null;
1269
+ "locked"?: boolean | null;
1383
1270
  "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;
1271
+ "auto_present"?: boolean | null;
1272
+ "invited"?: boolean | null;
1273
+ "starts_at"?: string | null;
1388
1274
  "status"?: string | null;
1389
1275
  }
1390
1276
  /** Backend response type: models::SessionResponse. */
1391
1277
  export interface CourseUpdateSessionPatchResponseData extends JsonObject {
1392
1278
  "id": string;
1393
- "course_id": string;
1394
- "name": string;
1395
- "description"?: string | null;
1396
- "sort_order": number;
1397
- "session_type": string;
1398
- "session_type_id"?: string | null;
1399
- "exam_id"?: string | null;
1279
+ "classroom_id": string;
1280
+ "classroom_name"?: string | null;
1281
+ "course_session_id"?: string | null;
1282
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
1283
+ "course_session_type_id"?: string | null;
1284
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
1285
+ "name"?: string | null;
1286
+ "session_number"?: number | null;
1400
1287
  "duration_minutes"?: number | null;
1288
+ "description"?: string | null;
1289
+ "teacher_user_id"?: string | null;
1290
+ "teacher_profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
1291
+ "locked": boolean;
1401
1292
  "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;
1293
+ "auto_present": boolean;
1294
+ "invited": boolean;
1295
+ "session_room_id"?: string | null;
1296
+ "session_lifecycle_status"?: string | null;
1297
+ "session_access_mode": string;
1298
+ "session_archive_ready": boolean;
1299
+ "starts_at"?: string | null;
1300
+ "ends_at"?: string | null;
1406
1301
  "status": string;
1407
1302
  "created_at": string;
1408
1303
  "updated_at": string;
@@ -1464,6 +1359,13 @@ export interface CourseUpdateCoursePatchResponseData extends JsonObject {
1464
1359
  }
1465
1360
  export interface CourseUpdateCoursePatchResponse extends ApiEnvelope<CourseUpdateCoursePatchResponseData> {
1466
1361
  }
1362
+ /** Backend request type: IdBatch. */
1363
+ export interface IntegrationBatchCoursesPostInput extends JsonObject {
1364
+ "ids"?: string[];
1365
+ }
1366
+ /** Backend response type: Value. */
1367
+ export interface IntegrationBatchCoursesPostResponse extends ApiEnvelope<JsonValue> {
1368
+ }
1467
1369
  /** Backend query type: PaginationQuery. */
1468
1370
  export interface CourseIndexCategoryGetQuery extends QueryParams {
1469
1371
  "page_number"?: number | null;
@@ -1566,6 +1468,13 @@ export interface CourseReorderCoursesPatchInput extends JsonObject {
1566
1468
  /** Backend response type: serde_json::Value. */
1567
1469
  export interface CourseReorderCoursesPatchResponse extends ApiEnvelope<JsonValue> {
1568
1470
  }
1471
+ /** Backend request type: IdBatch. */
1472
+ export interface IntegrationBatchCourseSuccessorsPostInput extends JsonObject {
1473
+ "ids"?: string[];
1474
+ }
1475
+ /** Backend response type: Value. */
1476
+ export interface IntegrationBatchCourseSuccessorsPostResponse extends ApiEnvelope<JsonValue> {
1477
+ }
1569
1478
  /** Backend query type: models::DashboardQuery. */
1570
1479
  export interface DashboardIndexGetQuery extends QueryParams {
1571
1480
  "mode"?: string | null;
@@ -1618,6 +1527,48 @@ export interface DrmRoutesIndexCompositionsGetResponseData extends JsonObject {
1618
1527
  }
1619
1528
  export interface DrmRoutesIndexCompositionsGetResponse extends ApiEnvelope<DrmRoutesIndexCompositionsGetResponseData> {
1620
1529
  }
1530
+ /** Backend response type: models::EvaluationContext. */
1531
+ export interface EvaluationGetContextGetResponseData extends JsonObject {
1532
+ "classroom_session_id": string;
1533
+ "available": boolean;
1534
+ "teacher_ratings": BackendJson<"TeacherRatingState">;
1535
+ "student_feedback": BackendJson<"StudentFeedbackState">;
1536
+ }
1537
+ export interface EvaluationGetContextGetResponse extends ApiEnvelope<EvaluationGetContextGetResponseData> {
1538
+ }
1539
+ /** Backend request type: models::SubmitEvaluation. */
1540
+ export interface EvaluationSubmitPostInput extends JsonObject {
1541
+ "kind": string;
1542
+ "target_user_id"?: string | null;
1543
+ "scores": JsonValue;
1544
+ "description"?: string | null;
1545
+ }
1546
+ /** Backend response type: models::SubmitEvaluationResponse. */
1547
+ export interface EvaluationSubmitPostResponseData extends JsonObject {
1548
+ "id": string;
1549
+ "submitted": boolean;
1550
+ }
1551
+ export interface EvaluationSubmitPostResponse extends ApiEnvelope<EvaluationSubmitPostResponseData> {
1552
+ }
1553
+ /** Backend response type: models::EvaluationSettings. */
1554
+ export interface EvaluationGetSettingsGetResponseData extends JsonObject {
1555
+ "teacher_ratings_enabled": boolean;
1556
+ "student_feedback_enabled": boolean;
1557
+ }
1558
+ export interface EvaluationGetSettingsGetResponse extends ApiEnvelope<EvaluationGetSettingsGetResponseData> {
1559
+ }
1560
+ /** Backend request type: models::UpdateEvaluationSettings. */
1561
+ export interface EvaluationUpdateSettingsPutInput extends JsonObject {
1562
+ "teacher_ratings_enabled": boolean;
1563
+ "student_feedback_enabled": boolean;
1564
+ }
1565
+ /** Backend response type: models::EvaluationSettings. */
1566
+ export interface EvaluationUpdateSettingsPutResponseData extends JsonObject {
1567
+ "teacher_ratings_enabled": boolean;
1568
+ "student_feedback_enabled": boolean;
1569
+ }
1570
+ export interface EvaluationUpdateSettingsPutResponse extends ApiEnvelope<EvaluationUpdateSettingsPutResponseData> {
1571
+ }
1621
1572
  /** Backend query type: models::ExamListQuery. */
1622
1573
  export interface ExamIndexExamGetQuery extends QueryParams {
1623
1574
  "page_number"?: number | null;
@@ -2112,47 +2063,38 @@ export interface ExamUpdateQuestionPatchResponse extends ApiEnvelope<ExamUpdateQ
2112
2063
  export interface ExamIndexSessionGetQuery extends QueryParams {
2113
2064
  "page_number"?: number | null;
2114
2065
  "page_size"?: number | null;
2115
- "search"?: string | null;
2116
2066
  "status"?: string | null;
2117
- "exam_id"?: string | null;
2118
2067
  "classroom_id"?: string | null;
2119
2068
  "user_id"?: string | null;
2120
- "teacher_user_id"?: string | null;
2121
- "consultant_user_id"?: string | null;
2122
- "support_user_id"?: string | null;
2123
2069
  "from"?: string | null;
2124
2070
  "to"?: string | null;
2125
2071
  }
2126
2072
  /** Backend response type: crate::models::PagedResult<models::SessionResponse>. */
2127
2073
  export interface ExamIndexSessionGetResponseItem extends JsonObject {
2128
2074
  "id": string;
2129
- "exam_id": string;
2130
- "exam_name"?: string | null;
2131
- "classroom_id"?: string | null;
2075
+ "classroom_id": string;
2132
2076
  "classroom_name"?: string | null;
2133
- "classroom_session_id"?: string | null;
2077
+ "course_session_id"?: string | null;
2078
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
2079
+ "course_session_type_id"?: string | null;
2080
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
2134
2081
  "name"?: string | null;
2135
- "description"?: string | null;
2136
- "info"?: string | null;
2082
+ "session_number"?: number | null;
2137
2083
  "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;
2084
+ "description"?: string | null;
2143
2085
  "teacher_user_id"?: string | null;
2144
2086
  "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;
2087
+ "locked": boolean;
2088
+ "auto_unlock": boolean;
2089
+ "auto_present": boolean;
2090
+ "invited": boolean;
2091
+ "session_room_id"?: string | null;
2092
+ "session_lifecycle_status"?: string | null;
2093
+ "session_access_mode": string;
2094
+ "session_archive_ready": boolean;
2149
2095
  "starts_at"?: string | null;
2150
2096
  "ends_at"?: string | null;
2151
2097
  "status": string;
2152
- "attempts_total": number;
2153
- "attempts_active": number;
2154
- "attempts_completed": number;
2155
- "average_score"?: number | null;
2156
2098
  "created_at": string;
2157
2099
  "updated_at": string;
2158
2100
  }
@@ -2170,55 +2112,47 @@ export interface ExamIndexSessionGetResponse extends ApiEnvelope<ExamIndexSessio
2170
2112
  }
2171
2113
  /** Backend request type: models::CreateSessionRequest. */
2172
2114
  export interface ExamStoreSessionPostInput extends JsonObject {
2173
- "exam_id": string;
2174
- "classroom_id"?: string | null;
2175
- "classroom_session_id"?: string | null;
2115
+ "classroom_id": string;
2116
+ "course_session_id"?: string | null;
2117
+ "course_session_type_id"?: string | null;
2176
2118
  "name"?: string | null;
2177
- "description"?: string | null;
2178
- "info"?: string | null;
2119
+ "session_number"?: number | null;
2179
2120
  "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;
2121
+ "description"?: string | null;
2185
2122
  "teacher_user_id"?: string | null;
2186
- "consultant_user_id"?: string | null;
2187
- "support_user_id"?: string | null;
2123
+ "locked"?: boolean | null;
2124
+ "auto_unlock"?: boolean | null;
2125
+ "auto_present"?: boolean | null;
2126
+ "invited"?: boolean | null;
2188
2127
  "starts_at"?: string | null;
2189
- "ends_at"?: string | null;
2190
2128
  "status": string;
2191
2129
  }
2192
2130
  /** Backend response type: models::SessionResponse. */
2193
2131
  export interface ExamStoreSessionPostResponseData extends JsonObject {
2194
2132
  "id": string;
2195
- "exam_id": string;
2196
- "exam_name"?: string | null;
2197
- "classroom_id"?: string | null;
2133
+ "classroom_id": string;
2198
2134
  "classroom_name"?: string | null;
2199
- "classroom_session_id"?: string | null;
2135
+ "course_session_id"?: string | null;
2136
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
2137
+ "course_session_type_id"?: string | null;
2138
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
2200
2139
  "name"?: string | null;
2201
- "description"?: string | null;
2202
- "info"?: string | null;
2140
+ "session_number"?: number | null;
2203
2141
  "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;
2142
+ "description"?: string | null;
2209
2143
  "teacher_user_id"?: string | null;
2210
2144
  "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;
2145
+ "locked": boolean;
2146
+ "auto_unlock": boolean;
2147
+ "auto_present": boolean;
2148
+ "invited": boolean;
2149
+ "session_room_id"?: string | null;
2150
+ "session_lifecycle_status"?: string | null;
2151
+ "session_access_mode": string;
2152
+ "session_archive_ready": boolean;
2215
2153
  "starts_at"?: string | null;
2216
2154
  "ends_at"?: string | null;
2217
2155
  "status": string;
2218
- "attempts_total": number;
2219
- "attempts_active": number;
2220
- "attempts_completed": number;
2221
- "average_score"?: number | null;
2222
2156
  "created_at": string;
2223
2157
  "updated_at": string;
2224
2158
  }
@@ -2230,33 +2164,29 @@ export interface ExamDestroySessionDeleteResponse extends ApiEnvelope<JsonValue>
2230
2164
  /** Backend response type: models::SessionResponse. */
2231
2165
  export interface ExamShowSessionGetResponseData extends JsonObject {
2232
2166
  "id": string;
2233
- "exam_id": string;
2234
- "exam_name"?: string | null;
2235
- "classroom_id"?: string | null;
2167
+ "classroom_id": string;
2236
2168
  "classroom_name"?: string | null;
2237
- "classroom_session_id"?: string | null;
2169
+ "course_session_id"?: string | null;
2170
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
2171
+ "course_session_type_id"?: string | null;
2172
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
2238
2173
  "name"?: string | null;
2239
- "description"?: string | null;
2240
- "info"?: string | null;
2174
+ "session_number"?: number | null;
2241
2175
  "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;
2176
+ "description"?: string | null;
2247
2177
  "teacher_user_id"?: string | null;
2248
2178
  "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;
2179
+ "locked": boolean;
2180
+ "auto_unlock": boolean;
2181
+ "auto_present": boolean;
2182
+ "invited": boolean;
2183
+ "session_room_id"?: string | null;
2184
+ "session_lifecycle_status"?: string | null;
2185
+ "session_access_mode": string;
2186
+ "session_archive_ready": boolean;
2253
2187
  "starts_at"?: string | null;
2254
2188
  "ends_at"?: string | null;
2255
2189
  "status": string;
2256
- "attempts_total": number;
2257
- "attempts_active": number;
2258
- "attempts_completed": number;
2259
- "average_score"?: number | null;
2260
2190
  "created_at": string;
2261
2191
  "updated_at": string;
2262
2192
  }
@@ -2264,55 +2194,48 @@ export interface ExamShowSessionGetResponse extends ApiEnvelope<ExamShowSessionG
2264
2194
  }
2265
2195
  /** Backend request type: models::UpdateSessionRequest. */
2266
2196
  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>">;
2197
+ "confirm_recording_reset"?: boolean;
2198
+ "classroom_id"?: string | null;
2199
+ "course_session_id"?: string | null;
2200
+ "course_session_type_id"?: string | null;
2201
+ "name"?: string | null;
2202
+ "session_number"?: number | null;
2203
+ "duration_minutes"?: number | null;
2204
+ "description"?: string | null;
2205
+ "teacher_user_id"?: string | null;
2206
+ "locked"?: boolean | null;
2207
+ "auto_unlock"?: boolean | null;
2208
+ "auto_present"?: boolean | null;
2209
+ "invited"?: boolean | null;
2210
+ "starts_at"?: string | null;
2284
2211
  "status"?: string | null;
2285
2212
  }
2286
2213
  /** Backend response type: models::SessionResponse. */
2287
2214
  export interface ExamUpdateSessionPatchResponseData extends JsonObject {
2288
2215
  "id": string;
2289
- "exam_id": string;
2290
- "exam_name"?: string | null;
2291
- "classroom_id"?: string | null;
2216
+ "classroom_id": string;
2292
2217
  "classroom_name"?: string | null;
2293
- "classroom_session_id"?: string | null;
2218
+ "course_session_id"?: string | null;
2219
+ "course_session"?: import("./types.js").ClassroomCourseSession | null;
2220
+ "course_session_type_id"?: string | null;
2221
+ "session_type"?: import("./types.js").ClassroomSessionType | null;
2294
2222
  "name"?: string | null;
2295
- "description"?: string | null;
2296
- "info"?: string | null;
2223
+ "session_number"?: number | null;
2297
2224
  "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;
2225
+ "description"?: string | null;
2303
2226
  "teacher_user_id"?: string | null;
2304
2227
  "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;
2228
+ "locked": boolean;
2229
+ "auto_unlock": boolean;
2230
+ "auto_present": boolean;
2231
+ "invited": boolean;
2232
+ "session_room_id"?: string | null;
2233
+ "session_lifecycle_status"?: string | null;
2234
+ "session_access_mode": string;
2235
+ "session_archive_ready": boolean;
2309
2236
  "starts_at"?: string | null;
2310
2237
  "ends_at"?: string | null;
2311
2238
  "status": string;
2312
- "attempts_total": number;
2313
- "attempts_active": number;
2314
- "attempts_completed": number;
2315
- "average_score"?: number | null;
2316
2239
  "created_at": string;
2317
2240
  "updated_at": string;
2318
2241
  }
@@ -2573,16 +2496,16 @@ export interface HomeworkIndexQuestionGetQuery extends QueryParams {
2573
2496
  /** Backend response type: crate::models::PagedResult<models::QuestionResponse>. */
2574
2497
  export interface HomeworkIndexQuestionGetResponseItem extends JsonObject {
2575
2498
  "id": string;
2576
- "homework_id": string;
2499
+ "exam_id"?: string | null;
2577
2500
  "question_text": string;
2578
- "description"?: string | null;
2579
- "answer"?: string | null;
2580
2501
  "question_type": string;
2502
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2503
+ "correct_answer"?: string | null;
2504
+ "sort_order": number;
2505
+ "difficulty": string;
2581
2506
  "points": number;
2582
- "is_final": boolean;
2583
- "media": JsonValue;
2507
+ "media": BackendJson<"sea_orm::prelude::Json">;
2584
2508
  "status": string;
2585
- "sort_order": number;
2586
2509
  "created_at": string;
2587
2510
  "updated_at": string;
2588
2511
  }
@@ -2600,30 +2523,30 @@ export interface HomeworkIndexQuestionGetResponse extends ApiEnvelope<HomeworkIn
2600
2523
  }
2601
2524
  /** Backend request type: models::CreateQuestionRequest. */
2602
2525
  export interface HomeworkStoreQuestionPostInput extends JsonObject {
2603
- "homework_id": string;
2526
+ "exam_id"?: string | null;
2604
2527
  "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;
2528
+ "question_type": string;
2529
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2530
+ "correct_answer"?: string | null;
2531
+ "sort_order": number;
2532
+ "difficulty"?: string | null;
2533
+ "points"?: number | null;
2534
+ "media"?: BackendJson<"sea_orm::prelude::Json"> | null;
2535
+ "status"?: string | null;
2613
2536
  }
2614
2537
  /** Backend response type: models::QuestionResponse. */
2615
2538
  export interface HomeworkStoreQuestionPostResponseData extends JsonObject {
2616
2539
  "id": string;
2617
- "homework_id": string;
2540
+ "exam_id"?: string | null;
2618
2541
  "question_text": string;
2619
- "description"?: string | null;
2620
- "answer"?: string | null;
2621
2542
  "question_type": string;
2543
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2544
+ "correct_answer"?: string | null;
2545
+ "sort_order": number;
2546
+ "difficulty": string;
2622
2547
  "points": number;
2623
- "is_final": boolean;
2624
- "media": JsonValue;
2548
+ "media": BackendJson<"sea_orm::prelude::Json">;
2625
2549
  "status": string;
2626
- "sort_order": number;
2627
2550
  "created_at": string;
2628
2551
  "updated_at": string;
2629
2552
  }
@@ -2632,16 +2555,16 @@ export interface HomeworkStoreQuestionPostResponse extends ApiEnvelope<HomeworkS
2632
2555
  /** Backend response type: models::QuestionResponse. */
2633
2556
  export interface HomeworkShowQuestionGetResponseData extends JsonObject {
2634
2557
  "id": string;
2635
- "homework_id": string;
2558
+ "exam_id"?: string | null;
2636
2559
  "question_text": string;
2637
- "description"?: string | null;
2638
- "answer"?: string | null;
2639
2560
  "question_type": string;
2561
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2562
+ "correct_answer"?: string | null;
2563
+ "sort_order": number;
2564
+ "difficulty": string;
2640
2565
  "points": number;
2641
- "is_final": boolean;
2642
- "media": JsonValue;
2566
+ "media": BackendJson<"sea_orm::prelude::Json">;
2643
2567
  "status": string;
2644
- "sort_order": number;
2645
2568
  "created_at": string;
2646
2569
  "updated_at": string;
2647
2570
  }
@@ -2649,30 +2572,30 @@ export interface HomeworkShowQuestionGetResponse extends ApiEnvelope<HomeworkSho
2649
2572
  }
2650
2573
  /** Backend request type: models::UpdateQuestionRequest. */
2651
2574
  export interface HomeworkUpdateQuestionPatchInput extends JsonObject {
2652
- "homework_id"?: string | null;
2575
+ "exam_id"?: string | null;
2653
2576
  "question_text"?: string | null;
2654
- "description"?: string | null;
2655
- "answer"?: string | null;
2656
2577
  "question_type"?: string | null;
2578
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2579
+ "correct_answer"?: string | null;
2580
+ "sort_order"?: number | null;
2581
+ "difficulty"?: string | null;
2657
2582
  "points"?: number | null;
2658
- "is_final"?: boolean | null;
2659
- "media"?: JsonValue | null;
2583
+ "media"?: BackendJson<"sea_orm::prelude::Json"> | null;
2660
2584
  "status"?: string | null;
2661
- "sort_order"?: number | null;
2662
2585
  }
2663
2586
  /** Backend response type: models::QuestionResponse. */
2664
2587
  export interface HomeworkUpdateQuestionPatchResponseData extends JsonObject {
2665
2588
  "id": string;
2666
- "homework_id": string;
2589
+ "exam_id"?: string | null;
2667
2590
  "question_text": string;
2668
- "description"?: string | null;
2669
- "answer"?: string | null;
2670
2591
  "question_type": string;
2592
+ "options"?: BackendJson<"sea_orm::prelude::Json"> | null;
2593
+ "correct_answer"?: string | null;
2594
+ "sort_order": number;
2595
+ "difficulty": string;
2671
2596
  "points": number;
2672
- "is_final": boolean;
2673
- "media": JsonValue;
2597
+ "media": BackendJson<"sea_orm::prelude::Json">;
2674
2598
  "status": string;
2675
- "sort_order": number;
2676
2599
  "created_at": string;
2677
2600
  "updated_at": string;
2678
2601
  }
@@ -2681,6 +2604,14 @@ export interface HomeworkUpdateQuestionPatchResponse extends ApiEnvelope<Homewor
2681
2604
  /** Backend response type: infera_flow_sdk::FlowIntegrationResponse. */
2682
2605
  export interface IntegrationFlowIntegrationShowGetResponse extends ApiEnvelope<BackendJson<"infera_flow_sdk::FlowIntegrationResponse">> {
2683
2606
  }
2607
+ /** Backend request type: LegacyIdBatch. */
2608
+ export interface IntegrationResolveLegacyIdsPostInput extends JsonObject {
2609
+ "courses"?: number[];
2610
+ "classrooms"?: number[];
2611
+ }
2612
+ /** Backend response type: Value. */
2613
+ export interface IntegrationResolveLegacyIdsPostResponse extends ApiEnvelope<JsonValue> {
2614
+ }
2684
2615
  /** Backend request type: multipart/form-data. */
2685
2616
  export type MediaUploadImagePostInput = FormData;
2686
2617
  /** Backend response type: UploadResponse. */
@@ -2723,25 +2654,48 @@ export interface ProfileRoutesIndexGetResponse extends ApiEnvelope<ProfileRoutes
2723
2654
  /** Backend response type: Option<ProfileSummary>. */
2724
2655
  export interface ProfileRoutesShowGetResponse extends ApiEnvelope<BackendJson<"ProfileSummary"> | null> {
2725
2656
  }
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;
2657
+ /** Backend response type: Branding. */
2658
+ export interface BrandingPublicShowGetResponseData extends JsonObject {
2659
+ "title"?: string | null;
2660
+ "localizations": Record<string, JsonValue>;
2661
+ "icon_asset_key"?: string | null;
2662
+ "icon_url"?: string | null;
2740
2663
  }
2741
- export interface CertificateVerifyCertificateGetResponse extends ApiEnvelope<CertificateVerifyCertificateGetResponseData> {
2664
+ export interface BrandingPublicShowGetResponse extends ApiEnvelope<BrandingPublicShowGetResponseData> {
2742
2665
  }
2743
2666
  /** Backend response type: raw-response. */
2744
- export interface CertificateRenderCertificateImageGetResponse extends ApiEnvelope<JsonValue> {
2667
+ export interface BrandingAssetGetResponse extends ApiEnvelope<JsonValue> {
2668
+ }
2669
+ /** Backend response type: models::PublicCertificateResponse. */
2670
+ export type CertificateVerifyCertificateGetResponse = import("./types.js").PublicCertificateResponse;
2671
+ /** Backend response type: raw-response. */
2672
+ export type CertificateRenderCertificateImageGetResponse = import("./types.js").CertificateSvgResponse;
2673
+ /** Backend query type: models::AssignedStudentsQuery. */
2674
+ export interface ReportAssignedStudentsGetQuery extends QueryParams {
2675
+ "page_number"?: number | null;
2676
+ "page_size"?: number | null;
2677
+ "search"?: string | null;
2678
+ }
2679
+ /** Backend response type: crate::models::PagedResult<crate::profile::ProfileSummary>. */
2680
+ export interface ReportAssignedStudentsGetResponseItem extends JsonObject {
2681
+ "user_id": string;
2682
+ "first_name"?: JsonValue | null;
2683
+ "last_name"?: JsonValue | null;
2684
+ "email"?: string | null;
2685
+ "national_code"?: string | null;
2686
+ "phone"?: string | null;
2687
+ }
2688
+ export interface ReportAssignedStudentsGetResponsePageMeta extends JsonObject {
2689
+ "page": number;
2690
+ "page_size": number;
2691
+ "total_items": number;
2692
+ "total_pages": number;
2693
+ }
2694
+ export interface ReportAssignedStudentsGetResponseData extends JsonObject {
2695
+ "data": ReportAssignedStudentsGetResponseItem[];
2696
+ "meta": ReportAssignedStudentsGetResponsePageMeta;
2697
+ }
2698
+ export interface ReportAssignedStudentsGetResponse extends ApiEnvelope<ReportAssignedStudentsGetResponseData> {
2745
2699
  }
2746
2700
  /** Backend query type: models::ReportQuery. */
2747
2701
  export interface ReportClassroomsGetQuery extends QueryParams {
@@ -2817,6 +2771,7 @@ export interface ReportStudentSummaryGetQuery extends QueryParams {
2817
2771
  }
2818
2772
  /** Backend response type: models::StudentReport. */
2819
2773
  export interface ReportStudentSummaryGetResponseData extends JsonObject {
2774
+ "courses"?: JsonValue[] | null;
2820
2775
  "user_id": string;
2821
2776
  "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2822
2777
  "classroom_count": number;
@@ -2835,6 +2790,7 @@ export interface ReportStudentsGetQuery extends QueryParams {
2835
2790
  }
2836
2791
  /** Backend response type: Vec<models::StudentReport>. */
2837
2792
  export interface ReportStudentsGetResponseItem extends JsonObject {
2793
+ "courses"?: JsonValue[] | null;
2838
2794
  "user_id": string;
2839
2795
  "profile"?: BackendJson<"crate::profile::ProfileSummary"> | null;
2840
2796
  "classroom_count": number;