academe-kit 0.9.8 → 0.10.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 +52 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +441 -4
- package/dist/index.esm.js +52 -25
- package/dist/index.esm.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/services/ChallengeService.d.ts +35 -0
- package/dist/types/services/ReportService.d.ts +75 -0
- package/dist/types/services/SubmissionService.d.ts +8 -1
- package/dist/types/types/academe-api.d.ts +322 -2
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -2880,6 +2880,91 @@ interface paths {
|
|
|
2880
2880
|
};
|
|
2881
2881
|
trace?: never;
|
|
2882
2882
|
};
|
|
2883
|
+
"/challenges/{id}/quiz-attempts": {
|
|
2884
|
+
parameters: {
|
|
2885
|
+
query?: never;
|
|
2886
|
+
header?: never;
|
|
2887
|
+
path?: never;
|
|
2888
|
+
cookie?: never;
|
|
2889
|
+
};
|
|
2890
|
+
/**
|
|
2891
|
+
* Get a user's quiz attempts for this challenge's course modules
|
|
2892
|
+
* @description Returns the quiz attempts of `userId` on every quiz attached to a course
|
|
2893
|
+
* module that is referenced by one of this challenge's steps. Optionally
|
|
2894
|
+
* includes the issued certificate per attempt.
|
|
2895
|
+
*
|
|
2896
|
+
* Each entry corresponds to a `challenges_steps` row that has a non-null
|
|
2897
|
+
* `course_module_id` whose `course_module.quiz_id` is also non-null.
|
|
2898
|
+
* `attempt` is `null` when the user has not yet attempted that quiz.
|
|
2899
|
+
*/
|
|
2900
|
+
get: {
|
|
2901
|
+
parameters: {
|
|
2902
|
+
query?: {
|
|
2903
|
+
/** @description Defaults to the authenticated user when omitted. */
|
|
2904
|
+
userId?: string;
|
|
2905
|
+
};
|
|
2906
|
+
header?: never;
|
|
2907
|
+
path: {
|
|
2908
|
+
/** @description Resource ID */
|
|
2909
|
+
id: components["parameters"]["id"];
|
|
2910
|
+
};
|
|
2911
|
+
cookie?: never;
|
|
2912
|
+
};
|
|
2913
|
+
requestBody?: never;
|
|
2914
|
+
responses: {
|
|
2915
|
+
/** @description List of quiz attempts (one per quiz-bearing challenge step) */
|
|
2916
|
+
200: {
|
|
2917
|
+
headers: {
|
|
2918
|
+
[name: string]: unknown;
|
|
2919
|
+
};
|
|
2920
|
+
content: {
|
|
2921
|
+
"application/json": {
|
|
2922
|
+
/** @example success */
|
|
2923
|
+
status?: string;
|
|
2924
|
+
data?: {
|
|
2925
|
+
/** Format: uuid */
|
|
2926
|
+
challengeStepId?: string;
|
|
2927
|
+
challengeStepName?: string;
|
|
2928
|
+
challengeStepIndex?: number;
|
|
2929
|
+
/** Format: uuid */
|
|
2930
|
+
courseModuleId?: string;
|
|
2931
|
+
courseModuleTitle?: string;
|
|
2932
|
+
/** Format: uuid */
|
|
2933
|
+
quizId?: string;
|
|
2934
|
+
quizTitle?: string;
|
|
2935
|
+
attempt?: {
|
|
2936
|
+
/** Format: uuid */
|
|
2937
|
+
id?: string;
|
|
2938
|
+
score?: number;
|
|
2939
|
+
passed?: boolean;
|
|
2940
|
+
/** Format: date-time */
|
|
2941
|
+
startedAt?: string;
|
|
2942
|
+
/** Format: date-time */
|
|
2943
|
+
completedAt?: string | null;
|
|
2944
|
+
} | null;
|
|
2945
|
+
certificate?: {
|
|
2946
|
+
/** Format: uuid */
|
|
2947
|
+
id?: string;
|
|
2948
|
+
certificateNumber?: string;
|
|
2949
|
+
url?: string | null;
|
|
2950
|
+
} | null;
|
|
2951
|
+
}[];
|
|
2952
|
+
};
|
|
2953
|
+
};
|
|
2954
|
+
};
|
|
2955
|
+
400: components["responses"]["BadRequest"];
|
|
2956
|
+
401: components["responses"]["Unauthorized"];
|
|
2957
|
+
404: components["responses"]["NotFound"];
|
|
2958
|
+
};
|
|
2959
|
+
};
|
|
2960
|
+
put?: never;
|
|
2961
|
+
post?: never;
|
|
2962
|
+
delete?: never;
|
|
2963
|
+
options?: never;
|
|
2964
|
+
head?: never;
|
|
2965
|
+
patch?: never;
|
|
2966
|
+
trace?: never;
|
|
2967
|
+
};
|
|
2883
2968
|
"/classrooms": {
|
|
2884
2969
|
parameters: {
|
|
2885
2970
|
query?: never;
|
|
@@ -10649,7 +10734,12 @@ interface paths {
|
|
|
10649
10734
|
*/
|
|
10650
10735
|
get: {
|
|
10651
10736
|
parameters: {
|
|
10652
|
-
query?:
|
|
10737
|
+
query?: {
|
|
10738
|
+
/** @description UUID do educational_model_period. Quando omitido, o backend resolve para o período corrente (NOW). Ignorado quando allPeriods=true. */
|
|
10739
|
+
periodId?: string;
|
|
10740
|
+
/** @description Quando 'true', desliga o recorte por período em Jornada/Classes/TopTeachers — passa a refletir o ano letivo inteiro. SubmissionsCard continua sempre no bimestre corrente. */
|
|
10741
|
+
allPeriods?: "true";
|
|
10742
|
+
};
|
|
10653
10743
|
header?: never;
|
|
10654
10744
|
path: {
|
|
10655
10745
|
/** @description ID da instituição */
|
|
@@ -11709,7 +11799,22 @@ interface paths {
|
|
|
11709
11799
|
/** @example success */
|
|
11710
11800
|
status?: string;
|
|
11711
11801
|
data?: components["schemas"]["Submission"][];
|
|
11712
|
-
meta?: components["schemas"]["PaginationMeta"]
|
|
11802
|
+
meta?: components["schemas"]["PaginationMeta"] & {
|
|
11803
|
+
/**
|
|
11804
|
+
* @description Contagem por status, ignorando o filtro `status`. Útil para
|
|
11805
|
+
* alimentar abas/pills sem requisições adicionais.
|
|
11806
|
+
*/
|
|
11807
|
+
statusCounts?: {
|
|
11808
|
+
/** @example 12 */
|
|
11809
|
+
submitted?: number;
|
|
11810
|
+
/** @example 4 */
|
|
11811
|
+
ai_evaluated?: number;
|
|
11812
|
+
/** @example 30 */
|
|
11813
|
+
approved?: number;
|
|
11814
|
+
/** @example 2 */
|
|
11815
|
+
rejected?: number;
|
|
11816
|
+
};
|
|
11817
|
+
};
|
|
11713
11818
|
};
|
|
11714
11819
|
};
|
|
11715
11820
|
};
|
|
@@ -12371,6 +12476,128 @@ interface paths {
|
|
|
12371
12476
|
patch?: never;
|
|
12372
12477
|
trace?: never;
|
|
12373
12478
|
};
|
|
12479
|
+
"/user-challenge-progress/journey": {
|
|
12480
|
+
parameters: {
|
|
12481
|
+
query?: never;
|
|
12482
|
+
header?: never;
|
|
12483
|
+
path?: never;
|
|
12484
|
+
cookie?: never;
|
|
12485
|
+
};
|
|
12486
|
+
/**
|
|
12487
|
+
* Jornada completa pré-computada do aluno autenticado
|
|
12488
|
+
* @description Retorna todos os desafios da série com suas etapas e o status de progresso do aluno
|
|
12489
|
+
* já computados pelo backend. Substitui as ~25 chamadas HTTP paralelas que o frontend
|
|
12490
|
+
* fazia anteriormente para montar a tela de jornada.
|
|
12491
|
+
*
|
|
12492
|
+
* **Regra de prioridade:** para cada `index` de desafio dentro da série, o backend
|
|
12493
|
+
* prefere o challenge específico da instituição do aluno sobre o template global
|
|
12494
|
+
* (`institution_id IS NULL`). Isso permite que escolas customizem desafios pontuais
|
|
12495
|
+
* sem recriar toda a jornada.
|
|
12496
|
+
*
|
|
12497
|
+
* **Resolução da série:** se `serieId` não for informado, o backend resolve
|
|
12498
|
+
* automaticamente a partir da turma (`institutionClassroom`) do aluno. Se o aluno
|
|
12499
|
+
* não estiver em nenhuma turma e `serieId` também não for passado, retorna
|
|
12500
|
+
* `challenges: []` com `serieId: null`.
|
|
12501
|
+
*
|
|
12502
|
+
* **Status por etapa:** `done` = completedAt preenchido; `current` = primeira etapa
|
|
12503
|
+
* não concluída (apenas uma por vez); `locked` = todas as demais.
|
|
12504
|
+
*
|
|
12505
|
+
* **Progresso:** para etapas `type=course` no status `current`, o campo `progress`
|
|
12506
|
+
* reflete o percentual de lições concluídas no módulo. Para `done` é sempre 100,
|
|
12507
|
+
* para `locked` é sempre 0.
|
|
12508
|
+
*/
|
|
12509
|
+
get: {
|
|
12510
|
+
parameters: {
|
|
12511
|
+
query?: {
|
|
12512
|
+
/**
|
|
12513
|
+
* @description ID da série a filtrar. Opcional — se omitido, o backend resolve pela turma do aluno.
|
|
12514
|
+
* Útil para pré-visualização administrativa ou quando o aluno pertence a múltiplas séries.
|
|
12515
|
+
*/
|
|
12516
|
+
serieId?: string;
|
|
12517
|
+
};
|
|
12518
|
+
header?: never;
|
|
12519
|
+
path?: never;
|
|
12520
|
+
cookie?: never;
|
|
12521
|
+
};
|
|
12522
|
+
requestBody?: never;
|
|
12523
|
+
responses: {
|
|
12524
|
+
/** @description Jornada pré-computada com desafios e etapas */
|
|
12525
|
+
200: {
|
|
12526
|
+
headers: {
|
|
12527
|
+
[name: string]: unknown;
|
|
12528
|
+
};
|
|
12529
|
+
content: {
|
|
12530
|
+
/**
|
|
12531
|
+
* @example {
|
|
12532
|
+
* "status": "success",
|
|
12533
|
+
* "data": {
|
|
12534
|
+
* "serieId": "a1b2c3d4-0000-0000-0000-000000000001",
|
|
12535
|
+
* "serieLabel": "6º ANO",
|
|
12536
|
+
* "challenges": [
|
|
12537
|
+
* {
|
|
12538
|
+
* "id": "a1b2c3d4-0000-0000-0000-000000000002",
|
|
12539
|
+
* "title": "Desafio 1 — Energia Limpa",
|
|
12540
|
+
* "index": 0,
|
|
12541
|
+
* "courseId": "a1b2c3d4-0000-0000-0000-000000000003",
|
|
12542
|
+
* "isUpcoming": false,
|
|
12543
|
+
* "steps": [
|
|
12544
|
+
* {
|
|
12545
|
+
* "id": "a1b2c3d4-0000-0000-0000-000000000010",
|
|
12546
|
+
* "name": "Inicie o desafio",
|
|
12547
|
+
* "index": 0,
|
|
12548
|
+
* "type": "challenge",
|
|
12549
|
+
* "color": "#1AC84A",
|
|
12550
|
+
* "icon": "LuStar",
|
|
12551
|
+
* "status": "done",
|
|
12552
|
+
* "progress": 100,
|
|
12553
|
+
* "courseModuleId": null,
|
|
12554
|
+
* "courseModuleName": null
|
|
12555
|
+
* },
|
|
12556
|
+
* {
|
|
12557
|
+
* "id": "a1b2c3d4-0000-0000-0000-000000000011",
|
|
12558
|
+
* "name": "Módulo de IA",
|
|
12559
|
+
* "index": 1,
|
|
12560
|
+
* "type": "course",
|
|
12561
|
+
* "color": "#8030D8",
|
|
12562
|
+
* "icon": "LuCirclePlay",
|
|
12563
|
+
* "status": "current",
|
|
12564
|
+
* "progress": 67,
|
|
12565
|
+
* "courseModuleId": "a1b2c3d4-0000-0000-0000-000000000020",
|
|
12566
|
+
* "courseModuleName": "Introdução a IA"
|
|
12567
|
+
* }
|
|
12568
|
+
* ]
|
|
12569
|
+
* }
|
|
12570
|
+
* ]
|
|
12571
|
+
* }
|
|
12572
|
+
* }
|
|
12573
|
+
*/
|
|
12574
|
+
"application/json": {
|
|
12575
|
+
/** @example success */
|
|
12576
|
+
status?: string;
|
|
12577
|
+
data?: components["schemas"]["JourneyView"];
|
|
12578
|
+
};
|
|
12579
|
+
};
|
|
12580
|
+
};
|
|
12581
|
+
/** @description serieId inválido (não é um UUID) */
|
|
12582
|
+
400: {
|
|
12583
|
+
headers: {
|
|
12584
|
+
[name: string]: unknown;
|
|
12585
|
+
};
|
|
12586
|
+
content: {
|
|
12587
|
+
"application/json": components["schemas"]["Error"];
|
|
12588
|
+
};
|
|
12589
|
+
};
|
|
12590
|
+
401: components["responses"]["Unauthorized"];
|
|
12591
|
+
};
|
|
12592
|
+
};
|
|
12593
|
+
put?: never;
|
|
12594
|
+
post?: never;
|
|
12595
|
+
delete?: never;
|
|
12596
|
+
options?: never;
|
|
12597
|
+
head?: never;
|
|
12598
|
+
patch?: never;
|
|
12599
|
+
trace?: never;
|
|
12600
|
+
};
|
|
12374
12601
|
"/user-challenge-progress/challenges/{id}/advance": {
|
|
12375
12602
|
parameters: {
|
|
12376
12603
|
query?: never;
|
|
@@ -15235,6 +15462,99 @@ interface components {
|
|
|
15235
15462
|
/** Format: date-time */
|
|
15236
15463
|
updatedAt?: string;
|
|
15237
15464
|
};
|
|
15465
|
+
/** @description Etapa de um desafio com status computado pelo backend */
|
|
15466
|
+
JourneyStepView: {
|
|
15467
|
+
/**
|
|
15468
|
+
* Format: uuid
|
|
15469
|
+
* @description ID do challenge_step
|
|
15470
|
+
*/
|
|
15471
|
+
id: string;
|
|
15472
|
+
/** @example Módulo de IA */
|
|
15473
|
+
name: string;
|
|
15474
|
+
/**
|
|
15475
|
+
* @description Ordem da etapa dentro do desafio
|
|
15476
|
+
* @example 1
|
|
15477
|
+
*/
|
|
15478
|
+
index: number;
|
|
15479
|
+
/**
|
|
15480
|
+
* @description Tipo da etapa (do catálogo de steps)
|
|
15481
|
+
* @example course
|
|
15482
|
+
* @enum {string}
|
|
15483
|
+
*/
|
|
15484
|
+
type: "challenge" | "course" | "tutorial" | "publication" | "evaluation" | "certificate";
|
|
15485
|
+
/**
|
|
15486
|
+
* @description Cor hex do step catalog
|
|
15487
|
+
* @example #8030D8
|
|
15488
|
+
*/
|
|
15489
|
+
color: string;
|
|
15490
|
+
/**
|
|
15491
|
+
* @description Nome do ícone Lucide do step catalog
|
|
15492
|
+
* @example LuCirclePlay
|
|
15493
|
+
*/
|
|
15494
|
+
icon: string;
|
|
15495
|
+
/**
|
|
15496
|
+
* @description Status computado pelo backend: done=concluído, current=etapa ativa, locked=ainda bloqueado
|
|
15497
|
+
* @example current
|
|
15498
|
+
* @enum {string}
|
|
15499
|
+
*/
|
|
15500
|
+
status: "done" | "current" | "locked";
|
|
15501
|
+
/**
|
|
15502
|
+
* @description Percentual de progresso (0-100). Para done=100, para locked=0, para current=% do curso ou 0
|
|
15503
|
+
* @example 67
|
|
15504
|
+
*/
|
|
15505
|
+
progress: number;
|
|
15506
|
+
/**
|
|
15507
|
+
* Format: uuid
|
|
15508
|
+
* @description ID do módulo do curso referenciado por esta etapa (apenas quando type=course)
|
|
15509
|
+
*/
|
|
15510
|
+
courseModuleId?: string | null;
|
|
15511
|
+
/**
|
|
15512
|
+
* @description Título do módulo do curso (apenas quando courseModuleId não é null)
|
|
15513
|
+
* @example Introdução a IA
|
|
15514
|
+
*/
|
|
15515
|
+
courseModuleName?: string | null;
|
|
15516
|
+
};
|
|
15517
|
+
/** @description Desafio da jornada com suas etapas e status computados */
|
|
15518
|
+
JourneyChallengeView: {
|
|
15519
|
+
/**
|
|
15520
|
+
* Format: uuid
|
|
15521
|
+
* @description ID do challenge
|
|
15522
|
+
*/
|
|
15523
|
+
id: string;
|
|
15524
|
+
/** @example Desafio 1 — Energia Limpa */
|
|
15525
|
+
title: string;
|
|
15526
|
+
/**
|
|
15527
|
+
* @description Ordem do desafio na série
|
|
15528
|
+
* @example 0
|
|
15529
|
+
*/
|
|
15530
|
+
index: number;
|
|
15531
|
+
/**
|
|
15532
|
+
* Format: uuid
|
|
15533
|
+
* @description Curso ao qual o desafio está associado
|
|
15534
|
+
*/
|
|
15535
|
+
courseId: string;
|
|
15536
|
+
/**
|
|
15537
|
+
* @description True quando o desafio ainda não está disponível para o aluno (challenge seguinte ao ativo com steps pendentes)
|
|
15538
|
+
* @example false
|
|
15539
|
+
*/
|
|
15540
|
+
isUpcoming: boolean;
|
|
15541
|
+
steps: components["schemas"]["JourneyStepView"][];
|
|
15542
|
+
};
|
|
15543
|
+
/** @description Resposta completa do endpoint GET /user-challenge-progress/journey — dados pré-computados para renderização direta da tela de jornada */
|
|
15544
|
+
JourneyView: {
|
|
15545
|
+
/** @description Desafios da jornada ordenados por index, com prioridade escola > template aplicada */
|
|
15546
|
+
challenges: components["schemas"]["JourneyChallengeView"][];
|
|
15547
|
+
/**
|
|
15548
|
+
* Format: uuid
|
|
15549
|
+
* @description ID da série resolvida (da turma do aluno, ou do query param serieId)
|
|
15550
|
+
*/
|
|
15551
|
+
serieId: string | null;
|
|
15552
|
+
/**
|
|
15553
|
+
* @description Rótulo legível da série para exibição na UI
|
|
15554
|
+
* @example 6º ANO
|
|
15555
|
+
*/
|
|
15556
|
+
serieLabel: string | null;
|
|
15557
|
+
};
|
|
15238
15558
|
/** @description Aggregated progress of a user on a course or module, derived from users_course_log completion events */
|
|
15239
15559
|
UsersCourseLogProgress: {
|
|
15240
15560
|
/**
|
|
@@ -19878,6 +20198,81 @@ declare function createReportService(apiClient: AcademeApiClient): {
|
|
|
19878
20198
|
query: GetTopStudentsParams;
|
|
19879
20199
|
};
|
|
19880
20200
|
}, `${string}/${string}`>>;
|
|
20201
|
+
/**
|
|
20202
|
+
* Get encourage dashboard for an institution
|
|
20203
|
+
* Retorna o payload agregado da tela /new-dashboard:
|
|
20204
|
+
* overview (com lista de períodos do ano letivo + flag isAllPeriods),
|
|
20205
|
+
* KPIs, licenças (alunos), jornada (cursos do bimestre selecionado ou do
|
|
20206
|
+
* ano letivo quando allPeriods), submissões do bimestre corrente,
|
|
20207
|
+
* desempenho por turma, top alunos e top professores do bimestre.
|
|
20208
|
+
*
|
|
20209
|
+
* @param id UUID da instituição.
|
|
20210
|
+
* @param params.periodId UUID do educational_model_period. Quando omitido,
|
|
20211
|
+
* o backend resolve para o período corrente (NOW).
|
|
20212
|
+
* Ignorado quando allPeriods=true.
|
|
20213
|
+
* @param params.allPeriods Quando true, desliga o recorte por período em
|
|
20214
|
+
* Jornada/Classes/TopTeachers — passa a refletir
|
|
20215
|
+
* o ano letivo inteiro. SubmissionsCard continua
|
|
20216
|
+
* sempre no bimestre corrente.
|
|
20217
|
+
*/
|
|
20218
|
+
getEncourageDashboardByInstitution(id: string, params?: {
|
|
20219
|
+
periodId?: string;
|
|
20220
|
+
allPeriods?: boolean;
|
|
20221
|
+
}): Promise<openapi_fetch.FetchResponse<{
|
|
20222
|
+
parameters: {
|
|
20223
|
+
query?: {
|
|
20224
|
+
periodId?: string;
|
|
20225
|
+
allPeriods?: "true";
|
|
20226
|
+
};
|
|
20227
|
+
header?: never;
|
|
20228
|
+
path: {
|
|
20229
|
+
id: string;
|
|
20230
|
+
};
|
|
20231
|
+
cookie?: never;
|
|
20232
|
+
};
|
|
20233
|
+
requestBody?: never;
|
|
20234
|
+
responses: {
|
|
20235
|
+
200: {
|
|
20236
|
+
headers: {
|
|
20237
|
+
[name: string]: unknown;
|
|
20238
|
+
};
|
|
20239
|
+
content: {
|
|
20240
|
+
"application/json": {
|
|
20241
|
+
status?: string;
|
|
20242
|
+
data?: components["schemas"]["EncourageDashboardResponse"];
|
|
20243
|
+
};
|
|
20244
|
+
};
|
|
20245
|
+
};
|
|
20246
|
+
400: {
|
|
20247
|
+
headers: {
|
|
20248
|
+
[name: string]: unknown;
|
|
20249
|
+
};
|
|
20250
|
+
content?: never;
|
|
20251
|
+
};
|
|
20252
|
+
401: {
|
|
20253
|
+
headers: {
|
|
20254
|
+
[name: string]: unknown;
|
|
20255
|
+
};
|
|
20256
|
+
content?: never;
|
|
20257
|
+
};
|
|
20258
|
+
500: {
|
|
20259
|
+
headers: {
|
|
20260
|
+
[name: string]: unknown;
|
|
20261
|
+
};
|
|
20262
|
+
content?: never;
|
|
20263
|
+
};
|
|
20264
|
+
};
|
|
20265
|
+
}, {
|
|
20266
|
+
params: {
|
|
20267
|
+
path: {
|
|
20268
|
+
id: string;
|
|
20269
|
+
};
|
|
20270
|
+
query: {
|
|
20271
|
+
periodId?: string;
|
|
20272
|
+
allPeriods?: "true";
|
|
20273
|
+
} | undefined;
|
|
20274
|
+
};
|
|
20275
|
+
}, `${string}/${string}`>>;
|
|
19881
20276
|
};
|
|
19882
20277
|
type ReportService = ReturnType<typeof createReportService>;
|
|
19883
20278
|
|
|
@@ -24814,6 +25209,35 @@ interface UpdateEvaluationCriterionBody {
|
|
|
24814
25209
|
description?: string;
|
|
24815
25210
|
index?: number;
|
|
24816
25211
|
}
|
|
25212
|
+
interface ChallengeUserQuizAttempt {
|
|
25213
|
+
challengeStepId: string;
|
|
25214
|
+
challengeStepName: string;
|
|
25215
|
+
challengeStepIndex: number;
|
|
25216
|
+
courseModuleId: string;
|
|
25217
|
+
courseModuleTitle: string;
|
|
25218
|
+
quizId: string;
|
|
25219
|
+
quizTitle: string;
|
|
25220
|
+
attempt: {
|
|
25221
|
+
id: string;
|
|
25222
|
+
score: number;
|
|
25223
|
+
passed: boolean;
|
|
25224
|
+
startedAt: string;
|
|
25225
|
+
completedAt: string | null;
|
|
25226
|
+
} | null;
|
|
25227
|
+
certificate: {
|
|
25228
|
+
id: string;
|
|
25229
|
+
certificateNumber: string;
|
|
25230
|
+
url: string | null;
|
|
25231
|
+
} | null;
|
|
25232
|
+
}
|
|
25233
|
+
interface ChallengeUserQuizAttemptsResponse {
|
|
25234
|
+
data?: {
|
|
25235
|
+
status?: string;
|
|
25236
|
+
data?: ChallengeUserQuizAttempt[];
|
|
25237
|
+
};
|
|
25238
|
+
error?: unknown;
|
|
25239
|
+
response: Response;
|
|
25240
|
+
}
|
|
24817
25241
|
declare function createChallengeService(apiClient: AcademeApiClient): {
|
|
24818
25242
|
/**
|
|
24819
25243
|
* List challenges with filters and pagination
|
|
@@ -25125,6 +25549,12 @@ declare function createChallengeService(apiClient: AcademeApiClient): {
|
|
|
25125
25549
|
title?: string;
|
|
25126
25550
|
};
|
|
25127
25551
|
}, `${string}/${string}`>>;
|
|
25552
|
+
/**
|
|
25553
|
+
* Get a user's quiz attempts for the quizzes attached to this challenge's
|
|
25554
|
+
* course modules (one entry per step with course_module.quiz_id).
|
|
25555
|
+
* Defaults to the authenticated user when userId is omitted.
|
|
25556
|
+
*/
|
|
25557
|
+
getUserQuizAttempts(challengeId: string, userId?: string): Promise<ChallengeUserQuizAttemptsResponse>;
|
|
25128
25558
|
/**
|
|
25129
25559
|
* Add a step to the challenge
|
|
25130
25560
|
*/
|
|
@@ -25785,7 +26215,14 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
25785
26215
|
"application/json": {
|
|
25786
26216
|
status?: string;
|
|
25787
26217
|
data?: components["schemas"]["Submission"][];
|
|
25788
|
-
meta?: components["schemas"]["PaginationMeta"]
|
|
26218
|
+
meta?: components["schemas"]["PaginationMeta"] & {
|
|
26219
|
+
statusCounts?: {
|
|
26220
|
+
submitted?: number;
|
|
26221
|
+
ai_evaluated?: number;
|
|
26222
|
+
approved?: number;
|
|
26223
|
+
rejected?: number;
|
|
26224
|
+
};
|
|
26225
|
+
};
|
|
25789
26226
|
};
|
|
25790
26227
|
};
|
|
25791
26228
|
};
|
|
@@ -26215,4 +26652,4 @@ declare enum NINA_ROLES {
|
|
|
26215
26652
|
}
|
|
26216
26653
|
|
|
26217
26654
|
export { AcademeAuthProvider, BACKOFFICE_ROLES, Button, CosmicDecor, CosmicStarsCanvas, DASHBOARD_ROLES, GLOBAL_ROLES, JourneyCrystalPin, JourneyStep, MIKE_ROLES, NINA_ROLES, ProtectedApp, ProtectedComponent, ProtectedRouter, STREAMING_ROLES, Spinner, WIDGET_ROLES, academeApi_d as apiTypes, cn, createAcademeApiClient, index_d as types, useAcademeAuth, useProtectedAppColors };
|
|
26218
|
-
export type { AcademeApiClient, AcademeKeycloakContextProps, AcademeServices, AcademeUser, ButtonProps, CosmicDecorProps, CosmicDecorVariant, CosmicPlanet, CosmicStarsCanvasProps, FrameKind, JourneyCrystalPinProps, JourneyStepProps, JourneyStepSize, JourneyStepType, KeycloakUser, RequiredClientRoles, SecurityContextType, SecurityProviderProps };
|
|
26655
|
+
export type { AcademeApiClient, AcademeKeycloakContextProps, AcademeServices, AcademeUser, ButtonProps, ChallengeUserQuizAttempt, ChallengeUserQuizAttemptsResponse, CosmicDecorProps, CosmicDecorVariant, CosmicPlanet, CosmicStarsCanvasProps, FrameKind, JourneyCrystalPinProps, JourneyStepProps, JourneyStepSize, JourneyStepType, KeycloakUser, RequiredClientRoles, SecurityContextType, SecurityProviderProps };
|