@contractspec/module.learning-journey 1.44.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +200 -0
  3. package/dist/contracts/index.d.ts +5 -0
  4. package/dist/contracts/index.js +6 -0
  5. package/dist/contracts/models.d.ts +451 -0
  6. package/dist/contracts/models.d.ts.map +1 -0
  7. package/dist/contracts/models.js +388 -0
  8. package/dist/contracts/models.js.map +1 -0
  9. package/dist/contracts/onboarding.d.ts +666 -0
  10. package/dist/contracts/onboarding.d.ts.map +1 -0
  11. package/dist/contracts/onboarding.js +402 -0
  12. package/dist/contracts/onboarding.js.map +1 -0
  13. package/dist/contracts/operations.d.ts +280 -0
  14. package/dist/contracts/operations.d.ts.map +1 -0
  15. package/dist/contracts/operations.js +151 -0
  16. package/dist/contracts/operations.js.map +1 -0
  17. package/dist/contracts/shared.d.ts +5 -0
  18. package/dist/contracts/shared.d.ts.map +1 -0
  19. package/dist/contracts/shared.js +6 -0
  20. package/dist/contracts/shared.js.map +1 -0
  21. package/dist/docs/index.d.ts +1 -0
  22. package/dist/docs/index.js +1 -0
  23. package/dist/docs/learning-journey.docblock.d.ts +1 -0
  24. package/dist/docs/learning-journey.docblock.js +136 -0
  25. package/dist/docs/learning-journey.docblock.js.map +1 -0
  26. package/dist/engines/index.d.ts +4 -0
  27. package/dist/engines/index.js +5 -0
  28. package/dist/engines/srs.d.ts +111 -0
  29. package/dist/engines/srs.d.ts.map +1 -0
  30. package/dist/engines/srs.js +219 -0
  31. package/dist/engines/srs.js.map +1 -0
  32. package/dist/engines/streak.d.ts +100 -0
  33. package/dist/engines/streak.d.ts.map +1 -0
  34. package/dist/engines/streak.js +194 -0
  35. package/dist/engines/streak.js.map +1 -0
  36. package/dist/engines/xp.d.ts +97 -0
  37. package/dist/engines/xp.d.ts.map +1 -0
  38. package/dist/engines/xp.js +213 -0
  39. package/dist/engines/xp.js.map +1 -0
  40. package/dist/entities/ai.d.ts +232 -0
  41. package/dist/entities/ai.d.ts.map +1 -0
  42. package/dist/entities/ai.js +376 -0
  43. package/dist/entities/ai.js.map +1 -0
  44. package/dist/entities/course.d.ts +184 -0
  45. package/dist/entities/course.d.ts.map +1 -0
  46. package/dist/entities/course.js +316 -0
  47. package/dist/entities/course.js.map +1 -0
  48. package/dist/entities/flashcard.d.ts +170 -0
  49. package/dist/entities/flashcard.d.ts.map +1 -0
  50. package/dist/entities/flashcard.js +249 -0
  51. package/dist/entities/flashcard.js.map +1 -0
  52. package/dist/entities/gamification.d.ts +238 -0
  53. package/dist/entities/gamification.d.ts.map +1 -0
  54. package/dist/entities/gamification.js +392 -0
  55. package/dist/entities/gamification.js.map +1 -0
  56. package/dist/entities/index.d.ts +629 -0
  57. package/dist/entities/index.d.ts.map +1 -0
  58. package/dist/entities/index.js +45 -0
  59. package/dist/entities/index.js.map +1 -0
  60. package/dist/entities/learner.d.ts +224 -0
  61. package/dist/entities/learner.d.ts.map +1 -0
  62. package/dist/entities/learner.js +365 -0
  63. package/dist/entities/learner.js.map +1 -0
  64. package/dist/entities/onboarding.d.ts +190 -0
  65. package/dist/entities/onboarding.d.ts.map +1 -0
  66. package/dist/entities/onboarding.js +307 -0
  67. package/dist/entities/onboarding.js.map +1 -0
  68. package/dist/entities/quiz.d.ts +220 -0
  69. package/dist/entities/quiz.d.ts.map +1 -0
  70. package/dist/entities/quiz.js +370 -0
  71. package/dist/entities/quiz.js.map +1 -0
  72. package/dist/events.d.ts +796 -0
  73. package/dist/events.d.ts.map +1 -0
  74. package/dist/events.js +690 -0
  75. package/dist/events.js.map +1 -0
  76. package/dist/index.d.ts +20 -0
  77. package/dist/index.js +22 -0
  78. package/dist/learning-journey.feature.d.ts +12 -0
  79. package/dist/learning-journey.feature.d.ts.map +1 -0
  80. package/dist/learning-journey.feature.js +150 -0
  81. package/dist/learning-journey.feature.js.map +1 -0
  82. package/dist/track-spec.d.ts +129 -0
  83. package/dist/track-spec.d.ts.map +1 -0
  84. package/dist/track-spec.js +0 -0
  85. package/package.json +98 -0
@@ -0,0 +1,388 @@
1
+ import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
2
+
3
+ //#region src/contracts/models.ts
4
+ const CourseModel = defineSchemaModel({
5
+ name: "Course",
6
+ description: "A learning course",
7
+ fields: {
8
+ id: {
9
+ type: ScalarTypeEnum.String_unsecure(),
10
+ isOptional: false
11
+ },
12
+ title: {
13
+ type: ScalarTypeEnum.String_unsecure(),
14
+ isOptional: false
15
+ },
16
+ slug: {
17
+ type: ScalarTypeEnum.String_unsecure(),
18
+ isOptional: false
19
+ },
20
+ description: {
21
+ type: ScalarTypeEnum.String_unsecure(),
22
+ isOptional: true
23
+ },
24
+ difficulty: {
25
+ type: ScalarTypeEnum.String_unsecure(),
26
+ isOptional: false
27
+ },
28
+ status: {
29
+ type: ScalarTypeEnum.String_unsecure(),
30
+ isOptional: false
31
+ },
32
+ estimatedDuration: {
33
+ type: ScalarTypeEnum.Int_unsecure(),
34
+ isOptional: true
35
+ },
36
+ thumbnailUrl: {
37
+ type: ScalarTypeEnum.String_unsecure(),
38
+ isOptional: true
39
+ },
40
+ createdAt: {
41
+ type: ScalarTypeEnum.DateTime(),
42
+ isOptional: false
43
+ }
44
+ }
45
+ });
46
+ const LearnerModel = defineSchemaModel({
47
+ name: "Learner",
48
+ description: "A learner profile",
49
+ fields: {
50
+ id: {
51
+ type: ScalarTypeEnum.String_unsecure(),
52
+ isOptional: false
53
+ },
54
+ userId: {
55
+ type: ScalarTypeEnum.String_unsecure(),
56
+ isOptional: false
57
+ },
58
+ displayName: {
59
+ type: ScalarTypeEnum.String_unsecure(),
60
+ isOptional: true
61
+ },
62
+ level: {
63
+ type: ScalarTypeEnum.Int_unsecure(),
64
+ isOptional: false
65
+ },
66
+ totalXp: {
67
+ type: ScalarTypeEnum.Int_unsecure(),
68
+ isOptional: false
69
+ },
70
+ currentStreak: {
71
+ type: ScalarTypeEnum.Int_unsecure(),
72
+ isOptional: false
73
+ },
74
+ longestStreak: {
75
+ type: ScalarTypeEnum.Int_unsecure(),
76
+ isOptional: false
77
+ },
78
+ createdAt: {
79
+ type: ScalarTypeEnum.DateTime(),
80
+ isOptional: false
81
+ }
82
+ }
83
+ });
84
+ const EnrollmentModel = defineSchemaModel({
85
+ name: "Enrollment",
86
+ description: "A course enrollment",
87
+ fields: {
88
+ id: {
89
+ type: ScalarTypeEnum.String_unsecure(),
90
+ isOptional: false
91
+ },
92
+ learnerId: {
93
+ type: ScalarTypeEnum.String_unsecure(),
94
+ isOptional: false
95
+ },
96
+ courseId: {
97
+ type: ScalarTypeEnum.String_unsecure(),
98
+ isOptional: false
99
+ },
100
+ status: {
101
+ type: ScalarTypeEnum.String_unsecure(),
102
+ isOptional: false
103
+ },
104
+ progress: {
105
+ type: ScalarTypeEnum.Int_unsecure(),
106
+ isOptional: false
107
+ },
108
+ startedAt: {
109
+ type: ScalarTypeEnum.DateTime(),
110
+ isOptional: true
111
+ },
112
+ completedAt: {
113
+ type: ScalarTypeEnum.DateTime(),
114
+ isOptional: true
115
+ }
116
+ }
117
+ });
118
+ const ProgressModel = defineSchemaModel({
119
+ name: "LessonProgress",
120
+ description: "Lesson progress",
121
+ fields: {
122
+ id: {
123
+ type: ScalarTypeEnum.String_unsecure(),
124
+ isOptional: false
125
+ },
126
+ learnerId: {
127
+ type: ScalarTypeEnum.String_unsecure(),
128
+ isOptional: false
129
+ },
130
+ lessonId: {
131
+ type: ScalarTypeEnum.String_unsecure(),
132
+ isOptional: false
133
+ },
134
+ status: {
135
+ type: ScalarTypeEnum.String_unsecure(),
136
+ isOptional: false
137
+ },
138
+ progress: {
139
+ type: ScalarTypeEnum.Int_unsecure(),
140
+ isOptional: false
141
+ },
142
+ score: {
143
+ type: ScalarTypeEnum.Int_unsecure(),
144
+ isOptional: true
145
+ },
146
+ timeSpent: {
147
+ type: ScalarTypeEnum.Int_unsecure(),
148
+ isOptional: false
149
+ },
150
+ completedAt: {
151
+ type: ScalarTypeEnum.DateTime(),
152
+ isOptional: true
153
+ }
154
+ }
155
+ });
156
+ const DeckModel = defineSchemaModel({
157
+ name: "Deck",
158
+ description: "A flashcard deck",
159
+ fields: {
160
+ id: {
161
+ type: ScalarTypeEnum.String_unsecure(),
162
+ isOptional: false
163
+ },
164
+ title: {
165
+ type: ScalarTypeEnum.String_unsecure(),
166
+ isOptional: false
167
+ },
168
+ description: {
169
+ type: ScalarTypeEnum.String_unsecure(),
170
+ isOptional: true
171
+ },
172
+ cardCount: {
173
+ type: ScalarTypeEnum.Int_unsecure(),
174
+ isOptional: false
175
+ },
176
+ isPublic: {
177
+ type: ScalarTypeEnum.Boolean(),
178
+ isOptional: false
179
+ },
180
+ createdAt: {
181
+ type: ScalarTypeEnum.DateTime(),
182
+ isOptional: false
183
+ }
184
+ }
185
+ });
186
+ const CardModel = defineSchemaModel({
187
+ name: "Card",
188
+ description: "A flashcard",
189
+ fields: {
190
+ id: {
191
+ type: ScalarTypeEnum.String_unsecure(),
192
+ isOptional: false
193
+ },
194
+ deckId: {
195
+ type: ScalarTypeEnum.String_unsecure(),
196
+ isOptional: false
197
+ },
198
+ front: {
199
+ type: ScalarTypeEnum.String_unsecure(),
200
+ isOptional: false
201
+ },
202
+ back: {
203
+ type: ScalarTypeEnum.String_unsecure(),
204
+ isOptional: false
205
+ },
206
+ hints: {
207
+ type: ScalarTypeEnum.JSON(),
208
+ isOptional: true
209
+ },
210
+ isDue: {
211
+ type: ScalarTypeEnum.Boolean(),
212
+ isOptional: false
213
+ },
214
+ nextReviewAt: {
215
+ type: ScalarTypeEnum.DateTime(),
216
+ isOptional: true
217
+ }
218
+ }
219
+ });
220
+ const AchievementModel = defineSchemaModel({
221
+ name: "Achievement",
222
+ description: "An achievement",
223
+ fields: {
224
+ id: {
225
+ type: ScalarTypeEnum.String_unsecure(),
226
+ isOptional: false
227
+ },
228
+ key: {
229
+ type: ScalarTypeEnum.String_unsecure(),
230
+ isOptional: false
231
+ },
232
+ name: {
233
+ type: ScalarTypeEnum.String_unsecure(),
234
+ isOptional: false
235
+ },
236
+ description: {
237
+ type: ScalarTypeEnum.String_unsecure(),
238
+ isOptional: false
239
+ },
240
+ icon: {
241
+ type: ScalarTypeEnum.String_unsecure(),
242
+ isOptional: true
243
+ },
244
+ xpReward: {
245
+ type: ScalarTypeEnum.Int_unsecure(),
246
+ isOptional: false
247
+ },
248
+ unlockedAt: {
249
+ type: ScalarTypeEnum.DateTime(),
250
+ isOptional: true
251
+ }
252
+ }
253
+ });
254
+ const EnrollInCourseInput = defineSchemaModel({
255
+ name: "EnrollInCourseInput",
256
+ description: "Input for enrolling in a course",
257
+ fields: { courseId: {
258
+ type: ScalarTypeEnum.String_unsecure(),
259
+ isOptional: false
260
+ } }
261
+ });
262
+ const CompleteLessonInput = defineSchemaModel({
263
+ name: "CompleteLessonInput",
264
+ description: "Input for completing a lesson",
265
+ fields: {
266
+ lessonId: {
267
+ type: ScalarTypeEnum.String_unsecure(),
268
+ isOptional: false
269
+ },
270
+ score: {
271
+ type: ScalarTypeEnum.Int_unsecure(),
272
+ isOptional: true
273
+ },
274
+ timeSpent: {
275
+ type: ScalarTypeEnum.Int_unsecure(),
276
+ isOptional: false
277
+ }
278
+ }
279
+ });
280
+ const SubmitCardReviewInput = defineSchemaModel({
281
+ name: "SubmitCardReviewInput",
282
+ description: "Input for submitting a card review",
283
+ fields: {
284
+ cardId: {
285
+ type: ScalarTypeEnum.String_unsecure(),
286
+ isOptional: false
287
+ },
288
+ rating: {
289
+ type: ScalarTypeEnum.String_unsecure(),
290
+ isOptional: false
291
+ },
292
+ responseTimeMs: {
293
+ type: ScalarTypeEnum.Int_unsecure(),
294
+ isOptional: true
295
+ }
296
+ }
297
+ });
298
+ const GetDueCardsInput = defineSchemaModel({
299
+ name: "GetDueCardsInput",
300
+ description: "Input for getting due cards",
301
+ fields: {
302
+ deckId: {
303
+ type: ScalarTypeEnum.String_unsecure(),
304
+ isOptional: true
305
+ },
306
+ limit: {
307
+ type: ScalarTypeEnum.Int_unsecure(),
308
+ isOptional: true
309
+ }
310
+ }
311
+ });
312
+ const GetDueCardsOutput = defineSchemaModel({
313
+ name: "GetDueCardsOutput",
314
+ description: "Output for getting due cards",
315
+ fields: {
316
+ cards: {
317
+ type: CardModel,
318
+ isArray: true,
319
+ isOptional: false
320
+ },
321
+ total: {
322
+ type: ScalarTypeEnum.Int_unsecure(),
323
+ isOptional: false
324
+ }
325
+ }
326
+ });
327
+ const GetLearnerDashboardInput = defineSchemaModel({
328
+ name: "GetLearnerDashboardInput",
329
+ description: "Input for getting learner dashboard",
330
+ fields: { learnerId: {
331
+ type: ScalarTypeEnum.String_unsecure(),
332
+ isOptional: true
333
+ } }
334
+ });
335
+ const LearnerDashboardModel = defineSchemaModel({
336
+ name: "LearnerDashboard",
337
+ description: "Learner dashboard data",
338
+ fields: {
339
+ learner: {
340
+ type: LearnerModel,
341
+ isOptional: false
342
+ },
343
+ currentStreak: {
344
+ type: ScalarTypeEnum.Int_unsecure(),
345
+ isOptional: false
346
+ },
347
+ dailyXpGoal: {
348
+ type: ScalarTypeEnum.Int_unsecure(),
349
+ isOptional: false
350
+ },
351
+ dailyXpProgress: {
352
+ type: ScalarTypeEnum.Int_unsecure(),
353
+ isOptional: false
354
+ },
355
+ activeEnrollments: {
356
+ type: EnrollmentModel,
357
+ isArray: true,
358
+ isOptional: false
359
+ },
360
+ recentAchievements: {
361
+ type: AchievementModel,
362
+ isArray: true,
363
+ isOptional: false
364
+ },
365
+ dueCardCount: {
366
+ type: ScalarTypeEnum.Int_unsecure(),
367
+ isOptional: false
368
+ }
369
+ }
370
+ });
371
+ const SuccessOutput = defineSchemaModel({
372
+ name: "SuccessOutput",
373
+ description: "Generic success output",
374
+ fields: {
375
+ success: {
376
+ type: ScalarTypeEnum.Boolean(),
377
+ isOptional: false
378
+ },
379
+ xpEarned: {
380
+ type: ScalarTypeEnum.Int_unsecure(),
381
+ isOptional: true
382
+ }
383
+ }
384
+ });
385
+
386
+ //#endregion
387
+ export { AchievementModel, CardModel, CompleteLessonInput, CourseModel, DeckModel, EnrollInCourseInput, EnrollmentModel, GetDueCardsInput, GetDueCardsOutput, GetLearnerDashboardInput, LearnerDashboardModel, LearnerModel, ProgressModel, SubmitCardReviewInput, SuccessOutput };
388
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","names":[],"sources":["../../src/contracts/models.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@contractspec/lib.schema';\n\nexport const CourseModel = defineSchemaModel({\n name: 'Course',\n description: 'A learning course',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n difficulty: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n estimatedDuration: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n thumbnailUrl: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const LearnerModel = defineSchemaModel({\n name: 'Learner',\n description: 'A learner profile',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n userId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n displayName: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n level: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n totalXp: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n currentStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n longestStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const EnrollmentModel = defineSchemaModel({\n name: 'Enrollment',\n description: 'A course enrollment',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n progress: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nexport const ProgressModel = defineSchemaModel({\n name: 'LessonProgress',\n description: 'Lesson progress',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n lessonId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n progress: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n score: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n timeSpent: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nexport const DeckModel = defineSchemaModel({\n name: 'Deck',\n description: 'A flashcard deck',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n cardCount: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n isPublic: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const CardModel = defineSchemaModel({\n name: 'Card',\n description: 'A flashcard',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n deckId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n front: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n back: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n hints: { type: ScalarTypeEnum.JSON(), isOptional: true },\n isDue: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n nextReviewAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nexport const AchievementModel = defineSchemaModel({\n name: 'Achievement',\n description: 'An achievement',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n icon: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n xpReward: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n unlockedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nexport const EnrollInCourseInput = defineSchemaModel({\n name: 'EnrollInCourseInput',\n description: 'Input for enrolling in a course',\n fields: {\n courseId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nexport const CompleteLessonInput = defineSchemaModel({\n name: 'CompleteLessonInput',\n description: 'Input for completing a lesson',\n fields: {\n lessonId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n score: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n timeSpent: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nexport const SubmitCardReviewInput = defineSchemaModel({\n name: 'SubmitCardReviewInput',\n description: 'Input for submitting a card review',\n fields: {\n cardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n rating: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n responseTimeMs: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const GetDueCardsInput = defineSchemaModel({\n name: 'GetDueCardsInput',\n description: 'Input for getting due cards',\n fields: {\n deckId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n limit: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nexport const GetDueCardsOutput = defineSchemaModel({\n name: 'GetDueCardsOutput',\n description: 'Output for getting due cards',\n fields: {\n cards: { type: CardModel, isArray: true, isOptional: false },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nexport const GetLearnerDashboardInput = defineSchemaModel({\n name: 'GetLearnerDashboardInput',\n description: 'Input for getting learner dashboard',\n fields: {\n learnerId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nexport const LearnerDashboardModel = defineSchemaModel({\n name: 'LearnerDashboard',\n description: 'Learner dashboard data',\n fields: {\n learner: { type: LearnerModel, isOptional: false },\n currentStreak: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n dailyXpGoal: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n dailyXpProgress: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n activeEnrollments: {\n type: EnrollmentModel,\n isArray: true,\n isOptional: false,\n },\n recentAchievements: {\n type: AchievementModel,\n isArray: true,\n isOptional: false,\n },\n dueCardCount: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nexport const SuccessOutput = defineSchemaModel({\n name: 'SuccessOutput',\n description: 'Generic success output',\n fields: {\n success: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n xpEarned: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n"],"mappings":"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"}