academe-kit 0.15.0 → 0.17.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.
- package/dist/index.cjs +22 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +747 -62
- package/dist/index.esm.js +22 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/types/services/QuizService.d.ts +55 -0
- package/dist/types/services/userService.d.ts +48 -4
- package/dist/types/types/academe-api.d.ts +593 -7
- package/package.json +4 -2
package/dist/index.d.ts
CHANGED
|
@@ -9403,7 +9403,7 @@ interface paths {
|
|
|
9403
9403
|
};
|
|
9404
9404
|
requestBody?: never;
|
|
9405
9405
|
responses: {
|
|
9406
|
-
/** @description provider, embedUrl, videoExternalId, startTimeSeconds, durationSeconds, progress */
|
|
9406
|
+
/** @description provider, embedUrl, videoExternalId, startTimeSeconds, durationSeconds, progress e `ambient` (mídia do Ambient Glow — spriteUrlTemplate com placeholder `{n}`, thumbnailUrl e metadados da grade de seek; null quando o provider não é panda) */
|
|
9407
9407
|
200: {
|
|
9408
9408
|
headers: {
|
|
9409
9409
|
[name: string]: unknown;
|
|
@@ -11579,6 +11579,62 @@ interface paths {
|
|
|
11579
11579
|
};
|
|
11580
11580
|
trace?: never;
|
|
11581
11581
|
};
|
|
11582
|
+
"/quiz-questions/{id}/generate-explanations": {
|
|
11583
|
+
parameters: {
|
|
11584
|
+
query?: never;
|
|
11585
|
+
header?: never;
|
|
11586
|
+
path?: never;
|
|
11587
|
+
cookie?: never;
|
|
11588
|
+
};
|
|
11589
|
+
get?: never;
|
|
11590
|
+
put?: never;
|
|
11591
|
+
/**
|
|
11592
|
+
* Generate answer explanations with AI
|
|
11593
|
+
* @description Preenche via IA a explicação de cada alternativa de uma pergunta que já existe — o backfill dos quizzes criados antes da feature. Sobrescreve as explicações existentes; o backoffice confirma antes de chamar.
|
|
11594
|
+
*/
|
|
11595
|
+
post: {
|
|
11596
|
+
parameters: {
|
|
11597
|
+
query?: never;
|
|
11598
|
+
header?: never;
|
|
11599
|
+
path: {
|
|
11600
|
+
id: string;
|
|
11601
|
+
};
|
|
11602
|
+
cookie?: never;
|
|
11603
|
+
};
|
|
11604
|
+
requestBody?: {
|
|
11605
|
+
content: {
|
|
11606
|
+
"application/json": {
|
|
11607
|
+
/** @description Modelo OpenRouter a usar. Omitido, usa o padrão do servidor. */
|
|
11608
|
+
model?: string;
|
|
11609
|
+
};
|
|
11610
|
+
};
|
|
11611
|
+
};
|
|
11612
|
+
responses: {
|
|
11613
|
+
/** @description Pergunta com as alternativas atualizadas */
|
|
11614
|
+
200: {
|
|
11615
|
+
headers: {
|
|
11616
|
+
[name: string]: unknown;
|
|
11617
|
+
};
|
|
11618
|
+
content: {
|
|
11619
|
+
"application/json": {
|
|
11620
|
+
/** @example success */
|
|
11621
|
+
status?: string;
|
|
11622
|
+
data?: components["schemas"]["QuizQuestion"];
|
|
11623
|
+
};
|
|
11624
|
+
};
|
|
11625
|
+
};
|
|
11626
|
+
400: components["responses"]["BadRequest"];
|
|
11627
|
+
401: components["responses"]["Unauthorized"];
|
|
11628
|
+
404: components["responses"]["NotFound"];
|
|
11629
|
+
500: components["responses"]["ServerError"];
|
|
11630
|
+
};
|
|
11631
|
+
};
|
|
11632
|
+
delete?: never;
|
|
11633
|
+
options?: never;
|
|
11634
|
+
head?: never;
|
|
11635
|
+
patch?: never;
|
|
11636
|
+
trace?: never;
|
|
11637
|
+
};
|
|
11582
11638
|
"/quiz-questions/bulk": {
|
|
11583
11639
|
parameters: {
|
|
11584
11640
|
query?: never;
|
|
@@ -11612,6 +11668,8 @@ interface paths {
|
|
|
11612
11668
|
options?: {
|
|
11613
11669
|
text?: string;
|
|
11614
11670
|
is_correct?: boolean;
|
|
11671
|
+
/** @description Resumo revelado ao aluno ao confirmar a resposta. */
|
|
11672
|
+
explanation?: string;
|
|
11615
11673
|
}[];
|
|
11616
11674
|
}[];
|
|
11617
11675
|
};
|
|
@@ -12083,6 +12141,8 @@ interface paths {
|
|
|
12083
12141
|
options?: {
|
|
12084
12142
|
text?: string;
|
|
12085
12143
|
is_correct?: boolean;
|
|
12144
|
+
/** @description Resumo revelado ao aluno ao confirmar a resposta. String vazia quando a IA não produziu. */
|
|
12145
|
+
explanation?: string;
|
|
12086
12146
|
}[];
|
|
12087
12147
|
}[];
|
|
12088
12148
|
};
|
|
@@ -13906,85 +13966,486 @@ interface paths {
|
|
|
13906
13966
|
500: components["responses"]["ServerError"];
|
|
13907
13967
|
};
|
|
13908
13968
|
};
|
|
13909
|
-
put?: never;
|
|
13910
|
-
post?: never;
|
|
13911
|
-
/**
|
|
13912
|
-
* Delete a step
|
|
13913
|
-
* @description Permanently remove a step from the catalog
|
|
13914
|
-
*/
|
|
13915
|
-
delete: {
|
|
13969
|
+
put?: never;
|
|
13970
|
+
post?: never;
|
|
13971
|
+
/**
|
|
13972
|
+
* Delete a step
|
|
13973
|
+
* @description Permanently remove a step from the catalog
|
|
13974
|
+
*/
|
|
13975
|
+
delete: {
|
|
13976
|
+
parameters: {
|
|
13977
|
+
query?: never;
|
|
13978
|
+
header?: never;
|
|
13979
|
+
path: {
|
|
13980
|
+
/** @description Resource ID */
|
|
13981
|
+
id: components["parameters"]["id"];
|
|
13982
|
+
};
|
|
13983
|
+
cookie?: never;
|
|
13984
|
+
};
|
|
13985
|
+
requestBody?: never;
|
|
13986
|
+
responses: {
|
|
13987
|
+
/** @description Step deleted */
|
|
13988
|
+
204: {
|
|
13989
|
+
headers: {
|
|
13990
|
+
[name: string]: unknown;
|
|
13991
|
+
};
|
|
13992
|
+
content?: never;
|
|
13993
|
+
};
|
|
13994
|
+
400: components["responses"]["BadRequest"];
|
|
13995
|
+
401: components["responses"]["Unauthorized"];
|
|
13996
|
+
404: components["responses"]["NotFound"];
|
|
13997
|
+
500: components["responses"]["ServerError"];
|
|
13998
|
+
};
|
|
13999
|
+
};
|
|
14000
|
+
options?: never;
|
|
14001
|
+
head?: never;
|
|
14002
|
+
/**
|
|
14003
|
+
* Update a step
|
|
14004
|
+
* @description Partially update a step from the catalog
|
|
14005
|
+
*/
|
|
14006
|
+
patch: {
|
|
14007
|
+
parameters: {
|
|
14008
|
+
query?: never;
|
|
14009
|
+
header?: never;
|
|
14010
|
+
path: {
|
|
14011
|
+
/** @description Resource ID */
|
|
14012
|
+
id: components["parameters"]["id"];
|
|
14013
|
+
};
|
|
14014
|
+
cookie?: never;
|
|
14015
|
+
};
|
|
14016
|
+
requestBody: {
|
|
14017
|
+
content: {
|
|
14018
|
+
"application/json": {
|
|
14019
|
+
name?: string;
|
|
14020
|
+
color?: string;
|
|
14021
|
+
icon?: string;
|
|
14022
|
+
/** @enum {string} */
|
|
14023
|
+
type?: "challenge" | "course" | "tutorial" | "publication" | "evaluation" | "certificate" | "redirect";
|
|
14024
|
+
isActive?: boolean;
|
|
14025
|
+
};
|
|
14026
|
+
};
|
|
14027
|
+
};
|
|
14028
|
+
responses: {
|
|
14029
|
+
/** @description Step updated */
|
|
14030
|
+
200: {
|
|
14031
|
+
headers: {
|
|
14032
|
+
[name: string]: unknown;
|
|
14033
|
+
};
|
|
14034
|
+
content: {
|
|
14035
|
+
"application/json": {
|
|
14036
|
+
/** @example success */
|
|
14037
|
+
status?: string;
|
|
14038
|
+
data?: components["schemas"]["Step"];
|
|
14039
|
+
};
|
|
14040
|
+
};
|
|
14041
|
+
};
|
|
14042
|
+
400: components["responses"]["BadRequest"];
|
|
14043
|
+
401: components["responses"]["Unauthorized"];
|
|
14044
|
+
404: components["responses"]["NotFound"];
|
|
14045
|
+
500: components["responses"]["ServerError"];
|
|
14046
|
+
};
|
|
14047
|
+
};
|
|
14048
|
+
trace?: never;
|
|
14049
|
+
};
|
|
14050
|
+
"/studio/state": {
|
|
14051
|
+
parameters: {
|
|
14052
|
+
query?: never;
|
|
14053
|
+
header?: never;
|
|
14054
|
+
path?: never;
|
|
14055
|
+
cookie?: never;
|
|
14056
|
+
};
|
|
14057
|
+
/** Estado do Estúdio (publicado + MEUS rascunhos mesclados) */
|
|
14058
|
+
get: {
|
|
14059
|
+
parameters: {
|
|
14060
|
+
query?: {
|
|
14061
|
+
/** @description Escola do contexto (hero da escola + preview) */
|
|
14062
|
+
institutionId?: string;
|
|
14063
|
+
};
|
|
14064
|
+
header?: never;
|
|
14065
|
+
path?: never;
|
|
14066
|
+
cookie?: never;
|
|
14067
|
+
};
|
|
14068
|
+
requestBody?: never;
|
|
14069
|
+
responses: {
|
|
14070
|
+
/** @description hero{global,institution,myDrafts} + playlists[{id,draft,items,meta{state,hasMyDraft,stale,othersDrafts}}] + layout{order,hasMyDraft} + myDraftCount */
|
|
14071
|
+
200: {
|
|
14072
|
+
headers: {
|
|
14073
|
+
[name: string]: unknown;
|
|
14074
|
+
};
|
|
14075
|
+
content?: never;
|
|
14076
|
+
};
|
|
14077
|
+
/** @description Não é staff */
|
|
14078
|
+
403: {
|
|
14079
|
+
headers: {
|
|
14080
|
+
[name: string]: unknown;
|
|
14081
|
+
};
|
|
14082
|
+
content?: never;
|
|
14083
|
+
};
|
|
14084
|
+
};
|
|
14085
|
+
};
|
|
14086
|
+
put?: never;
|
|
14087
|
+
post?: never;
|
|
14088
|
+
delete?: never;
|
|
14089
|
+
options?: never;
|
|
14090
|
+
head?: never;
|
|
14091
|
+
patch?: never;
|
|
14092
|
+
trace?: never;
|
|
14093
|
+
};
|
|
14094
|
+
"/studio/drafts/playlist/{id}": {
|
|
14095
|
+
parameters: {
|
|
14096
|
+
query?: never;
|
|
14097
|
+
header?: never;
|
|
14098
|
+
path?: never;
|
|
14099
|
+
cookie?: never;
|
|
14100
|
+
};
|
|
14101
|
+
get?: never;
|
|
14102
|
+
/** Upsert do MEU rascunho de uma playlist (id pode ser de playlist nova — isNew) */
|
|
14103
|
+
put: {
|
|
14104
|
+
parameters: {
|
|
14105
|
+
query?: never;
|
|
14106
|
+
header?: never;
|
|
14107
|
+
path: {
|
|
14108
|
+
id: string;
|
|
14109
|
+
};
|
|
14110
|
+
cookie?: never;
|
|
14111
|
+
};
|
|
14112
|
+
requestBody: {
|
|
14113
|
+
content: {
|
|
14114
|
+
"application/json": {
|
|
14115
|
+
/** @enum {string} */
|
|
14116
|
+
op?: "upsert" | "delete";
|
|
14117
|
+
isNew?: boolean;
|
|
14118
|
+
playlist?: {
|
|
14119
|
+
title?: string;
|
|
14120
|
+
subtitle?: string | null;
|
|
14121
|
+
/** @enum {string} */
|
|
14122
|
+
status?: "draft" | "published";
|
|
14123
|
+
/** @enum {string} */
|
|
14124
|
+
source?: "curated" | "continue_watching" | "trending" | "watchlist" | "recent" | "continue_playlist";
|
|
14125
|
+
/** @enum {string} */
|
|
14126
|
+
variant?: "common" | "featured";
|
|
14127
|
+
/** @enum {string} */
|
|
14128
|
+
cardOrientation?: "horizontal" | "vertical" | "square" | "fullImage";
|
|
14129
|
+
itemsPerViewDesktop?: number;
|
|
14130
|
+
itemsPerViewMobile?: number;
|
|
14131
|
+
autoplay?: boolean;
|
|
14132
|
+
isGlobal?: boolean;
|
|
14133
|
+
};
|
|
14134
|
+
targets?: {
|
|
14135
|
+
institutionId?: string;
|
|
14136
|
+
organizationId?: string;
|
|
14137
|
+
}[];
|
|
14138
|
+
groupIds?: string[];
|
|
14139
|
+
/** @description ordem do array = position */
|
|
14140
|
+
items?: {
|
|
14141
|
+
courseId?: string;
|
|
14142
|
+
courseModuleId?: string;
|
|
14143
|
+
courseModuleLessonId?: string;
|
|
14144
|
+
}[];
|
|
14145
|
+
};
|
|
14146
|
+
};
|
|
14147
|
+
};
|
|
14148
|
+
responses: {
|
|
14149
|
+
/** @description Rascunho salvo (não altera o publicado) */
|
|
14150
|
+
200: {
|
|
14151
|
+
headers: {
|
|
14152
|
+
[name: string]: unknown;
|
|
14153
|
+
};
|
|
14154
|
+
content?: never;
|
|
14155
|
+
};
|
|
14156
|
+
};
|
|
14157
|
+
};
|
|
14158
|
+
post?: never;
|
|
14159
|
+
delete?: never;
|
|
14160
|
+
options?: never;
|
|
14161
|
+
head?: never;
|
|
14162
|
+
patch?: never;
|
|
14163
|
+
trace?: never;
|
|
14164
|
+
};
|
|
14165
|
+
"/studio/drafts/hero": {
|
|
14166
|
+
parameters: {
|
|
14167
|
+
query?: never;
|
|
14168
|
+
header?: never;
|
|
14169
|
+
path?: never;
|
|
14170
|
+
cookie?: never;
|
|
14171
|
+
};
|
|
14172
|
+
get?: never;
|
|
14173
|
+
/** Upsert do MEU rascunho do hero (institutionId no body; ausente = global) */
|
|
14174
|
+
put: {
|
|
14175
|
+
parameters: {
|
|
14176
|
+
query?: never;
|
|
14177
|
+
header?: never;
|
|
14178
|
+
path?: never;
|
|
14179
|
+
cookie?: never;
|
|
14180
|
+
};
|
|
14181
|
+
requestBody: {
|
|
14182
|
+
content: {
|
|
14183
|
+
"application/json": {
|
|
14184
|
+
/** Format: uuid */
|
|
14185
|
+
institutionId?: string | null;
|
|
14186
|
+
/** @enum {string} */
|
|
14187
|
+
op?: "upsert" | "delete";
|
|
14188
|
+
hero?: {
|
|
14189
|
+
eyebrow?: string | null;
|
|
14190
|
+
title?: string;
|
|
14191
|
+
subtitle?: string | null;
|
|
14192
|
+
ctaLabel?: string | null;
|
|
14193
|
+
ctaUrl?: string | null;
|
|
14194
|
+
/** @enum {string} */
|
|
14195
|
+
mediaType?: "gradient" | "image" | "video";
|
|
14196
|
+
mediaUrl?: string | null;
|
|
14197
|
+
mediaLoop?: boolean;
|
|
14198
|
+
};
|
|
14199
|
+
};
|
|
14200
|
+
};
|
|
14201
|
+
};
|
|
14202
|
+
responses: {
|
|
14203
|
+
/** @description Rascunho salvo */
|
|
14204
|
+
200: {
|
|
14205
|
+
headers: {
|
|
14206
|
+
[name: string]: unknown;
|
|
14207
|
+
};
|
|
14208
|
+
content?: never;
|
|
14209
|
+
};
|
|
14210
|
+
};
|
|
14211
|
+
};
|
|
14212
|
+
post?: never;
|
|
14213
|
+
delete?: never;
|
|
14214
|
+
options?: never;
|
|
14215
|
+
head?: never;
|
|
14216
|
+
patch?: never;
|
|
14217
|
+
trace?: never;
|
|
14218
|
+
};
|
|
14219
|
+
"/studio/drafts/layout": {
|
|
14220
|
+
parameters: {
|
|
14221
|
+
query?: never;
|
|
14222
|
+
header?: never;
|
|
14223
|
+
path?: never;
|
|
14224
|
+
cookie?: never;
|
|
14225
|
+
};
|
|
14226
|
+
get?: never;
|
|
14227
|
+
/** Upsert do MEU rascunho de ordem das rails (lista completa de ids) */
|
|
14228
|
+
put: {
|
|
14229
|
+
parameters: {
|
|
14230
|
+
query?: never;
|
|
14231
|
+
header?: never;
|
|
14232
|
+
path?: never;
|
|
14233
|
+
cookie?: never;
|
|
14234
|
+
};
|
|
14235
|
+
requestBody: {
|
|
14236
|
+
content: {
|
|
14237
|
+
"application/json": {
|
|
14238
|
+
order?: string[];
|
|
14239
|
+
};
|
|
14240
|
+
};
|
|
14241
|
+
};
|
|
14242
|
+
responses: {
|
|
14243
|
+
/** @description Rascunho salvo */
|
|
14244
|
+
200: {
|
|
14245
|
+
headers: {
|
|
14246
|
+
[name: string]: unknown;
|
|
14247
|
+
};
|
|
14248
|
+
content?: never;
|
|
14249
|
+
};
|
|
14250
|
+
};
|
|
14251
|
+
};
|
|
14252
|
+
post?: never;
|
|
14253
|
+
delete?: never;
|
|
14254
|
+
options?: never;
|
|
14255
|
+
head?: never;
|
|
14256
|
+
patch?: never;
|
|
14257
|
+
trace?: never;
|
|
14258
|
+
};
|
|
14259
|
+
"/studio/drafts/{entityType}/{entityId}": {
|
|
14260
|
+
parameters: {
|
|
14261
|
+
query?: never;
|
|
14262
|
+
header?: never;
|
|
14263
|
+
path?: never;
|
|
14264
|
+
cookie?: never;
|
|
14265
|
+
};
|
|
14266
|
+
get?: never;
|
|
14267
|
+
put?: never;
|
|
14268
|
+
post?: never;
|
|
14269
|
+
/** Desfaz UM rascunho meu (playlist/hero por entidade) */
|
|
14270
|
+
delete: {
|
|
14271
|
+
parameters: {
|
|
14272
|
+
query?: never;
|
|
14273
|
+
header?: never;
|
|
14274
|
+
path: {
|
|
14275
|
+
entityType: "playlist" | "hero" | "layout";
|
|
14276
|
+
entityId: string;
|
|
14277
|
+
};
|
|
14278
|
+
cookie?: never;
|
|
14279
|
+
};
|
|
14280
|
+
requestBody?: never;
|
|
14281
|
+
responses: {
|
|
14282
|
+
/** @description { deleted: n } */
|
|
14283
|
+
200: {
|
|
14284
|
+
headers: {
|
|
14285
|
+
[name: string]: unknown;
|
|
14286
|
+
};
|
|
14287
|
+
content?: never;
|
|
14288
|
+
};
|
|
14289
|
+
};
|
|
14290
|
+
};
|
|
14291
|
+
options?: never;
|
|
14292
|
+
head?: never;
|
|
14293
|
+
patch?: never;
|
|
14294
|
+
trace?: never;
|
|
14295
|
+
};
|
|
14296
|
+
"/studio/discard": {
|
|
14297
|
+
parameters: {
|
|
14298
|
+
query?: never;
|
|
14299
|
+
header?: never;
|
|
14300
|
+
path?: never;
|
|
14301
|
+
cookie?: never;
|
|
14302
|
+
};
|
|
14303
|
+
get?: never;
|
|
14304
|
+
put?: never;
|
|
14305
|
+
/** Descarta TODOS os meus rascunhos */
|
|
14306
|
+
post: {
|
|
14307
|
+
parameters: {
|
|
14308
|
+
query?: never;
|
|
14309
|
+
header?: never;
|
|
14310
|
+
path?: never;
|
|
14311
|
+
cookie?: never;
|
|
14312
|
+
};
|
|
14313
|
+
requestBody?: never;
|
|
14314
|
+
responses: {
|
|
14315
|
+
/** @description { discarded: n } */
|
|
14316
|
+
200: {
|
|
14317
|
+
headers: {
|
|
14318
|
+
[name: string]: unknown;
|
|
14319
|
+
};
|
|
14320
|
+
content?: never;
|
|
14321
|
+
};
|
|
14322
|
+
};
|
|
14323
|
+
};
|
|
14324
|
+
delete?: never;
|
|
14325
|
+
options?: never;
|
|
14326
|
+
head?: never;
|
|
14327
|
+
patch?: never;
|
|
14328
|
+
trace?: never;
|
|
14329
|
+
};
|
|
14330
|
+
"/studio/publish": {
|
|
14331
|
+
parameters: {
|
|
14332
|
+
query?: never;
|
|
14333
|
+
header?: never;
|
|
14334
|
+
path?: never;
|
|
14335
|
+
cookie?: never;
|
|
14336
|
+
};
|
|
14337
|
+
get?: never;
|
|
14338
|
+
put?: never;
|
|
14339
|
+
/** Publica atomicamente os MEUS rascunhos (playlists+layout+heroes); nunca os de outro editor */
|
|
14340
|
+
post: {
|
|
14341
|
+
parameters: {
|
|
14342
|
+
query?: never;
|
|
14343
|
+
header?: never;
|
|
14344
|
+
path?: never;
|
|
14345
|
+
cookie?: never;
|
|
14346
|
+
};
|
|
14347
|
+
requestBody?: never;
|
|
14348
|
+
responses: {
|
|
14349
|
+
/** @description { applied{...}, warnings[] (staleness/missing) } */
|
|
14350
|
+
200: {
|
|
14351
|
+
headers: {
|
|
14352
|
+
[name: string]: unknown;
|
|
14353
|
+
};
|
|
14354
|
+
content?: never;
|
|
14355
|
+
};
|
|
14356
|
+
/** @description Nenhuma alteração para publicar */
|
|
14357
|
+
409: {
|
|
14358
|
+
headers: {
|
|
14359
|
+
[name: string]: unknown;
|
|
14360
|
+
};
|
|
14361
|
+
content?: never;
|
|
14362
|
+
};
|
|
14363
|
+
/** @description Falha (ex. conteúdo excluído) — nada foi aplicado */
|
|
14364
|
+
422: {
|
|
14365
|
+
headers: {
|
|
14366
|
+
[name: string]: unknown;
|
|
14367
|
+
};
|
|
14368
|
+
content?: never;
|
|
14369
|
+
};
|
|
14370
|
+
};
|
|
14371
|
+
};
|
|
14372
|
+
delete?: never;
|
|
14373
|
+
options?: never;
|
|
14374
|
+
head?: never;
|
|
14375
|
+
patch?: never;
|
|
14376
|
+
trace?: never;
|
|
14377
|
+
};
|
|
14378
|
+
"/studio/catalog": {
|
|
14379
|
+
parameters: {
|
|
14380
|
+
query?: never;
|
|
14381
|
+
header?: never;
|
|
14382
|
+
path?: never;
|
|
14383
|
+
cookie?: never;
|
|
14384
|
+
};
|
|
14385
|
+
/** Busca de conteúdo p/ o picker (cursos/módulos/aulas, com flag published) */
|
|
14386
|
+
get: {
|
|
13916
14387
|
parameters: {
|
|
13917
|
-
query?:
|
|
13918
|
-
|
|
13919
|
-
|
|
13920
|
-
|
|
13921
|
-
|
|
14388
|
+
query?: {
|
|
14389
|
+
q?: string;
|
|
14390
|
+
kind?: "course" | "module" | "lesson";
|
|
14391
|
+
limit?: number;
|
|
14392
|
+
offset?: number;
|
|
13922
14393
|
};
|
|
14394
|
+
header?: never;
|
|
14395
|
+
path?: never;
|
|
13923
14396
|
cookie?: never;
|
|
13924
14397
|
};
|
|
13925
14398
|
requestBody?: never;
|
|
13926
14399
|
responses: {
|
|
13927
|
-
/** @description
|
|
13928
|
-
|
|
14400
|
+
/** @description { counts{courses,modules,lessons}, results[{kind,id,courseId,title,subtitle,coverUrl,published}] } */
|
|
14401
|
+
200: {
|
|
13929
14402
|
headers: {
|
|
13930
14403
|
[name: string]: unknown;
|
|
13931
14404
|
};
|
|
13932
14405
|
content?: never;
|
|
13933
14406
|
};
|
|
13934
|
-
400: components["responses"]["BadRequest"];
|
|
13935
|
-
401: components["responses"]["Unauthorized"];
|
|
13936
|
-
404: components["responses"]["NotFound"];
|
|
13937
|
-
500: components["responses"]["ServerError"];
|
|
13938
14407
|
};
|
|
13939
14408
|
};
|
|
14409
|
+
put?: never;
|
|
14410
|
+
post?: never;
|
|
14411
|
+
delete?: never;
|
|
13940
14412
|
options?: never;
|
|
13941
14413
|
head?: never;
|
|
13942
|
-
|
|
13943
|
-
|
|
13944
|
-
|
|
13945
|
-
|
|
13946
|
-
|
|
14414
|
+
patch?: never;
|
|
14415
|
+
trace?: never;
|
|
14416
|
+
};
|
|
14417
|
+
"/studio/audiences": {
|
|
14418
|
+
parameters: {
|
|
14419
|
+
query?: never;
|
|
14420
|
+
header?: never;
|
|
14421
|
+
path?: never;
|
|
14422
|
+
cookie?: never;
|
|
14423
|
+
};
|
|
14424
|
+
/** Chips de escopo do drawer (escolas, organizações e perfis) */
|
|
14425
|
+
get: {
|
|
13947
14426
|
parameters: {
|
|
13948
14427
|
query?: never;
|
|
13949
14428
|
header?: never;
|
|
13950
|
-
path
|
|
13951
|
-
/** @description Resource ID */
|
|
13952
|
-
id: components["parameters"]["id"];
|
|
13953
|
-
};
|
|
14429
|
+
path?: never;
|
|
13954
14430
|
cookie?: never;
|
|
13955
14431
|
};
|
|
13956
|
-
requestBody
|
|
13957
|
-
content: {
|
|
13958
|
-
"application/json": {
|
|
13959
|
-
name?: string;
|
|
13960
|
-
color?: string;
|
|
13961
|
-
icon?: string;
|
|
13962
|
-
/** @enum {string} */
|
|
13963
|
-
type?: "challenge" | "course" | "tutorial" | "publication" | "evaluation" | "certificate" | "redirect";
|
|
13964
|
-
isActive?: boolean;
|
|
13965
|
-
};
|
|
13966
|
-
};
|
|
13967
|
-
};
|
|
14432
|
+
requestBody?: never;
|
|
13968
14433
|
responses: {
|
|
13969
|
-
/** @description
|
|
14434
|
+
/** @description { institutions[], organizations[], groups[] } */
|
|
13970
14435
|
200: {
|
|
13971
14436
|
headers: {
|
|
13972
14437
|
[name: string]: unknown;
|
|
13973
14438
|
};
|
|
13974
|
-
content
|
|
13975
|
-
"application/json": {
|
|
13976
|
-
/** @example success */
|
|
13977
|
-
status?: string;
|
|
13978
|
-
data?: components["schemas"]["Step"];
|
|
13979
|
-
};
|
|
13980
|
-
};
|
|
14439
|
+
content?: never;
|
|
13981
14440
|
};
|
|
13982
|
-
400: components["responses"]["BadRequest"];
|
|
13983
|
-
401: components["responses"]["Unauthorized"];
|
|
13984
|
-
404: components["responses"]["NotFound"];
|
|
13985
|
-
500: components["responses"]["ServerError"];
|
|
13986
14441
|
};
|
|
13987
14442
|
};
|
|
14443
|
+
put?: never;
|
|
14444
|
+
post?: never;
|
|
14445
|
+
delete?: never;
|
|
14446
|
+
options?: never;
|
|
14447
|
+
head?: never;
|
|
14448
|
+
patch?: never;
|
|
13988
14449
|
trace?: never;
|
|
13989
14450
|
};
|
|
13990
14451
|
"/submissions": {
|
|
@@ -16627,6 +17088,92 @@ interface paths {
|
|
|
16627
17088
|
patch?: never;
|
|
16628
17089
|
trace?: never;
|
|
16629
17090
|
};
|
|
17091
|
+
"/users/{id}/courses/{courseId}/lessons": {
|
|
17092
|
+
parameters: {
|
|
17093
|
+
query?: never;
|
|
17094
|
+
header?: never;
|
|
17095
|
+
path?: never;
|
|
17096
|
+
cookie?: never;
|
|
17097
|
+
};
|
|
17098
|
+
/**
|
|
17099
|
+
* Drill-down por aula de um curso para um aluno (drawer do backoffice)
|
|
17100
|
+
* @description Lista as aulas publicadas do curso na ordem de módulo/aula, com o progresso consolidado (user_lesson_progress_v2) e o agregado de sessões por aula. watchedRanges são os intervalos do vídeo efetivamente assistidos (merged), para o heatmap de cobertura. Só leitura — nenhuma migration.
|
|
17101
|
+
*/
|
|
17102
|
+
get: {
|
|
17103
|
+
parameters: {
|
|
17104
|
+
query?: never;
|
|
17105
|
+
header?: never;
|
|
17106
|
+
path: {
|
|
17107
|
+
/** @description id do aluno */
|
|
17108
|
+
id: string;
|
|
17109
|
+
courseId: string;
|
|
17110
|
+
};
|
|
17111
|
+
cookie?: never;
|
|
17112
|
+
};
|
|
17113
|
+
requestBody?: never;
|
|
17114
|
+
responses: {
|
|
17115
|
+
/** @description Aulas do curso com progresso do aluno */
|
|
17116
|
+
200: {
|
|
17117
|
+
headers: {
|
|
17118
|
+
[name: string]: unknown;
|
|
17119
|
+
};
|
|
17120
|
+
content: {
|
|
17121
|
+
"application/json": {
|
|
17122
|
+
/** @example success */
|
|
17123
|
+
status?: string;
|
|
17124
|
+
data?: {
|
|
17125
|
+
/** Format: uuid */
|
|
17126
|
+
courseId?: string;
|
|
17127
|
+
courseTitle?: string;
|
|
17128
|
+
totalLessons?: number;
|
|
17129
|
+
completedLessons?: number;
|
|
17130
|
+
hoursWatched?: number;
|
|
17131
|
+
avgPlaybackRate?: number | null;
|
|
17132
|
+
modules?: {
|
|
17133
|
+
/** Format: uuid */
|
|
17134
|
+
moduleId?: string;
|
|
17135
|
+
title?: string;
|
|
17136
|
+
position?: number;
|
|
17137
|
+
lessons?: {
|
|
17138
|
+
/** Format: uuid */
|
|
17139
|
+
lessonId?: string;
|
|
17140
|
+
title?: string;
|
|
17141
|
+
position?: number;
|
|
17142
|
+
durationSeconds?: number;
|
|
17143
|
+
completed?: boolean;
|
|
17144
|
+
/** Format: date-time */
|
|
17145
|
+
completedAt?: string | null;
|
|
17146
|
+
positionSeconds?: number;
|
|
17147
|
+
watchedSeconds?: number;
|
|
17148
|
+
watchedPct?: number;
|
|
17149
|
+
/** Format: date-time */
|
|
17150
|
+
lastActivityAt?: string | null;
|
|
17151
|
+
sessions?: number;
|
|
17152
|
+
ranges?: number[][];
|
|
17153
|
+
}[];
|
|
17154
|
+
}[];
|
|
17155
|
+
};
|
|
17156
|
+
};
|
|
17157
|
+
};
|
|
17158
|
+
};
|
|
17159
|
+
/** @description Curso não encontrado */
|
|
17160
|
+
404: {
|
|
17161
|
+
headers: {
|
|
17162
|
+
[name: string]: unknown;
|
|
17163
|
+
};
|
|
17164
|
+
content?: never;
|
|
17165
|
+
};
|
|
17166
|
+
500: components["responses"]["ServerError"];
|
|
17167
|
+
};
|
|
17168
|
+
};
|
|
17169
|
+
put?: never;
|
|
17170
|
+
post?: never;
|
|
17171
|
+
delete?: never;
|
|
17172
|
+
options?: never;
|
|
17173
|
+
head?: never;
|
|
17174
|
+
patch?: never;
|
|
17175
|
+
trace?: never;
|
|
17176
|
+
};
|
|
16630
17177
|
"/vitrine/home": {
|
|
16631
17178
|
parameters: {
|
|
16632
17179
|
query?: never;
|
|
@@ -16873,7 +17420,12 @@ interface components {
|
|
|
16873
17420
|
* Format: email
|
|
16874
17421
|
* @example john.doe@example.com
|
|
16875
17422
|
*/
|
|
16876
|
-
email: string;
|
|
17423
|
+
email: string | null;
|
|
17424
|
+
/**
|
|
17425
|
+
* @description Login do usuário (gerado quando não informado)
|
|
17426
|
+
* @example johndoe
|
|
17427
|
+
*/
|
|
17428
|
+
username?: string;
|
|
16877
17429
|
/** @example +5511999999999 */
|
|
16878
17430
|
phone?: string | null;
|
|
16879
17431
|
/** @example 12345678901 */
|
|
@@ -17073,9 +17625,15 @@ interface components {
|
|
|
17073
17625
|
lastName: string;
|
|
17074
17626
|
/**
|
|
17075
17627
|
* Format: email
|
|
17628
|
+
* @description Optional. When omitted, the user logs in with the generated username
|
|
17076
17629
|
* @example john.doe@example.com
|
|
17077
17630
|
*/
|
|
17078
|
-
email
|
|
17631
|
+
email?: string | null;
|
|
17632
|
+
/**
|
|
17633
|
+
* @description Optional. Auto-generated from firstName + lastName when omitted
|
|
17634
|
+
* @example johndoe
|
|
17635
|
+
*/
|
|
17636
|
+
username?: string | null;
|
|
17079
17637
|
/**
|
|
17080
17638
|
* @description Password for the user's Keycloak account
|
|
17081
17639
|
* @example SecurePassword123!
|
|
@@ -17084,7 +17642,7 @@ interface components {
|
|
|
17084
17642
|
/** @example +5511999999999 */
|
|
17085
17643
|
phone?: string | null;
|
|
17086
17644
|
/** @example 12345678901 */
|
|
17087
|
-
document
|
|
17645
|
+
document?: string | null;
|
|
17088
17646
|
/**
|
|
17089
17647
|
* @example male
|
|
17090
17648
|
* @enum {string|null}
|
|
@@ -17107,6 +17665,18 @@ interface components {
|
|
|
17107
17665
|
* @example 550e8400-e29b-41d4-a716-446655440001
|
|
17108
17666
|
*/
|
|
17109
17667
|
institutionId?: string | null;
|
|
17668
|
+
/**
|
|
17669
|
+
* Format: uuid
|
|
17670
|
+
* @description Optional classroom ID to enroll the user (requires groupId)
|
|
17671
|
+
* @example 550e8400-e29b-41d4-a716-446655440003
|
|
17672
|
+
*/
|
|
17673
|
+
institutionClassroomId?: string | null;
|
|
17674
|
+
/**
|
|
17675
|
+
* Format: uuid
|
|
17676
|
+
* @description Optional ID that groups this request with other creation requests
|
|
17677
|
+
* @example 550e8400-e29b-41d4-a716-446655440004
|
|
17678
|
+
*/
|
|
17679
|
+
userCreationRequestsGroupId?: string | null;
|
|
17110
17680
|
/**
|
|
17111
17681
|
* Format: uuid
|
|
17112
17682
|
* @description Seat code ID to register the user
|
|
@@ -17236,7 +17806,12 @@ interface components {
|
|
|
17236
17806
|
* Format: email
|
|
17237
17807
|
* @example john.doe@example.com
|
|
17238
17808
|
*/
|
|
17239
|
-
email?: string;
|
|
17809
|
+
email?: string | null;
|
|
17810
|
+
/**
|
|
17811
|
+
* @description Login do usuário (gerado quando não informado)
|
|
17812
|
+
* @example johndoe
|
|
17813
|
+
*/
|
|
17814
|
+
username?: string;
|
|
17240
17815
|
/** @example +5511999999999 */
|
|
17241
17816
|
phone?: string | null;
|
|
17242
17817
|
/** @example 12345678901 */
|
|
@@ -19426,9 +20001,11 @@ interface components {
|
|
|
19426
20001
|
requestId?: string;
|
|
19427
20002
|
/**
|
|
19428
20003
|
* Format: email
|
|
19429
|
-
* @description Email of the user being created
|
|
20004
|
+
* @description Email of the user being created (optional)
|
|
19430
20005
|
*/
|
|
19431
|
-
email?: string;
|
|
20006
|
+
email?: string | null;
|
|
20007
|
+
/** @description Login of the created user, generated by the worker when not provided (available after processing) */
|
|
20008
|
+
username?: string | null;
|
|
19432
20009
|
/**
|
|
19433
20010
|
* @description Current status of the creation request
|
|
19434
20011
|
* @enum {string}
|
|
@@ -19939,6 +20516,11 @@ interface components {
|
|
|
19939
20516
|
answer?: string;
|
|
19940
20517
|
/** @example true */
|
|
19941
20518
|
isCorrect?: boolean;
|
|
20519
|
+
/**
|
|
20520
|
+
* @description Resumo revelado ao aluno ao confirmar a resposta. Na alternativa correta explica o conceito; nas incorretas, o erro que a opção representa. NULL nas perguntas anteriores à feature.
|
|
20521
|
+
* @example O 'S' significa 'Secure' e indica que o protocolo utiliza SSL/TLS.
|
|
20522
|
+
*/
|
|
20523
|
+
explanation?: string | null;
|
|
19942
20524
|
/** Format: date-time */
|
|
19943
20525
|
createdAt?: string;
|
|
19944
20526
|
/** Format: date-time */
|
|
@@ -19951,10 +20533,14 @@ interface components {
|
|
|
19951
20533
|
answer: string;
|
|
19952
20534
|
/** @example true */
|
|
19953
20535
|
isCorrect: boolean;
|
|
20536
|
+
/** @description Resumo revelado ao aluno ao confirmar a resposta. String vazia limpa. */
|
|
20537
|
+
explanation?: string;
|
|
19954
20538
|
};
|
|
19955
20539
|
UpdateQuizQuestionAnswerDto: {
|
|
19956
20540
|
answer?: string;
|
|
19957
20541
|
isCorrect?: boolean;
|
|
20542
|
+
/** @description Resumo revelado ao aluno ao confirmar a resposta. String vazia limpa. */
|
|
20543
|
+
explanation?: string;
|
|
19958
20544
|
};
|
|
19959
20545
|
QuizAttempt: {
|
|
19960
20546
|
/** Format: uuid */
|
|
@@ -20432,14 +21018,17 @@ declare function createUserService(apiClient: AcademeApiClient): {
|
|
|
20432
21018
|
body: {
|
|
20433
21019
|
firstName: string;
|
|
20434
21020
|
lastName: string;
|
|
20435
|
-
email
|
|
21021
|
+
email?: string | null;
|
|
21022
|
+
username?: string | null;
|
|
20436
21023
|
password: string;
|
|
20437
21024
|
phone?: string | null;
|
|
20438
|
-
document
|
|
21025
|
+
document?: string | null;
|
|
20439
21026
|
gender?: "male" | "female" | "other" | null;
|
|
20440
21027
|
birthdate?: string | null;
|
|
20441
21028
|
groupId?: string | null;
|
|
20442
21029
|
institutionId?: string | null;
|
|
21030
|
+
institutionClassroomId?: string | null;
|
|
21031
|
+
userCreationRequestsGroupId?: string | null;
|
|
20443
21032
|
seatCodeId?: string | null;
|
|
20444
21033
|
guardianId?: string | null;
|
|
20445
21034
|
guardian?: components["schemas"]["CreateGuardianInlineDto"];
|
|
@@ -20477,20 +21066,61 @@ declare function createUserService(apiClient: AcademeApiClient): {
|
|
|
20477
21066
|
body: {
|
|
20478
21067
|
firstName: string;
|
|
20479
21068
|
lastName: string;
|
|
20480
|
-
email
|
|
21069
|
+
email?: string | null;
|
|
21070
|
+
username?: string | null;
|
|
20481
21071
|
password: string;
|
|
20482
21072
|
phone?: string | null;
|
|
20483
|
-
document
|
|
21073
|
+
document?: string | null;
|
|
20484
21074
|
gender?: "male" | "female" | "other" | null;
|
|
20485
21075
|
birthdate?: string | null;
|
|
20486
21076
|
groupId?: string | null;
|
|
20487
21077
|
institutionId?: string | null;
|
|
21078
|
+
institutionClassroomId?: string | null;
|
|
21079
|
+
userCreationRequestsGroupId?: string | null;
|
|
20488
21080
|
seatCodeId?: string | null;
|
|
20489
21081
|
guardianId?: string | null;
|
|
20490
21082
|
guardian?: components["schemas"]["CreateGuardianInlineDto"];
|
|
20491
21083
|
avatarFileId?: string | null;
|
|
20492
21084
|
};
|
|
20493
21085
|
}, `${string}/${string}`>>;
|
|
21086
|
+
/**
|
|
21087
|
+
* Consulta o status de uma criação assíncrona de usuário, a partir do
|
|
21088
|
+
* requestId devolvido pelo POST /users. Traz o `username` (login) gerado
|
|
21089
|
+
* pelo worker — útil quando o usuário foi criado sem email.
|
|
21090
|
+
*/
|
|
21091
|
+
getUserCreationRequest(requestId: string): Promise<openapi_fetch.FetchResponse<{
|
|
21092
|
+
parameters: {
|
|
21093
|
+
query?: never;
|
|
21094
|
+
header?: never;
|
|
21095
|
+
path: {
|
|
21096
|
+
requestId: string;
|
|
21097
|
+
};
|
|
21098
|
+
cookie?: never;
|
|
21099
|
+
};
|
|
21100
|
+
requestBody?: never;
|
|
21101
|
+
responses: {
|
|
21102
|
+
200: {
|
|
21103
|
+
headers: {
|
|
21104
|
+
[name: string]: unknown;
|
|
21105
|
+
};
|
|
21106
|
+
content: {
|
|
21107
|
+
"application/json": {
|
|
21108
|
+
status?: string;
|
|
21109
|
+
data?: components["schemas"]["UserCreationRequest"];
|
|
21110
|
+
};
|
|
21111
|
+
};
|
|
21112
|
+
};
|
|
21113
|
+
401: components["responses"]["Unauthorized"];
|
|
21114
|
+
404: components["responses"]["NotFound"];
|
|
21115
|
+
500: components["responses"]["ServerError"];
|
|
21116
|
+
};
|
|
21117
|
+
}, {
|
|
21118
|
+
params: {
|
|
21119
|
+
path: {
|
|
21120
|
+
requestId: string;
|
|
21121
|
+
};
|
|
21122
|
+
};
|
|
21123
|
+
}, `${string}/${string}`>>;
|
|
20494
21124
|
/**
|
|
20495
21125
|
* Update user information
|
|
20496
21126
|
*/
|
|
@@ -25097,6 +25727,7 @@ type GetQuizzesParams = {
|
|
|
25097
25727
|
type GetQuizzesWithContextParams = paths['/quiz/with-context']['get']['parameters']['query'];
|
|
25098
25728
|
type GenerateQuizQuestionsBody = paths['/quiz/generate-questions']['post']['requestBody']['content']['application/json'];
|
|
25099
25729
|
type BulkCreateQuizQuestionsBody = paths['/quiz-questions/bulk']['post']['requestBody']['content']['application/json'];
|
|
25730
|
+
type GenerateQuizExplanationsBody = NonNullable<paths['/quiz-questions/{id}/generate-explanations']['post']['requestBody']>['content']['application/json'];
|
|
25100
25731
|
type GetQuizQuestionsParams = paths['/quiz-questions']['get']['parameters']['query'];
|
|
25101
25732
|
type GetQuizQuestionAnswersParams = paths['/quiz-question-answers']['get']['parameters']['query'];
|
|
25102
25733
|
type GetQuizAttemptsParams = paths['/quiz-attempts']['get']['parameters']['query'];
|
|
@@ -25243,6 +25874,7 @@ declare function createQuizService(apiClient: AcademeApiClient): {
|
|
|
25243
25874
|
options?: {
|
|
25244
25875
|
text?: string;
|
|
25245
25876
|
is_correct?: boolean;
|
|
25877
|
+
explanation?: string;
|
|
25246
25878
|
}[];
|
|
25247
25879
|
}[];
|
|
25248
25880
|
};
|
|
@@ -25572,6 +26204,7 @@ declare function createQuizService(apiClient: AcademeApiClient): {
|
|
|
25572
26204
|
options?: {
|
|
25573
26205
|
text?: string;
|
|
25574
26206
|
is_correct?: boolean;
|
|
26207
|
+
explanation?: string;
|
|
25575
26208
|
}[];
|
|
25576
26209
|
}[];
|
|
25577
26210
|
};
|
|
@@ -25603,10 +26236,60 @@ declare function createQuizService(apiClient: AcademeApiClient): {
|
|
|
25603
26236
|
options?: {
|
|
25604
26237
|
text?: string;
|
|
25605
26238
|
is_correct?: boolean;
|
|
26239
|
+
explanation?: string;
|
|
25606
26240
|
}[];
|
|
25607
26241
|
}[];
|
|
25608
26242
|
};
|
|
25609
26243
|
}, `${string}/${string}`>>;
|
|
26244
|
+
/**
|
|
26245
|
+
* Generate the explanation of every answer of an existing question, with AI.
|
|
26246
|
+
*
|
|
26247
|
+
* Backfill das perguntas criadas antes de a explicação existir. Sobrescreve
|
|
26248
|
+
* o que houver — confirme com o usuário antes de chamar.
|
|
26249
|
+
*/
|
|
26250
|
+
generateQuestionExplanations(id: string, body?: GenerateQuizExplanationsBody): Promise<openapi_fetch.FetchResponse<{
|
|
26251
|
+
parameters: {
|
|
26252
|
+
query?: never;
|
|
26253
|
+
header?: never;
|
|
26254
|
+
path: {
|
|
26255
|
+
id: string;
|
|
26256
|
+
};
|
|
26257
|
+
cookie?: never;
|
|
26258
|
+
};
|
|
26259
|
+
requestBody?: {
|
|
26260
|
+
content: {
|
|
26261
|
+
"application/json": {
|
|
26262
|
+
model?: string;
|
|
26263
|
+
};
|
|
26264
|
+
};
|
|
26265
|
+
};
|
|
26266
|
+
responses: {
|
|
26267
|
+
200: {
|
|
26268
|
+
headers: {
|
|
26269
|
+
[name: string]: unknown;
|
|
26270
|
+
};
|
|
26271
|
+
content: {
|
|
26272
|
+
"application/json": {
|
|
26273
|
+
status?: string;
|
|
26274
|
+
data?: components["schemas"]["QuizQuestion"];
|
|
26275
|
+
};
|
|
26276
|
+
};
|
|
26277
|
+
};
|
|
26278
|
+
400: components["responses"]["BadRequest"];
|
|
26279
|
+
401: components["responses"]["Unauthorized"];
|
|
26280
|
+
404: components["responses"]["NotFound"];
|
|
26281
|
+
500: components["responses"]["ServerError"];
|
|
26282
|
+
};
|
|
26283
|
+
}, {
|
|
26284
|
+
params: {
|
|
26285
|
+
path: {
|
|
26286
|
+
id: string;
|
|
26287
|
+
};
|
|
26288
|
+
};
|
|
26289
|
+
body: {
|
|
26290
|
+
model?: string;
|
|
26291
|
+
};
|
|
26292
|
+
}, `${string}/${string}`>>;
|
|
25610
26293
|
/**
|
|
25611
26294
|
* Update quiz question
|
|
25612
26295
|
*/
|
|
@@ -25804,6 +26487,7 @@ declare function createQuizService(apiClient: AcademeApiClient): {
|
|
|
25804
26487
|
questionId: string;
|
|
25805
26488
|
answer: string;
|
|
25806
26489
|
isCorrect: boolean;
|
|
26490
|
+
explanation?: string;
|
|
25807
26491
|
};
|
|
25808
26492
|
}, `${string}/${string}`>>;
|
|
25809
26493
|
/**
|
|
@@ -25849,6 +26533,7 @@ declare function createQuizService(apiClient: AcademeApiClient): {
|
|
|
25849
26533
|
body: {
|
|
25850
26534
|
answer?: string;
|
|
25851
26535
|
isCorrect?: boolean;
|
|
26536
|
+
explanation?: string;
|
|
25852
26537
|
};
|
|
25853
26538
|
}, `${string}/${string}`>>;
|
|
25854
26539
|
/**
|