academe-kit 0.10.0 → 0.10.2
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 +181 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +451 -4
- package/dist/index.esm.js +181 -41
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/JourneyStep/frames/types.d.ts +10 -0
- package/dist/types/services/ReportService.d.ts +67 -0
- package/dist/types/services/SubmissionService.d.ts +21 -1
- package/dist/types/services/UserProgressService.d.ts +239 -0
- package/dist/types/services/index.d.ts +3 -0
- package/dist/types/types/academe-api.d.ts +126 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -10793,6 +10793,77 @@ interface paths {
|
|
|
10793
10793
|
patch?: never;
|
|
10794
10794
|
trace?: never;
|
|
10795
10795
|
};
|
|
10796
|
+
"/reports/students-journey-status/{id}": {
|
|
10797
|
+
parameters: {
|
|
10798
|
+
query?: never;
|
|
10799
|
+
header?: never;
|
|
10800
|
+
path?: never;
|
|
10801
|
+
cookie?: never;
|
|
10802
|
+
};
|
|
10803
|
+
/**
|
|
10804
|
+
* Status de jornada dos alunos por bimestre (cards de /students)
|
|
10805
|
+
* @description Recorta os alunos ativos da escola em 4 categorias mutuamente exclusivas
|
|
10806
|
+
* (notStarted, inJourney, inReview, completed) considerando os challenges
|
|
10807
|
+
* do bimestre alvo. Cada aluno cai na categoria mais avançada que alcançou.
|
|
10808
|
+
*/
|
|
10809
|
+
get: {
|
|
10810
|
+
parameters: {
|
|
10811
|
+
query?: {
|
|
10812
|
+
/** @description UUID do educational_model_period, OU a string literal `"all"` para considerar todos os bimestres. Omitido = corrente. */
|
|
10813
|
+
periodId?: string;
|
|
10814
|
+
/** @description Quando presente, restringe o cálculo a UM challenge específico dentro do recorte temporal. */
|
|
10815
|
+
challengeId?: string;
|
|
10816
|
+
};
|
|
10817
|
+
header?: never;
|
|
10818
|
+
path: {
|
|
10819
|
+
/** @description UUID da instituição */
|
|
10820
|
+
id: string;
|
|
10821
|
+
};
|
|
10822
|
+
cookie?: never;
|
|
10823
|
+
};
|
|
10824
|
+
requestBody?: never;
|
|
10825
|
+
responses: {
|
|
10826
|
+
/** @description Status agregado */
|
|
10827
|
+
200: {
|
|
10828
|
+
headers: {
|
|
10829
|
+
[name: string]: unknown;
|
|
10830
|
+
};
|
|
10831
|
+
content: {
|
|
10832
|
+
"application/json": {
|
|
10833
|
+
/** @example success */
|
|
10834
|
+
status?: string;
|
|
10835
|
+
data?: components["schemas"]["StudentsJourneyStatusResponse"];
|
|
10836
|
+
};
|
|
10837
|
+
};
|
|
10838
|
+
};
|
|
10839
|
+
400: {
|
|
10840
|
+
headers: {
|
|
10841
|
+
[name: string]: unknown;
|
|
10842
|
+
};
|
|
10843
|
+
content?: never;
|
|
10844
|
+
};
|
|
10845
|
+
401: {
|
|
10846
|
+
headers: {
|
|
10847
|
+
[name: string]: unknown;
|
|
10848
|
+
};
|
|
10849
|
+
content?: never;
|
|
10850
|
+
};
|
|
10851
|
+
500: {
|
|
10852
|
+
headers: {
|
|
10853
|
+
[name: string]: unknown;
|
|
10854
|
+
};
|
|
10855
|
+
content?: never;
|
|
10856
|
+
};
|
|
10857
|
+
};
|
|
10858
|
+
};
|
|
10859
|
+
put?: never;
|
|
10860
|
+
post?: never;
|
|
10861
|
+
delete?: never;
|
|
10862
|
+
options?: never;
|
|
10863
|
+
head?: never;
|
|
10864
|
+
patch?: never;
|
|
10865
|
+
trace?: never;
|
|
10866
|
+
};
|
|
10796
10867
|
"/roles": {
|
|
10797
10868
|
parameters: {
|
|
10798
10869
|
query?: never;
|
|
@@ -11777,7 +11848,13 @@ interface paths {
|
|
|
11777
11848
|
userId?: string;
|
|
11778
11849
|
groupId?: string;
|
|
11779
11850
|
institutionId?: string;
|
|
11851
|
+
institutionClassroomId?: string;
|
|
11852
|
+
serieId?: string;
|
|
11780
11853
|
status?: "submitted" | "ai_evaluated" | "approved" | "rejected";
|
|
11854
|
+
/** @description Busca por nome ou e-mail do aluno */
|
|
11855
|
+
search?: string;
|
|
11856
|
+
/** @description UUID de um educational_model_period. Recorta as submissões cuja data de envio (submittedAt) cai no intervalo [start, end] do período. Omitido = todos os períodos. */
|
|
11857
|
+
periodId?: string;
|
|
11781
11858
|
/** @description Page number */
|
|
11782
11859
|
page?: components["parameters"]["page"];
|
|
11783
11860
|
/** @description Items per page */
|
|
@@ -11798,7 +11875,16 @@ interface paths {
|
|
|
11798
11875
|
"application/json": {
|
|
11799
11876
|
/** @example success */
|
|
11800
11877
|
status?: string;
|
|
11801
|
-
data?: components["schemas"]["Submission"]
|
|
11878
|
+
data?: (components["schemas"]["Submission"] & {
|
|
11879
|
+
/** @description Período letivo cujo intervalo contém a data de envio (submittedAt). Null quando a escola não tem períodos ou o envio caiu fora de qualquer período. */
|
|
11880
|
+
period?: {
|
|
11881
|
+
id?: string;
|
|
11882
|
+
/** @description 0-based (0 = 1º período) */
|
|
11883
|
+
index?: number;
|
|
11884
|
+
/** @example 1º Bimestre */
|
|
11885
|
+
label?: string;
|
|
11886
|
+
} | null;
|
|
11887
|
+
})[];
|
|
11802
11888
|
meta?: components["schemas"]["PaginationMeta"] & {
|
|
11803
11889
|
/**
|
|
11804
11890
|
* @description Contagem por status, ignorando o filtro `status`. Útil para
|
|
@@ -11814,6 +11900,14 @@ interface paths {
|
|
|
11814
11900
|
/** @example 2 */
|
|
11815
11901
|
rejected?: number;
|
|
11816
11902
|
};
|
|
11903
|
+
/** @description Períodos letivos da escola (ORDER BY start ASC) para o dropdown de filtro. */
|
|
11904
|
+
periods?: {
|
|
11905
|
+
id?: string;
|
|
11906
|
+
index?: number;
|
|
11907
|
+
/** @example 1º Bimestre */
|
|
11908
|
+
label?: string;
|
|
11909
|
+
isCurrent?: boolean;
|
|
11910
|
+
}[];
|
|
11817
11911
|
};
|
|
11818
11912
|
};
|
|
11819
11913
|
};
|
|
@@ -14762,6 +14856,9 @@ interface components {
|
|
|
14762
14856
|
createdAt: string;
|
|
14763
14857
|
/** Format: date-time */
|
|
14764
14858
|
updatedAt: string;
|
|
14859
|
+
organization?: components["schemas"]["Organization"] | null;
|
|
14860
|
+
address?: components["schemas"]["Address"] | null;
|
|
14861
|
+
institutionReward?: Record<string, never> | null;
|
|
14765
14862
|
};
|
|
14766
14863
|
Organization: {
|
|
14767
14864
|
/** Format: uuid */
|
|
@@ -16554,10 +16651,36 @@ interface components {
|
|
|
16554
16651
|
courses?: components["schemas"]["EncourageJourneyCourse"][];
|
|
16555
16652
|
};
|
|
16556
16653
|
EncourageSubmissions: {
|
|
16654
|
+
/** @description Total de alunos ativos da escola (denominador para % concluído) */
|
|
16557
16655
|
total?: number;
|
|
16558
|
-
|
|
16656
|
+
/** @description Última submissão por (aluno, challenge do bimestre corrente) com teacher_score preenchido */
|
|
16657
|
+
finalized?: number;
|
|
16658
|
+
/** @description Última submissão por (aluno, challenge do bimestre corrente) ainda SEM teacher_score */
|
|
16559
16659
|
awaitingTeacher?: number;
|
|
16560
|
-
|
|
16660
|
+
};
|
|
16661
|
+
StudentsJourneyStatusSummary: {
|
|
16662
|
+
/** @description Alunos sem step concluído nos challenges do recorte */
|
|
16663
|
+
notStarted?: number;
|
|
16664
|
+
/** @description Tem step concluído mas sem submissão */
|
|
16665
|
+
inJourney?: number;
|
|
16666
|
+
/** @description Submissão pendente de avaliação (teacher_score nulo) */
|
|
16667
|
+
inReview?: number;
|
|
16668
|
+
/** @description Submissão já avaliada (teacher_score preenchido) */
|
|
16669
|
+
completed?: number;
|
|
16670
|
+
};
|
|
16671
|
+
StudentsJourneyStatusScope: {
|
|
16672
|
+
/** @description UUID do bimestre alvo; null quando allPeriods */
|
|
16673
|
+
periodId?: string | null;
|
|
16674
|
+
/** @description UUID do challenge alvo; null quando todos do recorte */
|
|
16675
|
+
challengeId?: string | null;
|
|
16676
|
+
/** @description Quantidade de challenges no recorte */
|
|
16677
|
+
challengesCount?: number;
|
|
16678
|
+
/** @description Total de alunos ativos da escola — fecha com a soma dos 4 status */
|
|
16679
|
+
totalStudents?: number;
|
|
16680
|
+
};
|
|
16681
|
+
StudentsJourneyStatusResponse: {
|
|
16682
|
+
summary?: components["schemas"]["StudentsJourneyStatusSummary"];
|
|
16683
|
+
scope?: components["schemas"]["StudentsJourneyStatusScope"];
|
|
16561
16684
|
};
|
|
16562
16685
|
EncourageClassPerformance: {
|
|
16563
16686
|
/** Format: uuid */
|
|
@@ -20273,6 +20396,73 @@ declare function createReportService(apiClient: AcademeApiClient): {
|
|
|
20273
20396
|
} | undefined;
|
|
20274
20397
|
};
|
|
20275
20398
|
}, `${string}/${string}`>>;
|
|
20399
|
+
/**
|
|
20400
|
+
* Status de jornada dos alunos para os summary cards da rota /students.
|
|
20401
|
+
*
|
|
20402
|
+
* @param id UUID da instituição.
|
|
20403
|
+
* @param params.periodId UUID do bimestre, ou `"all"` para todos os bimestres
|
|
20404
|
+
* do ano letivo. Omitido = bimestre corrente.
|
|
20405
|
+
* @param params.challengeId UUID de UM challenge específico para restringir o
|
|
20406
|
+
* cálculo dentro do recorte temporal.
|
|
20407
|
+
*/
|
|
20408
|
+
getStudentsJourneyStatusByInstitution(id: string, params?: {
|
|
20409
|
+
periodId?: string;
|
|
20410
|
+
challengeId?: string;
|
|
20411
|
+
}): Promise<openapi_fetch.FetchResponse<{
|
|
20412
|
+
parameters: {
|
|
20413
|
+
query?: {
|
|
20414
|
+
periodId?: string;
|
|
20415
|
+
challengeId?: string;
|
|
20416
|
+
};
|
|
20417
|
+
header?: never;
|
|
20418
|
+
path: {
|
|
20419
|
+
id: string;
|
|
20420
|
+
};
|
|
20421
|
+
cookie?: never;
|
|
20422
|
+
};
|
|
20423
|
+
requestBody?: never;
|
|
20424
|
+
responses: {
|
|
20425
|
+
200: {
|
|
20426
|
+
headers: {
|
|
20427
|
+
[name: string]: unknown;
|
|
20428
|
+
};
|
|
20429
|
+
content: {
|
|
20430
|
+
"application/json": {
|
|
20431
|
+
status?: string;
|
|
20432
|
+
data?: components["schemas"]["StudentsJourneyStatusResponse"];
|
|
20433
|
+
};
|
|
20434
|
+
};
|
|
20435
|
+
};
|
|
20436
|
+
400: {
|
|
20437
|
+
headers: {
|
|
20438
|
+
[name: string]: unknown;
|
|
20439
|
+
};
|
|
20440
|
+
content?: never;
|
|
20441
|
+
};
|
|
20442
|
+
401: {
|
|
20443
|
+
headers: {
|
|
20444
|
+
[name: string]: unknown;
|
|
20445
|
+
};
|
|
20446
|
+
content?: never;
|
|
20447
|
+
};
|
|
20448
|
+
500: {
|
|
20449
|
+
headers: {
|
|
20450
|
+
[name: string]: unknown;
|
|
20451
|
+
};
|
|
20452
|
+
content?: never;
|
|
20453
|
+
};
|
|
20454
|
+
};
|
|
20455
|
+
}, {
|
|
20456
|
+
params: {
|
|
20457
|
+
path: {
|
|
20458
|
+
id: string;
|
|
20459
|
+
};
|
|
20460
|
+
query: {
|
|
20461
|
+
periodId?: string;
|
|
20462
|
+
challengeId?: string;
|
|
20463
|
+
} | undefined;
|
|
20464
|
+
};
|
|
20465
|
+
}, `${string}/${string}`>>;
|
|
20276
20466
|
};
|
|
20277
20467
|
type ReportService = ReturnType<typeof createReportService>;
|
|
20278
20468
|
|
|
@@ -26197,7 +26387,11 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
26197
26387
|
userId?: string;
|
|
26198
26388
|
groupId?: string;
|
|
26199
26389
|
institutionId?: string;
|
|
26390
|
+
institutionClassroomId?: string;
|
|
26391
|
+
serieId?: string;
|
|
26200
26392
|
status?: "submitted" | "ai_evaluated" | "approved" | "rejected";
|
|
26393
|
+
search?: string;
|
|
26394
|
+
periodId?: string;
|
|
26201
26395
|
page?: components["parameters"]["page"];
|
|
26202
26396
|
limit?: components["parameters"]["limit"];
|
|
26203
26397
|
};
|
|
@@ -26214,7 +26408,13 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
26214
26408
|
content: {
|
|
26215
26409
|
"application/json": {
|
|
26216
26410
|
status?: string;
|
|
26217
|
-
data?: components["schemas"]["Submission"]
|
|
26411
|
+
data?: (components["schemas"]["Submission"] & {
|
|
26412
|
+
period?: {
|
|
26413
|
+
id?: string;
|
|
26414
|
+
index?: number;
|
|
26415
|
+
label?: string;
|
|
26416
|
+
} | null;
|
|
26417
|
+
})[];
|
|
26218
26418
|
meta?: components["schemas"]["PaginationMeta"] & {
|
|
26219
26419
|
statusCounts?: {
|
|
26220
26420
|
submitted?: number;
|
|
@@ -26222,6 +26422,12 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
26222
26422
|
approved?: number;
|
|
26223
26423
|
rejected?: number;
|
|
26224
26424
|
};
|
|
26425
|
+
periods?: {
|
|
26426
|
+
id?: string;
|
|
26427
|
+
index?: number;
|
|
26428
|
+
label?: string;
|
|
26429
|
+
isCurrent?: boolean;
|
|
26430
|
+
}[];
|
|
26225
26431
|
};
|
|
26226
26432
|
};
|
|
26227
26433
|
};
|
|
@@ -26235,7 +26441,11 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
26235
26441
|
userId?: string;
|
|
26236
26442
|
groupId?: string;
|
|
26237
26443
|
institutionId?: string;
|
|
26444
|
+
institutionClassroomId?: string;
|
|
26445
|
+
serieId?: string;
|
|
26238
26446
|
status?: "submitted" | "ai_evaluated" | "approved" | "rejected";
|
|
26447
|
+
search?: string;
|
|
26448
|
+
periodId?: string;
|
|
26239
26449
|
page?: components["parameters"]["page"];
|
|
26240
26450
|
limit?: components["parameters"]["limit"];
|
|
26241
26451
|
} | undefined;
|
|
@@ -26532,6 +26742,242 @@ declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
26532
26742
|
};
|
|
26533
26743
|
type SubmissionService = ReturnType<typeof createSubmissionService>;
|
|
26534
26744
|
|
|
26745
|
+
type JourneyView = components["schemas"]["JourneyView"];
|
|
26746
|
+
/**
|
|
26747
|
+
* Service do agregado `user-challenge-progress` — o caminho oficial para os
|
|
26748
|
+
* clientes (web/mobile) montarem a jornada e o progresso do usuário. Espelha
|
|
26749
|
+
* app-academe-v2/src/services/academe/user-progress.service.ts.
|
|
26750
|
+
*/
|
|
26751
|
+
declare function createUserProgressService(apiClient: AcademeApiClient): {
|
|
26752
|
+
/**
|
|
26753
|
+
* Jornada pré-computada do usuário (status, progress, color, icon,
|
|
26754
|
+
* isUpcoming, série) — base de renderização direta da tela de jornada.
|
|
26755
|
+
*/
|
|
26756
|
+
getJourney(serieId?: string): Promise<JourneyView>;
|
|
26757
|
+
/**
|
|
26758
|
+
* Visão step-by-step do progresso do usuário em um desafio. Cada step traz
|
|
26759
|
+
* `myStartedAt`, `myCompletedAt` e (em desafios em grupo) os agregados do
|
|
26760
|
+
* grupo.
|
|
26761
|
+
*/
|
|
26762
|
+
getChallengeProgress(challengeId: string): Promise<openapi_fetch.FetchResponse<{
|
|
26763
|
+
parameters: {
|
|
26764
|
+
query?: never;
|
|
26765
|
+
header?: never;
|
|
26766
|
+
path: {
|
|
26767
|
+
id: components["parameters"]["id"];
|
|
26768
|
+
};
|
|
26769
|
+
cookie?: never;
|
|
26770
|
+
};
|
|
26771
|
+
requestBody?: never;
|
|
26772
|
+
responses: {
|
|
26773
|
+
200: {
|
|
26774
|
+
headers: {
|
|
26775
|
+
[name: string]: unknown;
|
|
26776
|
+
};
|
|
26777
|
+
content: {
|
|
26778
|
+
"application/json": {
|
|
26779
|
+
status?: string;
|
|
26780
|
+
data?: {
|
|
26781
|
+
challengeStepId?: string;
|
|
26782
|
+
stepName?: string;
|
|
26783
|
+
index?: number;
|
|
26784
|
+
totalMembers?: number;
|
|
26785
|
+
completedMembers?: number;
|
|
26786
|
+
groupCompleted?: boolean;
|
|
26787
|
+
myStartedAt?: string | null;
|
|
26788
|
+
myCompletedAt?: string | null;
|
|
26789
|
+
}[];
|
|
26790
|
+
};
|
|
26791
|
+
};
|
|
26792
|
+
};
|
|
26793
|
+
401: components["responses"]["Unauthorized"];
|
|
26794
|
+
404: components["responses"]["NotFound"];
|
|
26795
|
+
};
|
|
26796
|
+
}, {
|
|
26797
|
+
params: {
|
|
26798
|
+
path: {
|
|
26799
|
+
id: string;
|
|
26800
|
+
};
|
|
26801
|
+
};
|
|
26802
|
+
}, `${string}/${string}`>>;
|
|
26803
|
+
/**
|
|
26804
|
+
* Avança um tick na jornada do usuário no desafio, agnóstico do tipo da
|
|
26805
|
+
* etapa. Cada chamada executa UMA ação:
|
|
26806
|
+
* - Sem progresso na etapa atual → action='started'
|
|
26807
|
+
* - Etapa iniciada (sem completedAt) → action='completed'
|
|
26808
|
+
* - Todas as etapas concluídas → action='finished' (no-op)
|
|
26809
|
+
*
|
|
26810
|
+
* Caminho oficial para clientes (web/mobile). Não usar os endpoints
|
|
26811
|
+
* internos `/steps/{stepId}/start` ou `/steps/{stepId}/complete`.
|
|
26812
|
+
*/
|
|
26813
|
+
advance(challengeId: string): Promise<openapi_fetch.FetchResponse<{
|
|
26814
|
+
parameters: {
|
|
26815
|
+
query?: never;
|
|
26816
|
+
header?: never;
|
|
26817
|
+
path: {
|
|
26818
|
+
id: components["parameters"]["id"];
|
|
26819
|
+
};
|
|
26820
|
+
cookie?: never;
|
|
26821
|
+
};
|
|
26822
|
+
requestBody?: never;
|
|
26823
|
+
responses: {
|
|
26824
|
+
200: {
|
|
26825
|
+
headers: {
|
|
26826
|
+
[name: string]: unknown;
|
|
26827
|
+
};
|
|
26828
|
+
content: {
|
|
26829
|
+
"application/json": {
|
|
26830
|
+
status?: string;
|
|
26831
|
+
data?: {
|
|
26832
|
+
action?: "started" | "completed" | "finished";
|
|
26833
|
+
challengeId?: string;
|
|
26834
|
+
currentStep?: {
|
|
26835
|
+
id?: string;
|
|
26836
|
+
index?: number;
|
|
26837
|
+
name?: string;
|
|
26838
|
+
startedAt?: string | null;
|
|
26839
|
+
completedAt?: string | null;
|
|
26840
|
+
} | null;
|
|
26841
|
+
nextStep?: {
|
|
26842
|
+
id?: string;
|
|
26843
|
+
index?: number;
|
|
26844
|
+
name?: string;
|
|
26845
|
+
startedAt?: string | null;
|
|
26846
|
+
} | null;
|
|
26847
|
+
};
|
|
26848
|
+
};
|
|
26849
|
+
};
|
|
26850
|
+
};
|
|
26851
|
+
401: components["responses"]["Unauthorized"];
|
|
26852
|
+
404: components["responses"]["NotFound"];
|
|
26853
|
+
};
|
|
26854
|
+
}, {
|
|
26855
|
+
params: {
|
|
26856
|
+
path: {
|
|
26857
|
+
id: string;
|
|
26858
|
+
};
|
|
26859
|
+
};
|
|
26860
|
+
}, `${string}/${string}`>>;
|
|
26861
|
+
/**
|
|
26862
|
+
* Status de conclusão do grupo numa etapa. Em desafios em grupo: retorna a
|
|
26863
|
+
* agregação (`canAdvance=true` quando todos concluíram). Em desafios
|
|
26864
|
+
* individuais: retorna o status do próprio usuário.
|
|
26865
|
+
*/
|
|
26866
|
+
getStepGroupStatus(stepId: string): Promise<openapi_fetch.FetchResponse<{
|
|
26867
|
+
parameters: {
|
|
26868
|
+
query?: never;
|
|
26869
|
+
header?: never;
|
|
26870
|
+
path: {
|
|
26871
|
+
stepId: string;
|
|
26872
|
+
};
|
|
26873
|
+
cookie?: never;
|
|
26874
|
+
};
|
|
26875
|
+
requestBody?: never;
|
|
26876
|
+
responses: {
|
|
26877
|
+
200: {
|
|
26878
|
+
headers: {
|
|
26879
|
+
[name: string]: unknown;
|
|
26880
|
+
};
|
|
26881
|
+
content: {
|
|
26882
|
+
"application/json": {
|
|
26883
|
+
status?: string;
|
|
26884
|
+
data?: {
|
|
26885
|
+
isGroupChallenge?: boolean;
|
|
26886
|
+
totalMembers?: number;
|
|
26887
|
+
completedMembers?: number;
|
|
26888
|
+
canAdvance?: boolean;
|
|
26889
|
+
};
|
|
26890
|
+
};
|
|
26891
|
+
};
|
|
26892
|
+
};
|
|
26893
|
+
401: components["responses"]["Unauthorized"];
|
|
26894
|
+
404: components["responses"]["NotFound"];
|
|
26895
|
+
};
|
|
26896
|
+
}, {
|
|
26897
|
+
params: {
|
|
26898
|
+
path: {
|
|
26899
|
+
stepId: string;
|
|
26900
|
+
};
|
|
26901
|
+
};
|
|
26902
|
+
}, `${string}/${string}`>>;
|
|
26903
|
+
/**
|
|
26904
|
+
* Progresso agregado do usuário em um módulo (ou no curso inteiro quando
|
|
26905
|
+
* `moduleId` é omitido). Usado pelos steps do tipo `course` da jornada.
|
|
26906
|
+
*/
|
|
26907
|
+
getCourseProgress(courseId: string, moduleId?: string | null): Promise<openapi_fetch.FetchResponse<{
|
|
26908
|
+
parameters: {
|
|
26909
|
+
query?: never;
|
|
26910
|
+
header?: never;
|
|
26911
|
+
path: {
|
|
26912
|
+
courseId: string;
|
|
26913
|
+
moduleId: string;
|
|
26914
|
+
};
|
|
26915
|
+
cookie?: never;
|
|
26916
|
+
};
|
|
26917
|
+
requestBody?: never;
|
|
26918
|
+
responses: {
|
|
26919
|
+
200: {
|
|
26920
|
+
headers: {
|
|
26921
|
+
[name: string]: unknown;
|
|
26922
|
+
};
|
|
26923
|
+
content: {
|
|
26924
|
+
"application/json": {
|
|
26925
|
+
status?: string;
|
|
26926
|
+
data?: components["schemas"]["UsersCourseLogProgress"];
|
|
26927
|
+
};
|
|
26928
|
+
};
|
|
26929
|
+
};
|
|
26930
|
+
401: components["responses"]["Unauthorized"];
|
|
26931
|
+
404: components["responses"]["NotFound"];
|
|
26932
|
+
};
|
|
26933
|
+
}, {
|
|
26934
|
+
params: {
|
|
26935
|
+
path: {
|
|
26936
|
+
courseId: string;
|
|
26937
|
+
moduleId: string;
|
|
26938
|
+
};
|
|
26939
|
+
};
|
|
26940
|
+
}, `${string}/${string}`>>;
|
|
26941
|
+
/**
|
|
26942
|
+
* [Interno] Força o início de uma etapa específica (idempotente). Clientes
|
|
26943
|
+
* devem preferir `advance`; mantido para casos pontuais (ex.: iniciar a
|
|
26944
|
+
* próxima etapa após concluir um curso aberto a partir da jornada).
|
|
26945
|
+
*/
|
|
26946
|
+
start(stepId: string): Promise<openapi_fetch.FetchResponse<{
|
|
26947
|
+
parameters: {
|
|
26948
|
+
query?: never;
|
|
26949
|
+
header?: never;
|
|
26950
|
+
path: {
|
|
26951
|
+
stepId: string;
|
|
26952
|
+
};
|
|
26953
|
+
cookie?: never;
|
|
26954
|
+
};
|
|
26955
|
+
requestBody?: never;
|
|
26956
|
+
responses: {
|
|
26957
|
+
201: {
|
|
26958
|
+
headers: {
|
|
26959
|
+
[name: string]: unknown;
|
|
26960
|
+
};
|
|
26961
|
+
content: {
|
|
26962
|
+
"application/json": {
|
|
26963
|
+
status?: string;
|
|
26964
|
+
data?: components["schemas"]["UserChallengeProgress"];
|
|
26965
|
+
};
|
|
26966
|
+
};
|
|
26967
|
+
};
|
|
26968
|
+
401: components["responses"]["Unauthorized"];
|
|
26969
|
+
404: components["responses"]["NotFound"];
|
|
26970
|
+
};
|
|
26971
|
+
}, {
|
|
26972
|
+
params: {
|
|
26973
|
+
path: {
|
|
26974
|
+
stepId: string;
|
|
26975
|
+
};
|
|
26976
|
+
};
|
|
26977
|
+
}, `${string}/${string}`>>;
|
|
26978
|
+
};
|
|
26979
|
+
type UserProgressService = ReturnType<typeof createUserProgressService>;
|
|
26980
|
+
|
|
26535
26981
|
type AcademeApiClient = ReturnType<typeof openapi_fetch__default<paths>>;
|
|
26536
26982
|
declare function createAcademeApiClient(baseUrl: string): AcademeApiClient;
|
|
26537
26983
|
interface AcademeServices {
|
|
@@ -26556,6 +27002,7 @@ interface AcademeServices {
|
|
|
26556
27002
|
challenge: ChallengeService;
|
|
26557
27003
|
step: StepService;
|
|
26558
27004
|
submission: SubmissionService;
|
|
27005
|
+
userProgress: UserProgressService;
|
|
26559
27006
|
}
|
|
26560
27007
|
|
|
26561
27008
|
type AcademeKeycloakContextProps = {
|