@supertst/api 0.4.0 → 0.6.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.ts +479 -173
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supertst/api",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "module": "src/index.ts",
5
5
  "type": "module",
6
6
  "files": [
package/src/index.ts CHANGED
@@ -66,6 +66,47 @@ export interface GenerateQuestionsResponseDto {
66
66
  used_chain_of_thought: boolean;
67
67
  }
68
68
 
69
+ export interface ReportIssueDto {
70
+ /**
71
+ * Question id_item identifier
72
+ * @format uuid
73
+ */
74
+ questionId: string;
75
+ /** Question flow where the issue was reported */
76
+ sessionType: "mission" | "practice" | "simulacro" | "diagnostico";
77
+ /**
78
+ * Current mission/practice/simulacro/diagnostico id
79
+ * @format uuid
80
+ */
81
+ sessionId: string;
82
+ /**
83
+ * Student issue description
84
+ * @minLength 1
85
+ * @maxLength 2000
86
+ */
87
+ message: string;
88
+ /**
89
+ * Optional issue category selected in UI
90
+ * @maxLength 120
91
+ */
92
+ issueCategory?: string;
93
+ }
94
+
95
+ export interface QuestionIssueReportResponseDto {
96
+ /** @format uuid */
97
+ id: string;
98
+ /** @format uuid */
99
+ userId: string;
100
+ /** @format uuid */
101
+ questionId: string;
102
+ sessionType: "mission" | "practice" | "simulacro" | "diagnostico";
103
+ /** @format uuid */
104
+ sessionId: string;
105
+ message: string;
106
+ issueCategory: object | null;
107
+ createdAt: string;
108
+ }
109
+
69
110
  export interface RegisterDto {
70
111
  email: string;
71
112
  password: string;
@@ -689,6 +730,12 @@ export interface CreateUserDto {
689
730
  * @example "uuid-institution"
690
731
  */
691
732
  institution_id: string;
733
+ /**
734
+ * ID del salón (opcional)
735
+ * @format uuid
736
+ * @example "uuid-salon"
737
+ */
738
+ salon_id?: string;
692
739
  /**
693
740
  * ID del grado (opcional)
694
741
  * @format uuid
@@ -750,6 +797,29 @@ export interface BulkCreateUsersDto {
750
797
  institution_id: string;
751
798
  }
752
799
 
800
+ export interface ResendInviteDto {
801
+ /**
802
+ * Correo del usuario destinatario
803
+ * @example "estudiante@example.com"
804
+ */
805
+ email?: string;
806
+ /**
807
+ * ID del usuario destinatario
808
+ * @format uuid
809
+ * @example "uuid-user"
810
+ */
811
+ user_id?: string;
812
+ }
813
+
814
+ export interface UpdateUserRoleDto {
815
+ /**
816
+ * ID del nuevo rol
817
+ * @format uuid
818
+ * @example "uuid-role"
819
+ */
820
+ role_id: string;
821
+ }
822
+
753
823
  export interface CreateInstitucionDto {
754
824
  /** @example "Colegio San José" */
755
825
  name: string;
@@ -907,7 +977,7 @@ export interface ReviewItemDto {
907
977
  /** @example "Escriba un texto argumentativo sobre..." */
908
978
  enunciado: string;
909
979
  /** @example 0 */
910
- indice_respuesta: number;
980
+ indice_respuesta?: object | null;
911
981
  /** @example "uuid-clasificacion" */
912
982
  id_clasificacion?: string;
913
983
  /** Question metadata */
@@ -1104,7 +1174,7 @@ export namespace V1 {
1104
1174
  imagen_svg?: string | null,
1105
1175
  imagen_alt?: string | null,
1106
1176
 
1107
- },
1177
+ } | null,
1108
1178
  items?: ({
1109
1179
  /** @format uuid *\/
1110
1180
  id_item?: string,
@@ -1130,7 +1200,7 @@ export namespace V1 {
1130
1200
  imagen_svg?: string | null,
1131
1201
  imagen_alt?: string | null,
1132
1202
 
1133
- },
1203
+ } | null,
1134
1204
  id_clasificacion?: string,
1135
1205
 
1136
1206
  })[],
@@ -1143,6 +1213,8 @@ export namespace V1 {
1143
1213
  export type RequestParams = {};
1144
1214
  export type RequestQuery = {
1145
1215
  id_clasificacion: string;
1216
+ ai_generated?: boolean;
1217
+ validated_by_ai?: boolean;
1146
1218
  };
1147
1219
  export type RequestBody = never;
1148
1220
  export type RequestHeaders = {};
@@ -1158,7 +1230,7 @@ export namespace V1 {
1158
1230
  imagen_url?: string | null;
1159
1231
  imagen_svg?: string | null;
1160
1232
  imagen_alt?: string | null;
1161
- };
1233
+ } | null;
1162
1234
  items?: {
1163
1235
  /** @format uuid */
1164
1236
  id_item?: string;
@@ -1182,7 +1254,7 @@ export namespace V1 {
1182
1254
  imagen_url?: string | null;
1183
1255
  imagen_svg?: string | null;
1184
1256
  imagen_alt?: string | null;
1185
- };
1257
+ } | null;
1186
1258
  id_clasificacion?: string;
1187
1259
  }[];
1188
1260
  }[];
@@ -1221,7 +1293,7 @@ export namespace V1 {
1221
1293
  imagen_svg?: string | null,
1222
1294
  imagen_alt?: string | null,
1223
1295
 
1224
- },
1296
+ } | null,
1225
1297
  imagenes?: ({
1226
1298
  url?: string,
1227
1299
  alt?: string | null,
@@ -1255,7 +1327,7 @@ export namespace V1 {
1255
1327
  imagen_svg?: string | null,
1256
1328
  imagen_alt?: string | null,
1257
1329
 
1258
- },
1330
+ } | null,
1259
1331
  group_info?: {
1260
1332
  total_questions?: number,
1261
1333
  current_question_index?: number,
@@ -1271,7 +1343,7 @@ export namespace V1 {
1271
1343
 
1272
1344
  })[],
1273
1345
 
1274
- },
1346
+ } | null,
1275
1347
 
1276
1348
  },
1277
1349
 
@@ -1313,7 +1385,7 @@ export namespace V1 {
1313
1385
  imagen_url?: string | null;
1314
1386
  imagen_svg?: string | null;
1315
1387
  imagen_alt?: string | null;
1316
- };
1388
+ } | null;
1317
1389
  imagenes?: {
1318
1390
  url?: string;
1319
1391
  alt?: string | null;
@@ -1342,7 +1414,7 @@ export namespace V1 {
1342
1414
  imagen_url?: string | null;
1343
1415
  imagen_svg?: string | null;
1344
1416
  imagen_alt?: string | null;
1345
- };
1417
+ } | null;
1346
1418
  group_info?: {
1347
1419
  total_questions?: number;
1348
1420
  current_question_index?: number;
@@ -1355,7 +1427,7 @@ export namespace V1 {
1355
1427
  order_in_group?: number;
1356
1428
  is_current?: boolean;
1357
1429
  }[];
1358
- };
1430
+ } | null;
1359
1431
  };
1360
1432
  };
1361
1433
  }
@@ -1516,6 +1588,26 @@ export namespace V1 {
1516
1588
  };
1517
1589
  }
1518
1590
 
1591
+ /**
1592
+ * No description
1593
+ * @tags Question Issue Reports
1594
+ * @name CreateReport
1595
+ * @summary Report an issue found while answering a question
1596
+ * @request POST:/v1/student/questions/report-issue
1597
+ * @secure
1598
+ * @response `201` `QuestionIssueReportResponseDto` Question issue report created successfully
1599
+ * @response `400` `void` Invalid payload
1600
+ * @response `401` `void` Unauthorized
1601
+ * @response `404` `void` Question or authenticated user not found
1602
+ */
1603
+ export namespace CreateReport {
1604
+ export type RequestParams = {};
1605
+ export type RequestQuery = {};
1606
+ export type RequestBody = ReportIssueDto;
1607
+ export type RequestHeaders = {};
1608
+ export type ResponseBody = QuestionIssueReportResponseDto;
1609
+ }
1610
+
1519
1611
  /**
1520
1612
  * @description Usa el parámetro `only` para solicitar solo las listas específicas (ej. `competencias,grados`).
1521
1613
  * @tags trainer
@@ -1905,7 +1997,7 @@ export namespace V1 {
1905
1997
  /** @format date-time *\/
1906
1998
  updated_at?: string,
1907
1999
 
1908
- })[],
2000
+ })[] | null,
1909
2001
 
1910
2002
  },
1911
2003
  /** @example "Registration successful. Please check your email to confirm your account." *\/
@@ -1995,16 +2087,18 @@ export namespace V1 {
1995
2087
  }[]
1996
2088
  | null;
1997
2089
  /** MFA factors enrollados */
1998
- factors?: {
1999
- id?: string;
2000
- factor_type?: "totp" | "phone" | "webauthn";
2001
- status?: "verified" | "unverified";
2002
- friendly_name?: string | null;
2003
- /** @format date-time */
2004
- created_at?: string;
2005
- /** @format date-time */
2006
- updated_at?: string;
2007
- }[];
2090
+ factors?:
2091
+ | {
2092
+ id?: string;
2093
+ factor_type?: "totp" | "phone" | "webauthn";
2094
+ status?: "verified" | "unverified";
2095
+ friendly_name?: string | null;
2096
+ /** @format date-time */
2097
+ created_at?: string;
2098
+ /** @format date-time */
2099
+ updated_at?: string;
2100
+ }[]
2101
+ | null;
2008
2102
  };
2009
2103
  /** @example "Registration successful. Please check your email to confirm your account." */
2010
2104
  message?: string;
@@ -2109,7 +2203,7 @@ export namespace V1 {
2109
2203
  /** @format date-time *\/
2110
2204
  updated_at?: string,
2111
2205
 
2112
- })[],
2206
+ })[] | null,
2113
2207
 
2114
2208
  },
2115
2209
 
@@ -2201,16 +2295,18 @@ export namespace V1 {
2201
2295
  }[]
2202
2296
  | null;
2203
2297
  /** MFA factors enrollados */
2204
- factors?: {
2205
- id?: string;
2206
- factor_type?: "totp" | "phone" | "webauthn";
2207
- status?: "verified" | "unverified";
2208
- friendly_name?: string | null;
2209
- /** @format date-time */
2210
- created_at?: string;
2211
- /** @format date-time */
2212
- updated_at?: string;
2213
- }[];
2298
+ factors?:
2299
+ | {
2300
+ id?: string;
2301
+ factor_type?: "totp" | "phone" | "webauthn";
2302
+ status?: "verified" | "unverified";
2303
+ friendly_name?: string | null;
2304
+ /** @format date-time */
2305
+ created_at?: string;
2306
+ /** @format date-time */
2307
+ updated_at?: string;
2308
+ }[]
2309
+ | null;
2214
2310
  };
2215
2311
  };
2216
2312
  }
@@ -2311,7 +2407,7 @@ export namespace V1 {
2311
2407
  /** @format date-time *\/
2312
2408
  updated_at?: string,
2313
2409
 
2314
- })[],
2410
+ })[] | null,
2315
2411
 
2316
2412
  },
2317
2413
 
@@ -2401,16 +2497,18 @@ export namespace V1 {
2401
2497
  }[]
2402
2498
  | null;
2403
2499
  /** MFA factors enrollados */
2404
- factors?: {
2405
- id?: string;
2406
- factor_type?: "totp" | "phone" | "webauthn";
2407
- status?: "verified" | "unverified";
2408
- friendly_name?: string | null;
2409
- /** @format date-time */
2410
- created_at?: string;
2411
- /** @format date-time */
2412
- updated_at?: string;
2413
- }[];
2500
+ factors?:
2501
+ | {
2502
+ id?: string;
2503
+ factor_type?: "totp" | "phone" | "webauthn";
2504
+ status?: "verified" | "unverified";
2505
+ friendly_name?: string | null;
2506
+ /** @format date-time */
2507
+ created_at?: string;
2508
+ /** @format date-time */
2509
+ updated_at?: string;
2510
+ }[]
2511
+ | null;
2414
2512
  };
2415
2513
  };
2416
2514
  }
@@ -2508,7 +2606,7 @@ export namespace V1 {
2508
2606
  /** @format date-time *\/
2509
2607
  updated_at?: string,
2510
2608
 
2511
- })[],
2609
+ })[] | null,
2512
2610
 
2513
2611
  },
2514
2612
 
@@ -2594,16 +2692,18 @@ export namespace V1 {
2594
2692
  }[]
2595
2693
  | null;
2596
2694
  /** MFA factors enrollados */
2597
- factors?: {
2598
- id?: string;
2599
- factor_type?: "totp" | "phone" | "webauthn";
2600
- status?: "verified" | "unverified";
2601
- friendly_name?: string | null;
2602
- /** @format date-time */
2603
- created_at?: string;
2604
- /** @format date-time */
2605
- updated_at?: string;
2606
- }[];
2695
+ factors?:
2696
+ | {
2697
+ id?: string;
2698
+ factor_type?: "totp" | "phone" | "webauthn";
2699
+ status?: "verified" | "unverified";
2700
+ friendly_name?: string | null;
2701
+ /** @format date-time */
2702
+ created_at?: string;
2703
+ /** @format date-time */
2704
+ updated_at?: string;
2705
+ }[]
2706
+ | null;
2607
2707
  };
2608
2708
  };
2609
2709
  }
@@ -2963,14 +3063,14 @@ export namespace V1 {
2963
3063
 
2964
3064
  })[],
2965
3065
 
2966
- },
3066
+ } | null,
2967
3067
  /**
2968
3068
  * Tabla en formato Markdown. null si no aplica.
2969
3069
  * @example null
2970
3070
  *\/
2971
3071
  tabla_markdown?: string | null,
2972
3072
 
2973
- },
3073
+ } | null,
2974
3074
  /** Preguntas del grupo *\/
2975
3075
  items?: ({
2976
3076
  /**
@@ -3012,7 +3112,7 @@ export namespace V1 {
3012
3112
  /** Representación visual del enunciado de la pregunta (misma estructura que representacion_visual_id_estimulo) *\/
3013
3113
  representacion_visual_enunciado?: object | null,
3014
3114
 
3015
- },
3115
+ } | null,
3016
3116
  /** Representación visual del enunciado de la pregunta, ya extraída al nivel superior. *\/
3017
3117
  representacion_visual_enunciado?: {
3018
3118
  tipo?: "tabla" | "grafica" | "imagen" | "caricatura" | "infografia",
@@ -3023,7 +3123,7 @@ export namespace V1 {
3023
3123
  imagen_svg?: string | null,
3024
3124
  imagen_alt?: string | null,
3025
3125
 
3026
- },
3126
+ } | null,
3027
3127
  /** Imágenes directas de la pregunta. Array vacío si no tiene imágenes. *\/
3028
3128
  imagenes?: ({
3029
3129
  /** URL de la imagen *\/
@@ -3176,13 +3276,13 @@ export namespace V1 {
3176
3276
  /** @example "Meta mensual" */
3177
3277
  label?: string;
3178
3278
  }[];
3179
- };
3279
+ } | null;
3180
3280
  /**
3181
3281
  * Tabla en formato Markdown. null si no aplica.
3182
3282
  * @example null
3183
3283
  */
3184
3284
  tabla_markdown?: string | null;
3185
- };
3285
+ } | null;
3186
3286
  /** Preguntas del grupo */
3187
3287
  items?: {
3188
3288
  /**
@@ -3223,7 +3323,7 @@ export namespace V1 {
3223
3323
  representacion_visual_contexto?: object | null;
3224
3324
  /** Representación visual del enunciado de la pregunta (misma estructura que representacion_visual_id_estimulo) */
3225
3325
  representacion_visual_enunciado?: object | null;
3226
- };
3326
+ } | null;
3227
3327
  /** Representación visual del enunciado de la pregunta, ya extraída al nivel superior. */
3228
3328
  representacion_visual_enunciado?: {
3229
3329
  tipo?: "tabla" | "grafica" | "imagen" | "caricatura" | "infografia";
@@ -3233,7 +3333,7 @@ export namespace V1 {
3233
3333
  imagen_url?: string | null;
3234
3334
  imagen_svg?: string | null;
3235
3335
  imagen_alt?: string | null;
3236
- };
3336
+ } | null;
3237
3337
  /** Imágenes directas de la pregunta. Array vacío si no tiene imágenes. */
3238
3338
  imagenes?: {
3239
3339
  /** URL de la imagen */
@@ -3605,6 +3705,64 @@ export namespace V1 {
3605
3705
 
3606
3706
  /**
3607
3707
  * No description
3708
+ * @tags student
3709
+ * @name GetMateriasWithComponentes
3710
+ * @summary Listar materias con sus selectores por tipo de institución
3711
+ * @request GET:/v1/student/materias-componentes
3712
+ * @secure
3713
+ * @response `200` `{
3714
+ ok?: boolean,
3715
+ data?: ({
3716
+ /** @format uuid *\/
3717
+ id_materia?: string,
3718
+ /** @example "Matemáticas" *\/
3719
+ nombre?: string,
3720
+ image_url?: string | null,
3721
+ institution_type?: "SCHOOL" | "UNIVERSITY",
3722
+ componentes?: ({
3723
+ /** @format uuid *\/
3724
+ id_componente?: string,
3725
+ /** @example "Interpretación y representación" *\/
3726
+ nombre?: string,
3727
+ selector_name?: string | null,
3728
+
3729
+ })[],
3730
+
3731
+ })[],
3732
+
3733
+ }` Lista de materias con selectores
3734
+ * @response `401` `void` Invalid API key
3735
+ */
3736
+ export namespace GetMateriasWithComponentes {
3737
+ export type RequestParams = {};
3738
+ export type RequestQuery = {
3739
+ /** Institution type */
3740
+ institution_type: "SCHOOL" | "UNIVERSITY";
3741
+ };
3742
+ export type RequestBody = never;
3743
+ export type RequestHeaders = {};
3744
+ export type ResponseBody = {
3745
+ ok?: boolean;
3746
+ data?: {
3747
+ /** @format uuid */
3748
+ id_materia?: string;
3749
+ /** @example "Matemáticas" */
3750
+ nombre?: string;
3751
+ image_url?: string | null;
3752
+ institution_type?: "SCHOOL" | "UNIVERSITY";
3753
+ componentes?: {
3754
+ /** @format uuid */
3755
+ id_componente?: string;
3756
+ /** @example "Interpretación y representación" */
3757
+ nombre?: string;
3758
+ selector_name?: string | null;
3759
+ }[];
3760
+ }[];
3761
+ };
3762
+ }
3763
+
3764
+ /**
3765
+ * No description
3608
3766
  * @tags trainer
3609
3767
  * @name CreateConfiguracion
3610
3768
  * @summary Crear configuración de simulacro
@@ -3896,7 +4054,7 @@ export namespace V1 {
3896
4054
  /** @example "DÉCIMO GRADO" *\/
3897
4055
  descripcion_larga?: string | null,
3898
4056
 
3899
- },
4057
+ } | null,
3900
4058
  instituciones?: {
3901
4059
  /** @format uuid *\/
3902
4060
  id?: string,
@@ -3957,7 +4115,7 @@ export namespace V1 {
3957
4115
  nombre?: string;
3958
4116
  /** @example "DÉCIMO GRADO" */
3959
4117
  descripcion_larga?: string | null;
3960
- };
4118
+ } | null;
3961
4119
  instituciones?: {
3962
4120
  /** @format uuid */
3963
4121
  id?: string;
@@ -4421,7 +4579,7 @@ export namespace V1 {
4421
4579
  imagen_svg?: string | null,
4422
4580
  imagen_alt?: string | null,
4423
4581
 
4424
- },
4582
+ } | null,
4425
4583
  items?: ({
4426
4584
  /** @format uuid *\/
4427
4585
  id_item?: string,
@@ -4439,7 +4597,7 @@ export namespace V1 {
4439
4597
  imagen_svg?: string | null,
4440
4598
  imagen_alt?: string | null,
4441
4599
 
4442
- },
4600
+ } | null,
4443
4601
  imagenes?: ({
4444
4602
  url?: string,
4445
4603
  alt?: string,
@@ -4504,7 +4662,7 @@ export namespace V1 {
4504
4662
  imagen_url?: string | null;
4505
4663
  imagen_svg?: string | null;
4506
4664
  imagen_alt?: string | null;
4507
- };
4665
+ } | null;
4508
4666
  items?: {
4509
4667
  /** @format uuid */
4510
4668
  id_item?: string;
@@ -4526,7 +4684,7 @@ export namespace V1 {
4526
4684
  imagen_url?: string | null;
4527
4685
  imagen_svg?: string | null;
4528
4686
  imagen_alt?: string | null;
4529
- };
4687
+ } | null;
4530
4688
  imagenes?: {
4531
4689
  url?: string;
4532
4690
  alt?: string;
@@ -5386,7 +5544,7 @@ export namespace V1 {
5386
5544
  imagen_alt?: string | null,
5387
5545
  imagen_svg?: string | null,
5388
5546
 
5389
- },
5547
+ } | null,
5390
5548
  items?: ({
5391
5549
  /** @format uuid *\/
5392
5550
  id_item?: string,
@@ -5402,7 +5560,7 @@ export namespace V1 {
5402
5560
  imagen_alt?: string | null,
5403
5561
  imagen_svg?: string | null,
5404
5562
 
5405
- },
5563
+ } | null,
5406
5564
  imagenes?: ({
5407
5565
  url?: string,
5408
5566
  alt?: string,
@@ -5470,7 +5628,7 @@ export namespace V1 {
5470
5628
  imagen_url?: string | null;
5471
5629
  imagen_alt?: string | null;
5472
5630
  imagen_svg?: string | null;
5473
- };
5631
+ } | null;
5474
5632
  items?: {
5475
5633
  /** @format uuid */
5476
5634
  id_item?: string;
@@ -5485,7 +5643,7 @@ export namespace V1 {
5485
5643
  imagen_url?: string | null;
5486
5644
  imagen_alt?: string | null;
5487
5645
  imagen_svg?: string | null;
5488
- };
5646
+ } | null;
5489
5647
  imagenes?: {
5490
5648
  url?: string;
5491
5649
  alt?: string;
@@ -5568,7 +5726,7 @@ export namespace V1 {
5568
5726
 
5569
5727
  },
5570
5728
 
5571
- }>,
5729
+ }> | null,
5572
5730
  progreso?: {
5573
5731
  /** @example 72.5 *\/
5574
5732
  promedio_actual?: number | null,
@@ -5643,7 +5801,7 @@ export namespace V1 {
5643
5801
  ambiguedad_alta?: boolean;
5644
5802
  };
5645
5803
  }
5646
- >;
5804
+ > | null;
5647
5805
  progreso?: {
5648
5806
  /** @example 72.5 */
5649
5807
  promedio_actual?: number | null;
@@ -6514,16 +6672,37 @@ export namespace V1 {
6514
6672
  export namespace ResendInvite {
6515
6673
  export type RequestParams = {};
6516
6674
  export type RequestQuery = {};
6517
- export type RequestBody = {
6518
- /**
6519
- * @format email
6520
- * @example "estudiante@example.com"
6521
- */
6522
- email: string;
6675
+ export type RequestBody = ResendInviteDto;
6676
+ export type RequestHeaders = {};
6677
+ export type ResponseBody = {
6678
+ ok?: boolean;
6523
6679
  };
6680
+ }
6681
+
6682
+ /**
6683
+ * No description
6684
+ * @tags admin
6685
+ * @name UpdateUserRole
6686
+ * @summary Cambiar el rol de un usuario
6687
+ * @request PATCH:/v1/admin/users/{targetUserId}/role
6688
+ * @secure
6689
+ * @response `200` `{
6690
+ ok?: boolean,
6691
+ data?: object,
6692
+
6693
+ }` Usuario actualizado con relaciones de rol e institución
6694
+ */
6695
+ export namespace UpdateUserRole {
6696
+ export type RequestParams = {
6697
+ /** User ID to update */
6698
+ targetUserId: string;
6699
+ };
6700
+ export type RequestQuery = {};
6701
+ export type RequestBody = UpdateUserRoleDto;
6524
6702
  export type RequestHeaders = {};
6525
6703
  export type ResponseBody = {
6526
6704
  ok?: boolean;
6705
+ data?: object;
6527
6706
  };
6528
6707
  }
6529
6708
 
@@ -6783,7 +6962,7 @@ export namespace V1 {
6783
6962
  imagen_svg?: string | null,
6784
6963
  imagen_alt?: string | null,
6785
6964
 
6786
- },
6965
+ } | null,
6787
6966
  items?: ({
6788
6967
  /** @format uuid *\/
6789
6968
  id_item?: string,
@@ -6802,7 +6981,7 @@ export namespace V1 {
6802
6981
  imagen_svg?: string | null,
6803
6982
  imagen_alt?: string | null,
6804
6983
 
6805
- },
6984
+ } | null,
6806
6985
  imagenes?: (object)[],
6807
6986
  /** Opciones sin es_correcta ni explicacion. Incluye id_item del parent. *\/
6808
6987
  opciones?: ({
@@ -6869,7 +7048,7 @@ export namespace V1 {
6869
7048
  imagen_url?: string | null;
6870
7049
  imagen_svg?: string | null;
6871
7050
  imagen_alt?: string | null;
6872
- };
7051
+ } | null;
6873
7052
  items?: {
6874
7053
  /** @format uuid */
6875
7054
  id_item?: string;
@@ -6887,7 +7066,7 @@ export namespace V1 {
6887
7066
  imagen_url?: string | null;
6888
7067
  imagen_svg?: string | null;
6889
7068
  imagen_alt?: string | null;
6890
- };
7069
+ } | null;
6891
7070
  imagenes?: object[];
6892
7071
  /** Opciones sin es_correcta ni explicacion. Incluye id_item del parent. */
6893
7072
  opciones?: {
@@ -7511,7 +7690,7 @@ export class Api<
7511
7690
  imagen_svg?: string | null,
7512
7691
  imagen_alt?: string | null,
7513
7692
 
7514
- },
7693
+ } | null,
7515
7694
  items?: ({
7516
7695
  /** @format uuid *\/
7517
7696
  id_item?: string,
@@ -7537,7 +7716,7 @@ export class Api<
7537
7716
  imagen_svg?: string | null,
7538
7717
  imagen_alt?: string | null,
7539
7718
 
7540
- },
7719
+ } | null,
7541
7720
  id_clasificacion?: string,
7542
7721
 
7543
7722
  })[],
@@ -7549,6 +7728,8 @@ export class Api<
7549
7728
  getQuestionsByClasificacion: (
7550
7729
  query: {
7551
7730
  id_clasificacion: string;
7731
+ ai_generated?: boolean;
7732
+ validated_by_ai?: boolean;
7552
7733
  },
7553
7734
  params: RequestParams = {},
7554
7735
  ) =>
@@ -7570,7 +7751,7 @@ export class Api<
7570
7751
  imagen_url?: string | null;
7571
7752
  imagen_svg?: string | null;
7572
7753
  imagen_alt?: string | null;
7573
- };
7754
+ } | null;
7574
7755
  items?: {
7575
7756
  /** @format uuid */
7576
7757
  id_item?: string;
@@ -7599,7 +7780,7 @@ export class Api<
7599
7780
  imagen_url?: string | null;
7600
7781
  imagen_svg?: string | null;
7601
7782
  imagen_alt?: string | null;
7602
- };
7783
+ } | null;
7603
7784
  id_clasificacion?: string;
7604
7785
  }[];
7605
7786
  }[];
@@ -7646,7 +7827,7 @@ export class Api<
7646
7827
  imagen_svg?: string | null,
7647
7828
  imagen_alt?: string | null,
7648
7829
 
7649
- },
7830
+ } | null,
7650
7831
  imagenes?: ({
7651
7832
  url?: string,
7652
7833
  alt?: string | null,
@@ -7680,7 +7861,7 @@ export class Api<
7680
7861
  imagen_svg?: string | null,
7681
7862
  imagen_alt?: string | null,
7682
7863
 
7683
- },
7864
+ } | null,
7684
7865
  group_info?: {
7685
7866
  total_questions?: number,
7686
7867
  current_question_index?: number,
@@ -7696,7 +7877,7 @@ export class Api<
7696
7877
 
7697
7878
  })[],
7698
7879
 
7699
- },
7880
+ } | null,
7700
7881
 
7701
7882
  },
7702
7883
 
@@ -7734,7 +7915,7 @@ export class Api<
7734
7915
  imagen_url?: string | null;
7735
7916
  imagen_svg?: string | null;
7736
7917
  imagen_alt?: string | null;
7737
- };
7918
+ } | null;
7738
7919
  imagenes?: {
7739
7920
  url?: string;
7740
7921
  alt?: string | null;
@@ -7768,7 +7949,7 @@ export class Api<
7768
7949
  imagen_url?: string | null;
7769
7950
  imagen_svg?: string | null;
7770
7951
  imagen_alt?: string | null;
7771
- };
7952
+ } | null;
7772
7953
  group_info?: {
7773
7954
  total_questions?: number;
7774
7955
  current_question_index?: number;
@@ -7781,7 +7962,7 @@ export class Api<
7781
7962
  order_in_group?: number;
7782
7963
  is_current?: boolean;
7783
7964
  }[];
7784
- };
7965
+ } | null;
7785
7966
  };
7786
7967
  },
7787
7968
  any
@@ -7984,6 +8165,30 @@ export class Api<
7984
8165
  ...params,
7985
8166
  }),
7986
8167
 
8168
+ /**
8169
+ * No description
8170
+ *
8171
+ * @tags Question Issue Reports
8172
+ * @name CreateReport
8173
+ * @summary Report an issue found while answering a question
8174
+ * @request POST:/v1/student/questions/report-issue
8175
+ * @secure
8176
+ * @response `201` `QuestionIssueReportResponseDto` Question issue report created successfully
8177
+ * @response `400` `void` Invalid payload
8178
+ * @response `401` `void` Unauthorized
8179
+ * @response `404` `void` Question or authenticated user not found
8180
+ */
8181
+ createReport: (data: ReportIssueDto, params: RequestParams = {}) =>
8182
+ this.request<QuestionIssueReportResponseDto, void>({
8183
+ path: `/v1/student/questions/report-issue`,
8184
+ method: "POST",
8185
+ body: data,
8186
+ secure: true,
8187
+ type: ContentType.Json,
8188
+ format: "json",
8189
+ ...params,
8190
+ }),
8191
+
7987
8192
  /**
7988
8193
  * @description Usa el parámetro `only` para solicitar solo las listas específicas (ej. `competencias,grados`).
7989
8194
  *
@@ -8407,7 +8612,7 @@ export class Api<
8407
8612
  /** @format date-time *\/
8408
8613
  updated_at?: string,
8409
8614
 
8410
- })[],
8615
+ })[] | null,
8411
8616
 
8412
8617
  },
8413
8618
  /** @example "Registration successful. Please check your email to confirm your account." *\/
@@ -8494,16 +8699,18 @@ export class Api<
8494
8699
  }[]
8495
8700
  | null;
8496
8701
  /** MFA factors enrollados */
8497
- factors?: {
8498
- id?: string;
8499
- factor_type?: "totp" | "phone" | "webauthn";
8500
- status?: "verified" | "unverified";
8501
- friendly_name?: string | null;
8502
- /** @format date-time */
8503
- created_at?: string;
8504
- /** @format date-time */
8505
- updated_at?: string;
8506
- }[];
8702
+ factors?:
8703
+ | {
8704
+ id?: string;
8705
+ factor_type?: "totp" | "phone" | "webauthn";
8706
+ status?: "verified" | "unverified";
8707
+ friendly_name?: string | null;
8708
+ /** @format date-time */
8709
+ created_at?: string;
8710
+ /** @format date-time */
8711
+ updated_at?: string;
8712
+ }[]
8713
+ | null;
8507
8714
  };
8508
8715
  /** @example "Registration successful. Please check your email to confirm your account." */
8509
8716
  message?: string;
@@ -8617,7 +8824,7 @@ export class Api<
8617
8824
  /** @format date-time *\/
8618
8825
  updated_at?: string,
8619
8826
 
8620
- })[],
8827
+ })[] | null,
8621
8828
 
8622
8829
  },
8623
8830
 
@@ -8706,16 +8913,18 @@ export class Api<
8706
8913
  }[]
8707
8914
  | null;
8708
8915
  /** MFA factors enrollados */
8709
- factors?: {
8710
- id?: string;
8711
- factor_type?: "totp" | "phone" | "webauthn";
8712
- status?: "verified" | "unverified";
8713
- friendly_name?: string | null;
8714
- /** @format date-time */
8715
- created_at?: string;
8716
- /** @format date-time */
8717
- updated_at?: string;
8718
- }[];
8916
+ factors?:
8917
+ | {
8918
+ id?: string;
8919
+ factor_type?: "totp" | "phone" | "webauthn";
8920
+ status?: "verified" | "unverified";
8921
+ friendly_name?: string | null;
8922
+ /** @format date-time */
8923
+ created_at?: string;
8924
+ /** @format date-time */
8925
+ updated_at?: string;
8926
+ }[]
8927
+ | null;
8719
8928
  };
8720
8929
  },
8721
8930
  any
@@ -8825,7 +9034,7 @@ export class Api<
8825
9034
  /** @format date-time *\/
8826
9035
  updated_at?: string,
8827
9036
 
8828
- })[],
9037
+ })[] | null,
8829
9038
 
8830
9039
  },
8831
9040
 
@@ -8912,16 +9121,18 @@ export class Api<
8912
9121
  }[]
8913
9122
  | null;
8914
9123
  /** MFA factors enrollados */
8915
- factors?: {
8916
- id?: string;
8917
- factor_type?: "totp" | "phone" | "webauthn";
8918
- status?: "verified" | "unverified";
8919
- friendly_name?: string | null;
8920
- /** @format date-time */
8921
- created_at?: string;
8922
- /** @format date-time */
8923
- updated_at?: string;
8924
- }[];
9124
+ factors?:
9125
+ | {
9126
+ id?: string;
9127
+ factor_type?: "totp" | "phone" | "webauthn";
9128
+ status?: "verified" | "unverified";
9129
+ friendly_name?: string | null;
9130
+ /** @format date-time */
9131
+ created_at?: string;
9132
+ /** @format date-time */
9133
+ updated_at?: string;
9134
+ }[]
9135
+ | null;
8925
9136
  };
8926
9137
  },
8927
9138
  any
@@ -9028,7 +9239,7 @@ export class Api<
9028
9239
  /** @format date-time *\/
9029
9240
  updated_at?: string,
9030
9241
 
9031
- })[],
9242
+ })[] | null,
9032
9243
 
9033
9244
  },
9034
9245
 
@@ -9111,16 +9322,18 @@ export class Api<
9111
9322
  }[]
9112
9323
  | null;
9113
9324
  /** MFA factors enrollados */
9114
- factors?: {
9115
- id?: string;
9116
- factor_type?: "totp" | "phone" | "webauthn";
9117
- status?: "verified" | "unverified";
9118
- friendly_name?: string | null;
9119
- /** @format date-time */
9120
- created_at?: string;
9121
- /** @format date-time */
9122
- updated_at?: string;
9123
- }[];
9325
+ factors?:
9326
+ | {
9327
+ id?: string;
9328
+ factor_type?: "totp" | "phone" | "webauthn";
9329
+ status?: "verified" | "unverified";
9330
+ friendly_name?: string | null;
9331
+ /** @format date-time */
9332
+ created_at?: string;
9333
+ /** @format date-time */
9334
+ updated_at?: string;
9335
+ }[]
9336
+ | null;
9124
9337
  };
9125
9338
  },
9126
9339
  any
@@ -9535,14 +9748,14 @@ export class Api<
9535
9748
 
9536
9749
  })[],
9537
9750
 
9538
- },
9751
+ } | null,
9539
9752
  /**
9540
9753
  * Tabla en formato Markdown. null si no aplica.
9541
9754
  * @example null
9542
9755
  *\/
9543
9756
  tabla_markdown?: string | null,
9544
9757
 
9545
- },
9758
+ } | null,
9546
9759
  /** Preguntas del grupo *\/
9547
9760
  items?: ({
9548
9761
  /**
@@ -9584,7 +9797,7 @@ export class Api<
9584
9797
  /** Representación visual del enunciado de la pregunta (misma estructura que representacion_visual_id_estimulo) *\/
9585
9798
  representacion_visual_enunciado?: object | null,
9586
9799
 
9587
- },
9800
+ } | null,
9588
9801
  /** Representación visual del enunciado de la pregunta, ya extraída al nivel superior. *\/
9589
9802
  representacion_visual_enunciado?: {
9590
9803
  tipo?: "tabla" | "grafica" | "imagen" | "caricatura" | "infografia",
@@ -9595,7 +9808,7 @@ export class Api<
9595
9808
  imagen_svg?: string | null,
9596
9809
  imagen_alt?: string | null,
9597
9810
 
9598
- },
9811
+ } | null,
9599
9812
  /** Imágenes directas de la pregunta. Array vacío si no tiene imágenes. *\/
9600
9813
  imagenes?: ({
9601
9814
  /** URL de la imagen *\/
@@ -9745,13 +9958,13 @@ export class Api<
9745
9958
  /** @example "Meta mensual" */
9746
9959
  label?: string;
9747
9960
  }[];
9748
- };
9961
+ } | null;
9749
9962
  /**
9750
9963
  * Tabla en formato Markdown. null si no aplica.
9751
9964
  * @example null
9752
9965
  */
9753
9966
  tabla_markdown?: string | null;
9754
- };
9967
+ } | null;
9755
9968
  /** Preguntas del grupo */
9756
9969
  items?: {
9757
9970
  /**
@@ -9792,7 +10005,7 @@ export class Api<
9792
10005
  representacion_visual_contexto?: object | null;
9793
10006
  /** Representación visual del enunciado de la pregunta (misma estructura que representacion_visual_id_estimulo) */
9794
10007
  representacion_visual_enunciado?: object | null;
9795
- };
10008
+ } | null;
9796
10009
  /** Representación visual del enunciado de la pregunta, ya extraída al nivel superior. */
9797
10010
  representacion_visual_enunciado?: {
9798
10011
  tipo?:
@@ -9807,7 +10020,7 @@ export class Api<
9807
10020
  imagen_url?: string | null;
9808
10021
  imagen_svg?: string | null;
9809
10022
  imagen_alt?: string | null;
9810
- };
10023
+ } | null;
9811
10024
  /** Imágenes directas de la pregunta. Array vacío si no tiene imágenes. */
9812
10025
  imagenes?: {
9813
10026
  /** URL de la imagen */
@@ -10236,6 +10449,73 @@ export class Api<
10236
10449
  /**
10237
10450
  * No description
10238
10451
  *
10452
+ * @tags student
10453
+ * @name GetMateriasWithComponentes
10454
+ * @summary Listar materias con sus selectores por tipo de institución
10455
+ * @request GET:/v1/student/materias-componentes
10456
+ * @secure
10457
+ * @response `200` `{
10458
+ ok?: boolean,
10459
+ data?: ({
10460
+ /** @format uuid *\/
10461
+ id_materia?: string,
10462
+ /** @example "Matemáticas" *\/
10463
+ nombre?: string,
10464
+ image_url?: string | null,
10465
+ institution_type?: "SCHOOL" | "UNIVERSITY",
10466
+ componentes?: ({
10467
+ /** @format uuid *\/
10468
+ id_componente?: string,
10469
+ /** @example "Interpretación y representación" *\/
10470
+ nombre?: string,
10471
+ selector_name?: string | null,
10472
+
10473
+ })[],
10474
+
10475
+ })[],
10476
+
10477
+ }` Lista de materias con selectores
10478
+ * @response `401` `void` Invalid API key
10479
+ */
10480
+ getMateriasWithComponentes: (
10481
+ query: {
10482
+ /** Institution type */
10483
+ institution_type: "SCHOOL" | "UNIVERSITY";
10484
+ },
10485
+ params: RequestParams = {},
10486
+ ) =>
10487
+ this.request<
10488
+ {
10489
+ ok?: boolean;
10490
+ data?: {
10491
+ /** @format uuid */
10492
+ id_materia?: string;
10493
+ /** @example "Matemáticas" */
10494
+ nombre?: string;
10495
+ image_url?: string | null;
10496
+ institution_type?: "SCHOOL" | "UNIVERSITY";
10497
+ componentes?: {
10498
+ /** @format uuid */
10499
+ id_componente?: string;
10500
+ /** @example "Interpretación y representación" */
10501
+ nombre?: string;
10502
+ selector_name?: string | null;
10503
+ }[];
10504
+ }[];
10505
+ },
10506
+ void
10507
+ >({
10508
+ path: `/v1/student/materias-componentes`,
10509
+ method: "GET",
10510
+ query: query,
10511
+ secure: true,
10512
+ format: "json",
10513
+ ...params,
10514
+ }),
10515
+
10516
+ /**
10517
+ * No description
10518
+ *
10239
10519
  * @tags trainer
10240
10520
  * @name CreateConfiguracion
10241
10521
  * @summary Crear configuración de simulacro
@@ -10549,7 +10829,7 @@ export class Api<
10549
10829
  /** @example "DÉCIMO GRADO" *\/
10550
10830
  descripcion_larga?: string | null,
10551
10831
 
10552
- },
10832
+ } | null,
10553
10833
  instituciones?: {
10554
10834
  /** @format uuid *\/
10555
10835
  id?: string,
@@ -10607,7 +10887,7 @@ export class Api<
10607
10887
  nombre?: string;
10608
10888
  /** @example "DÉCIMO GRADO" */
10609
10889
  descripcion_larga?: string | null;
10610
- };
10890
+ } | null;
10611
10891
  instituciones?: {
10612
10892
  /** @format uuid */
10613
10893
  id?: string;
@@ -11113,7 +11393,7 @@ export class Api<
11113
11393
  imagen_svg?: string | null,
11114
11394
  imagen_alt?: string | null,
11115
11395
 
11116
- },
11396
+ } | null,
11117
11397
  items?: ({
11118
11398
  /** @format uuid *\/
11119
11399
  id_item?: string,
@@ -11131,7 +11411,7 @@ export class Api<
11131
11411
  imagen_svg?: string | null,
11132
11412
  imagen_alt?: string | null,
11133
11413
 
11134
- },
11414
+ } | null,
11135
11415
  imagenes?: ({
11136
11416
  url?: string,
11137
11417
  alt?: string,
@@ -11192,7 +11472,7 @@ export class Api<
11192
11472
  imagen_url?: string | null;
11193
11473
  imagen_svg?: string | null;
11194
11474
  imagen_alt?: string | null;
11195
- };
11475
+ } | null;
11196
11476
  items?: {
11197
11477
  /** @format uuid */
11198
11478
  id_item?: string;
@@ -11214,7 +11494,7 @@ export class Api<
11214
11494
  imagen_url?: string | null;
11215
11495
  imagen_svg?: string | null;
11216
11496
  imagen_alt?: string | null;
11217
- };
11497
+ } | null;
11218
11498
  imagenes?: {
11219
11499
  url?: string;
11220
11500
  alt?: string;
@@ -12149,7 +12429,7 @@ export class Api<
12149
12429
  imagen_alt?: string | null,
12150
12430
  imagen_svg?: string | null,
12151
12431
 
12152
- },
12432
+ } | null,
12153
12433
  items?: ({
12154
12434
  /** @format uuid *\/
12155
12435
  id_item?: string,
@@ -12165,7 +12445,7 @@ export class Api<
12165
12445
  imagen_alt?: string | null,
12166
12446
  imagen_svg?: string | null,
12167
12447
 
12168
- },
12448
+ } | null,
12169
12449
  imagenes?: ({
12170
12450
  url?: string,
12171
12451
  alt?: string,
@@ -12235,7 +12515,7 @@ export class Api<
12235
12515
  imagen_url?: string | null;
12236
12516
  imagen_alt?: string | null;
12237
12517
  imagen_svg?: string | null;
12238
- };
12518
+ } | null;
12239
12519
  items?: {
12240
12520
  /** @format uuid */
12241
12521
  id_item?: string;
@@ -12255,7 +12535,7 @@ export class Api<
12255
12535
  imagen_url?: string | null;
12256
12536
  imagen_alt?: string | null;
12257
12537
  imagen_svg?: string | null;
12258
- };
12538
+ } | null;
12259
12539
  imagenes?: {
12260
12540
  url?: string;
12261
12541
  alt?: string;
@@ -12346,7 +12626,7 @@ export class Api<
12346
12626
 
12347
12627
  },
12348
12628
 
12349
- }>,
12629
+ }> | null,
12350
12630
  progreso?: {
12351
12631
  /** @example 72.5 *\/
12352
12632
  promedio_actual?: number | null,
@@ -12418,7 +12698,7 @@ export class Api<
12418
12698
  ambiguedad_alta?: boolean;
12419
12699
  };
12420
12700
  }
12421
- >;
12701
+ > | null;
12422
12702
  progreso?: {
12423
12703
  /** @example 72.5 */
12424
12704
  promedio_actual?: number | null;
@@ -13357,16 +13637,7 @@ export class Api<
13357
13637
 
13358
13638
  }` Invitación reenviada
13359
13639
  */
13360
- resendInvite: (
13361
- data: {
13362
- /**
13363
- * @format email
13364
- * @example "estudiante@example.com"
13365
- */
13366
- email: string;
13367
- },
13368
- params: RequestParams = {},
13369
- ) =>
13640
+ resendInvite: (data: ResendInviteDto, params: RequestParams = {}) =>
13370
13641
  this.request<
13371
13642
  {
13372
13643
  ok?: boolean;
@@ -13386,6 +13657,41 @@ export class Api<
13386
13657
  * No description
13387
13658
  *
13388
13659
  * @tags admin
13660
+ * @name UpdateUserRole
13661
+ * @summary Cambiar el rol de un usuario
13662
+ * @request PATCH:/v1/admin/users/{targetUserId}/role
13663
+ * @secure
13664
+ * @response `200` `{
13665
+ ok?: boolean,
13666
+ data?: object,
13667
+
13668
+ }` Usuario actualizado con relaciones de rol e institución
13669
+ */
13670
+ updateUserRole: (
13671
+ targetUserId: string,
13672
+ data: UpdateUserRoleDto,
13673
+ params: RequestParams = {},
13674
+ ) =>
13675
+ this.request<
13676
+ {
13677
+ ok?: boolean;
13678
+ data?: object;
13679
+ },
13680
+ any
13681
+ >({
13682
+ path: `/v1/admin/users/${targetUserId}/role`,
13683
+ method: "PATCH",
13684
+ body: data,
13685
+ secure: true,
13686
+ type: ContentType.Json,
13687
+ format: "json",
13688
+ ...params,
13689
+ }),
13690
+
13691
+ /**
13692
+ * No description
13693
+ *
13694
+ * @tags admin
13389
13695
  * @name GetAllUsers
13390
13696
  * @summary Listar todos los usuarios con detalle completo (super_admin)
13391
13697
  * @request GET:/v1/admin/users/all
@@ -13679,7 +13985,7 @@ export class Api<
13679
13985
  imagen_svg?: string | null,
13680
13986
  imagen_alt?: string | null,
13681
13987
 
13682
- },
13988
+ } | null,
13683
13989
  items?: ({
13684
13990
  /** @format uuid *\/
13685
13991
  id_item?: string,
@@ -13698,7 +14004,7 @@ export class Api<
13698
14004
  imagen_svg?: string | null,
13699
14005
  imagen_alt?: string | null,
13700
14006
 
13701
- },
14007
+ } | null,
13702
14008
  imagenes?: (object)[],
13703
14009
  /** Opciones sin es_correcta ni explicacion. Incluye id_item del parent. *\/
13704
14010
  opciones?: ({
@@ -13767,7 +14073,7 @@ export class Api<
13767
14073
  imagen_url?: string | null;
13768
14074
  imagen_svg?: string | null;
13769
14075
  imagen_alt?: string | null;
13770
- };
14076
+ } | null;
13771
14077
  items?: {
13772
14078
  /** @format uuid */
13773
14079
  id_item?: string;
@@ -13790,7 +14096,7 @@ export class Api<
13790
14096
  imagen_url?: string | null;
13791
14097
  imagen_svg?: string | null;
13792
14098
  imagen_alt?: string | null;
13793
- };
14099
+ } | null;
13794
14100
  imagenes?: object[];
13795
14101
  /** Opciones sin es_correcta ni explicacion. Incluye id_item del parent. */
13796
14102
  opciones?: {