analytica-frontend-lib 1.2.86 → 1.2.88

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 (84) hide show
  1. package/dist/ActivitiesHistory/index.js.map +1 -1
  2. package/dist/ActivitiesHistory/index.mjs.map +1 -1
  3. package/dist/NotificationCard/index.js +1 -1
  4. package/dist/NotificationCard/index.js.map +1 -1
  5. package/dist/NotificationCard/index.mjs +1 -1
  6. package/dist/NotificationCard/index.mjs.map +1 -1
  7. package/dist/QuestionsData/index.d.ts +26 -1
  8. package/dist/QuestionsData/index.d.ts.map +1 -1
  9. package/dist/QuestionsData/index.js.map +1 -1
  10. package/dist/QuestionsData/index.mjs.map +1 -1
  11. package/dist/RecommendedLessonsHistory/index.d.ts +1 -1
  12. package/dist/RecommendedLessonsHistory/index.d.ts.map +1 -1
  13. package/dist/RecommendedLessonsHistory/index.js +148 -142
  14. package/dist/RecommendedLessonsHistory/index.js.map +1 -1
  15. package/dist/RecommendedLessonsHistory/index.mjs +147 -141
  16. package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
  17. package/dist/StudentRanking/index.d.ts +33 -9
  18. package/dist/StudentRanking/index.d.ts.map +1 -1
  19. package/dist/StudentRanking/index.js.map +1 -1
  20. package/dist/StudentRanking/index.mjs.map +1 -1
  21. package/dist/hooks/useActivitiesHistory/index.js.map +1 -1
  22. package/dist/hooks/useActivitiesHistory/index.mjs.map +1 -1
  23. package/dist/hooks/useNotifications.d.ts +2 -2
  24. package/dist/hooks/useNotifications.d.ts.map +1 -1
  25. package/dist/hooks/useQuestionsData.d.ts +218 -0
  26. package/dist/hooks/useQuestionsData.d.ts.map +1 -0
  27. package/dist/hooks/useRecommendedClassDrafts/index.d.ts +57 -0
  28. package/dist/hooks/useRecommendedClassDrafts/index.d.ts.map +1 -0
  29. package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.js +40 -40
  30. package/dist/hooks/useRecommendedClassDrafts/index.js.map +1 -0
  31. package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.mjs +33 -33
  32. package/dist/hooks/useRecommendedClassDrafts/index.mjs.map +1 -0
  33. package/dist/hooks/useRecommendedClassDrafts.d.ts +57 -0
  34. package/dist/hooks/useRecommendedClassDrafts.d.ts.map +1 -0
  35. package/dist/hooks/{useGoalModels.d.ts → useRecommendedClassModels.d.ts} +32 -32
  36. package/dist/hooks/useRecommendedClassModels.d.ts.map +1 -0
  37. package/dist/hooks/useRecommendedLessonDetails.d.ts +44 -44
  38. package/dist/hooks/useRecommendedLessonDetails.d.ts.map +1 -1
  39. package/dist/hooks/useRecommendedLessons/index.d.ts +35 -35
  40. package/dist/hooks/useRecommendedLessons/index.d.ts.map +1 -1
  41. package/dist/hooks/useRecommendedLessons/index.js +41 -41
  42. package/dist/hooks/useRecommendedLessons/index.js.map +1 -1
  43. package/dist/hooks/useRecommendedLessons/index.mjs +37 -37
  44. package/dist/hooks/useRecommendedLessons/index.mjs.map +1 -1
  45. package/dist/hooks/useRecommendedLessons.d.ts +35 -35
  46. package/dist/hooks/useRecommendedLessons.d.ts.map +1 -1
  47. package/dist/hooks/useRecommendedLessonsPage/index.d.ts +21 -21
  48. package/dist/hooks/useRecommendedLessonsPage/index.d.ts.map +1 -1
  49. package/dist/hooks/useRecommendedLessonsPage/index.js +39 -33
  50. package/dist/hooks/useRecommendedLessonsPage/index.js.map +1 -1
  51. package/dist/hooks/useRecommendedLessonsPage/index.mjs +39 -33
  52. package/dist/hooks/useRecommendedLessonsPage/index.mjs.map +1 -1
  53. package/dist/hooks/useRecommendedLessonsPage.d.ts +21 -21
  54. package/dist/hooks/useRecommendedLessonsPage.d.ts.map +1 -1
  55. package/dist/hooks/useStudentsHighlight.d.ts +275 -0
  56. package/dist/hooks/useStudentsHighlight.d.ts.map +1 -0
  57. package/dist/index.d.ts +15 -11
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +570 -351
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.mjs +516 -308
  62. package/dist/index.mjs.map +1 -1
  63. package/dist/store/notificationStore.d.ts.map +1 -1
  64. package/dist/types/activitiesHistory/index.js.map +1 -1
  65. package/dist/types/activitiesHistory/index.mjs.map +1 -1
  66. package/dist/types/common.d.ts +2 -2
  67. package/dist/types/notifications.d.ts +5 -5
  68. package/dist/types/notifications.d.ts.map +1 -1
  69. package/dist/types/recommendedLessons/index.d.ts +112 -112
  70. package/dist/types/recommendedLessons/index.d.ts.map +1 -1
  71. package/dist/types/recommendedLessons/index.js +25 -25
  72. package/dist/types/recommendedLessons/index.js.map +1 -1
  73. package/dist/types/recommendedLessons/index.mjs +17 -17
  74. package/dist/types/recommendedLessons/index.mjs.map +1 -1
  75. package/dist/types/recommendedLessons.d.ts +112 -112
  76. package/dist/types/recommendedLessons.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/hooks/useGoalDrafts/index.d.ts +0 -57
  79. package/dist/hooks/useGoalDrafts/index.d.ts.map +0 -1
  80. package/dist/hooks/useGoalDrafts/index.js.map +0 -1
  81. package/dist/hooks/useGoalDrafts/index.mjs.map +0 -1
  82. package/dist/hooks/useGoalDrafts.d.ts +0 -57
  83. package/dist/hooks/useGoalDrafts.d.ts.map +0 -1
  84. package/dist/hooks/useGoalModels.d.ts.map +0 -1
package/dist/index.mjs CHANGED
@@ -4067,12 +4067,12 @@ function useTableSort(data, options = {}) {
4067
4067
  }
4068
4068
  return { column: null, direction: null };
4069
4069
  };
4070
- const initialState4 = getInitialState();
4070
+ const initialState6 = getInitialState();
4071
4071
  const [sortColumn, setSortColumn] = useState7(
4072
- initialState4.column
4072
+ initialState6.column
4073
4073
  );
4074
4074
  const [sortDirection, setSortDirection] = useState7(
4075
- initialState4.direction
4075
+ initialState6.direction
4076
4076
  );
4077
4077
  useEffect7(() => {
4078
4078
  if (!syncWithUrl || globalThis.window === void 0) return;
@@ -12739,7 +12739,7 @@ import { devtools as devtools3 } from "zustand/middleware";
12739
12739
  var NotificationEntityType = /* @__PURE__ */ ((NotificationEntityType2) => {
12740
12740
  NotificationEntityType2["ACTIVITY"] = "ACTIVITY";
12741
12741
  NotificationEntityType2["TRAIL"] = "TRAIL";
12742
- NotificationEntityType2["GOAL"] = "GOAL";
12742
+ NotificationEntityType2["RECOMMENDEDCLASS"] = "RECOMMENDEDCLASS";
12743
12743
  return NotificationEntityType2;
12744
12744
  })(NotificationEntityType || {});
12745
12745
 
@@ -12748,8 +12748,7 @@ var mapBackendNotification = (backendNotification) => {
12748
12748
  let type = "GENERAL";
12749
12749
  let entityType = null;
12750
12750
  if (backendNotification.entityType) {
12751
- const backendEntityType = backendNotification.entityType.toUpperCase();
12752
- switch (backendEntityType) {
12751
+ switch (backendNotification.entityType.toUpperCase()) {
12753
12752
  case "ACTIVITY" /* ACTIVITY */:
12754
12753
  type = "ACTIVITY";
12755
12754
  entityType = "ACTIVITY" /* ACTIVITY */;
@@ -12758,9 +12757,9 @@ var mapBackendNotification = (backendNotification) => {
12758
12757
  type = "TRAIL";
12759
12758
  entityType = "TRAIL" /* TRAIL */;
12760
12759
  break;
12761
- case "GOAL" /* GOAL */:
12762
- type = "GOAL";
12763
- entityType = "GOAL" /* GOAL */;
12760
+ case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
12761
+ type = "RECOMMENDEDCLASS";
12762
+ entityType = "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */;
12764
12763
  break;
12765
12764
  default:
12766
12765
  break;
@@ -12777,7 +12776,7 @@ var mapBackendNotification = (backendNotification) => {
12777
12776
  entityId: backendNotification.entityId,
12778
12777
  sender: backendNotification.sender,
12779
12778
  activity: backendNotification.activity,
12780
- goal: backendNotification.goal,
12779
+ recommendedClass: backendNotification.recommendedClass,
12781
12780
  actionLink: backendNotification.actionLink ?? null
12782
12781
  };
12783
12782
  };
@@ -13153,7 +13152,7 @@ var NotificationList = ({
13153
13152
  groupedNotifications.map((group, idx) => /* @__PURE__ */ jsxs52("div", { className: "flex flex-col", children: [
13154
13153
  /* @__PURE__ */ jsx65("div", { className: "flex items-end px-4 py-6 pb-4", children: /* @__PURE__ */ jsx65("h4", { className: "text-lg font-bold text-text-500 flex-grow", children: group.label }) }),
13155
13154
  group.notifications.map((notification) => {
13156
- const isGlobalNotification = !notification.entityType && !notification.entityId && !notification.activity && !notification.goal;
13155
+ const isGlobalNotification = !notification.entityType && !notification.entityId && !notification.activity && !notification.recommendedClass;
13157
13156
  let navigationHandler;
13158
13157
  if (isGlobalNotification) {
13159
13158
  navigationHandler = () => handleGlobalNotificationClick(notification);
@@ -13703,7 +13702,8 @@ var createUseNotifications = (apiClient) => {
13703
13702
  case "ACTIVITY" /* ACTIVITY */:
13704
13703
  window.location.href = `/atividades/${entityId}`;
13705
13704
  break;
13706
- case "GOAL" /* GOAL */:
13705
+ case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
13706
+ case "RECOMMENDEDCLASS":
13707
13707
  window.location.href = `/painel/trilhas/${entityId}`;
13708
13708
  break;
13709
13709
  default:
@@ -13720,7 +13720,8 @@ var createUseNotifications = (apiClient) => {
13720
13720
  switch (entityType.toUpperCase()) {
13721
13721
  case "ACTIVITY" /* ACTIVITY */:
13722
13722
  return "Ver atividade";
13723
- case "GOAL" /* GOAL */:
13723
+ case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
13724
+ case "RECOMMENDEDCLASS":
13724
13725
  return "Ver meta";
13725
13726
  default:
13726
13727
  return void 0;
@@ -26112,12 +26113,12 @@ import { useState as useState50, useCallback as useCallback29, useMemo as useMem
26112
26113
  import { Plus as Plus5, CaretRight as CaretRight10, Trash as Trash4, PencilSimple as PencilSimple4 } from "phosphor-react";
26113
26114
 
26114
26115
  // src/types/recommendedLessons.ts
26115
- var getGoalStatusBadgeAction = (status) => getStatusBadgeAction(status);
26116
- var GOAL_FILTER_STATUS_OPTIONS = [
26116
+ var getRecommendedClassStatusBadgeAction = (status) => getStatusBadgeAction(status);
26117
+ var RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS = [
26117
26118
  { id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
26118
26119
  { id: "A_VENCER" /* A_VENCER */, name: "Ativa" }
26119
26120
  ];
26120
- var GOAL_STATUS_OPTIONS = [
26121
+ var RECOMMENDED_CLASS_STATUS_OPTIONS = [
26121
26122
  { id: "A_VENCER" /* A_VENCER */, name: "A Vencer" },
26122
26123
  { id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
26123
26124
  { id: "CONCLUIDA" /* CONCLUIDA */, name: "Conclu\xEDda" }
@@ -26157,35 +26158,35 @@ var formatDaysToComplete = (daysToComplete) => {
26157
26158
  if (daysToComplete === 1) return "1 dia";
26158
26159
  return `${daysToComplete} dias`;
26159
26160
  };
26160
- var GOAL_ACTIVITY_STATUS = {
26161
+ var RECOMMENDED_CLASS_ACTIVITY_STATUS = {
26161
26162
  PENDENTE: "PENDENTE",
26162
26163
  CONCLUIDA: "CONCLUIDA",
26163
26164
  EXPIRADA: "EXPIRADA"
26164
26165
  };
26165
- var GoalDraftType = /* @__PURE__ */ ((GoalDraftType2) => {
26166
- GoalDraftType2["MODELO"] = "MODELO";
26167
- GoalDraftType2["RASCUNHO"] = "RASCUNHO";
26168
- return GoalDraftType2;
26169
- })(GoalDraftType || {});
26166
+ var RecommendedClassDraftType = /* @__PURE__ */ ((RecommendedClassDraftType2) => {
26167
+ RecommendedClassDraftType2["MODELO"] = "MODELO";
26168
+ RecommendedClassDraftType2["RASCUNHO"] = "RASCUNHO";
26169
+ return RecommendedClassDraftType2;
26170
+ })(RecommendedClassDraftType || {});
26170
26171
 
26171
26172
  // src/hooks/useRecommendedLessons.ts
26172
26173
  import { useState as useState46, useCallback as useCallback25 } from "react";
26173
26174
  import { z as z4 } from "zod";
26174
26175
  import dayjs4 from "dayjs";
26175
- var goalSubjectSchema = z4.object({
26176
+ var recommendedClassSubjectSchema = z4.object({
26176
26177
  id: z4.string().uuid(),
26177
26178
  name: z4.string()
26178
26179
  }).nullable();
26179
- var goalCreatorSchema = z4.object({
26180
+ var recommendedClassCreatorSchema = z4.object({
26180
26181
  id: z4.string().uuid(),
26181
26182
  name: z4.string()
26182
26183
  }).nullable();
26183
- var goalStatsSchema = z4.object({
26184
+ var recommendedClassStatsSchema = z4.object({
26184
26185
  totalStudents: z4.number(),
26185
26186
  completedCount: z4.number(),
26186
26187
  completionPercentage: z4.number()
26187
26188
  });
26188
- var goalBreakdownSchema = z4.object({
26189
+ var recommendedClassBreakdownSchema = z4.object({
26189
26190
  classId: z4.string().uuid(),
26190
26191
  className: z4.string(),
26191
26192
  schoolId: z4.string(),
@@ -26193,7 +26194,7 @@ var goalBreakdownSchema = z4.object({
26193
26194
  studentCount: z4.number(),
26194
26195
  completedCount: z4.number()
26195
26196
  });
26196
- var goalDataSchema = z4.object({
26197
+ var recommendedClassDataSchema = z4.object({
26197
26198
  id: z4.string().uuid(),
26198
26199
  title: z4.string(),
26199
26200
  startDate: z4.string().nullable(),
@@ -26202,21 +26203,21 @@ var goalDataSchema = z4.object({
26202
26203
  progress: z4.number(),
26203
26204
  totalLessons: z4.number()
26204
26205
  });
26205
- var goalHistoryItemSchema = z4.object({
26206
- goal: goalDataSchema,
26207
- subject: goalSubjectSchema,
26208
- creator: goalCreatorSchema,
26209
- stats: goalStatsSchema,
26210
- breakdown: z4.array(goalBreakdownSchema)
26206
+ var recommendedClassHistoryItemSchema = z4.object({
26207
+ recommendedClass: recommendedClassDataSchema,
26208
+ subject: recommendedClassSubjectSchema,
26209
+ creator: recommendedClassCreatorSchema,
26210
+ stats: recommendedClassStatsSchema,
26211
+ breakdown: z4.array(recommendedClassBreakdownSchema)
26211
26212
  });
26212
- var goalsHistoryApiResponseSchema = z4.object({
26213
+ var recommendedClassHistoryApiResponseSchema = z4.object({
26213
26214
  message: z4.string(),
26214
26215
  data: z4.object({
26215
- goals: z4.array(goalHistoryItemSchema),
26216
+ recommendedClass: z4.array(recommendedClassHistoryItemSchema),
26216
26217
  total: z4.number()
26217
26218
  })
26218
26219
  });
26219
- var determineGoalStatus = (finalDate, completionPercentage) => {
26220
+ var determineRecommendedClassStatus = (finalDate, completionPercentage) => {
26220
26221
  if (completionPercentage === 100) {
26221
26222
  return "CONCLU\xCDDA" /* CONCLUIDA */;
26222
26223
  }
@@ -26229,29 +26230,29 @@ var determineGoalStatus = (finalDate, completionPercentage) => {
26229
26230
  }
26230
26231
  return "ATIVA" /* ATIVA */;
26231
26232
  };
26232
- var transformGoalToTableItem = (item) => {
26233
+ var transformRecommendedClassToTableItem = (item) => {
26233
26234
  const firstBreakdown = item.breakdown[0];
26234
26235
  const schoolName = firstBreakdown?.schoolName || "-";
26235
26236
  const className = firstBreakdown?.className || "-";
26236
26237
  const classDisplay = item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;
26237
26238
  return {
26238
- id: item.goal.id,
26239
- startDate: item.goal.startDate ? dayjs4(item.goal.startDate).format("DD/MM") : "-",
26240
- deadline: item.goal.finalDate ? dayjs4(item.goal.finalDate).format("DD/MM") : "-",
26241
- title: item.goal.title,
26239
+ id: item.recommendedClass.id,
26240
+ startDate: item.recommendedClass.startDate ? dayjs4(item.recommendedClass.startDate).format("DD/MM") : "-",
26241
+ deadline: item.recommendedClass.finalDate ? dayjs4(item.recommendedClass.finalDate).format("DD/MM") : "-",
26242
+ title: item.recommendedClass.title,
26242
26243
  school: schoolName,
26243
26244
  year: "-",
26244
26245
  // API doesn't provide year directly
26245
26246
  subject: item.subject?.name || "-",
26246
26247
  class: classDisplay,
26247
- status: determineGoalStatus(
26248
- item.goal.finalDate,
26248
+ status: determineRecommendedClassStatus(
26249
+ item.recommendedClass.finalDate,
26249
26250
  item.stats.completionPercentage
26250
26251
  ),
26251
26252
  completionPercentage: item.stats.completionPercentage
26252
26253
  };
26253
26254
  };
26254
- var handleGoalFetchError = (error) => {
26255
+ var handleRecommendedClassFetchError = (error) => {
26255
26256
  if (error instanceof z4.ZodError) {
26256
26257
  console.error("Erro ao validar dados de hist\xF3rico de aulas:", error);
26257
26258
  return "Erro ao validar dados de hist\xF3rico de aulas";
@@ -26259,10 +26260,10 @@ var handleGoalFetchError = (error) => {
26259
26260
  console.error("Erro ao carregar hist\xF3rico de aulas:", error);
26260
26261
  return "Erro ao carregar hist\xF3rico de aulas";
26261
26262
  };
26262
- var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
26263
+ var createUseRecommendedLessonsHistory = (fetchRecommendedClassHistory) => {
26263
26264
  return () => {
26264
26265
  const [state, setState] = useState46({
26265
- goals: [],
26266
+ recommendedClass: [],
26266
26267
  loading: false,
26267
26268
  error: null,
26268
26269
  pagination: {
@@ -26272,21 +26273,21 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
26272
26273
  totalPages: 0
26273
26274
  }
26274
26275
  });
26275
- const fetchGoals = useCallback25(
26276
+ const fetchRecommendedClass = useCallback25(
26276
26277
  async (filters) => {
26277
26278
  setState((prev) => ({ ...prev, loading: true, error: null }));
26278
26279
  try {
26279
- const responseData = await fetchGoalsHistory(filters);
26280
- const validatedData = goalsHistoryApiResponseSchema.parse(responseData);
26281
- const tableItems = validatedData.data.goals.map(
26282
- transformGoalToTableItem
26280
+ const responseData = await fetchRecommendedClassHistory(filters);
26281
+ const validatedData = recommendedClassHistoryApiResponseSchema.parse(responseData);
26282
+ const tableItems = validatedData.data.recommendedClass.map(
26283
+ transformRecommendedClassToTableItem
26283
26284
  );
26284
26285
  const page = filters?.page || 1;
26285
26286
  const limit = filters?.limit || 10;
26286
26287
  const total = validatedData.data.total;
26287
26288
  const totalPages = Math.ceil(total / limit);
26288
26289
  setState({
26289
- goals: tableItems,
26290
+ recommendedClass: tableItems,
26290
26291
  loading: false,
26291
26292
  error: null,
26292
26293
  pagination: {
@@ -26297,7 +26298,7 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
26297
26298
  }
26298
26299
  });
26299
26300
  } catch (error) {
26300
- const errorMessage = handleGoalFetchError(error);
26301
+ const errorMessage = handleRecommendedClassFetchError(error);
26301
26302
  setState((prev) => ({
26302
26303
  ...prev,
26303
26304
  loading: false,
@@ -26305,11 +26306,11 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
26305
26306
  }));
26306
26307
  }
26307
26308
  },
26308
- [fetchGoalsHistory]
26309
+ [fetchRecommendedClassHistory]
26309
26310
  );
26310
26311
  return {
26311
26312
  ...state,
26312
- fetchGoals
26313
+ fetchRecommendedClass
26313
26314
  };
26314
26315
  };
26315
26316
  };
@@ -26510,7 +26511,7 @@ var getSubjectOptions = (data) => {
26510
26511
  name: subject.name
26511
26512
  }));
26512
26513
  };
26513
- var createGoalModelsFiltersConfig = (userData) => [
26514
+ var createRecommendedClassModelsFiltersConfig = (userData) => [
26514
26515
  {
26515
26516
  key: "content",
26516
26517
  label: "CONTE\xDADO",
@@ -26526,7 +26527,7 @@ var createGoalModelsFiltersConfig = (userData) => [
26526
26527
  ];
26527
26528
 
26528
26529
  // src/components/RecommendedLessonsHistory/utils/filterBuilders.ts
26529
- var buildGoalModelsFiltersFromParams = (params) => {
26530
+ var buildRecommendedClassModelsFiltersFromParams = (params) => {
26530
26531
  const filters = {
26531
26532
  page: params.page,
26532
26533
  limit: params.limit
@@ -26540,7 +26541,7 @@ var buildGoalModelsFiltersFromParams = (params) => {
26540
26541
  return filters;
26541
26542
  };
26542
26543
 
26543
- // src/hooks/useGoalModels.ts
26544
+ // src/hooks/useRecommendedClassModels.ts
26544
26545
  import { useState as useState48, useCallback as useCallback27 } from "react";
26545
26546
  import { z as z6 } from "zod";
26546
26547
  import dayjs5 from "dayjs";
@@ -26556,10 +26557,10 @@ var createFetchErrorHandler = (validationErrorMessage, genericErrorMessage) => (
26556
26557
  return genericErrorMessage;
26557
26558
  };
26558
26559
 
26559
- // src/hooks/useGoalModels.ts
26560
- var goalModelResponseSchema = z6.object({
26560
+ // src/hooks/useRecommendedClassModels.ts
26561
+ var recommendedClassModelResponseSchema = z6.object({
26561
26562
  id: z6.string().uuid(),
26562
- type: z6.nativeEnum(GoalDraftType),
26563
+ type: z6.nativeEnum(RecommendedClassDraftType),
26563
26564
  title: z6.string(),
26564
26565
  description: z6.string().nullable(),
26565
26566
  creatorUserInstitutionId: z6.string().uuid(),
@@ -26569,20 +26570,20 @@ var goalModelResponseSchema = z6.object({
26569
26570
  createdAt: z6.string(),
26570
26571
  updatedAt: z6.string()
26571
26572
  });
26572
- var goalModelsApiResponseSchema = z6.object({
26573
+ var recommendedClassModelsApiResponseSchema = z6.object({
26573
26574
  message: z6.string(),
26574
26575
  data: z6.object({
26575
- drafts: z6.array(goalModelResponseSchema),
26576
+ drafts: z6.array(recommendedClassModelResponseSchema),
26576
26577
  total: z6.number()
26577
26578
  })
26578
26579
  });
26579
- var DEFAULT_GOAL_MODELS_PAGINATION = {
26580
+ var DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION = {
26580
26581
  total: 0,
26581
26582
  page: 1,
26582
26583
  limit: 10,
26583
26584
  totalPages: 0
26584
26585
  };
26585
- var transformGoalModelToTableItem = (model, subjectsMap) => {
26586
+ var transformRecommendedClassModelToTableItem = (model, subjectsMap) => {
26586
26587
  const subjectName = model.subjectId ? subjectsMap?.get(model.subjectId) || "" : "";
26587
26588
  return {
26588
26589
  id: model.id,
@@ -26592,26 +26593,26 @@ var transformGoalModelToTableItem = (model, subjectsMap) => {
26592
26593
  subjectId: model.subjectId
26593
26594
  };
26594
26595
  };
26595
- var handleGoalModelFetchError = createFetchErrorHandler(
26596
+ var handleRecommendedClassModelFetchError = createFetchErrorHandler(
26596
26597
  "Erro ao validar dados de modelos de aulas",
26597
26598
  "Erro ao carregar modelos de aulas"
26598
26599
  );
26599
- var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
26600
+ var createUseRecommendedClassModels = (fetchRecommendedClassModels, deleteRecommendedClassModel) => {
26600
26601
  return () => {
26601
26602
  const [state, setState] = useState48({
26602
26603
  models: [],
26603
26604
  loading: false,
26604
26605
  error: null,
26605
- pagination: DEFAULT_GOAL_MODELS_PAGINATION
26606
+ pagination: DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION
26606
26607
  });
26607
26608
  const fetchModels = useCallback27(
26608
26609
  async (filters, subjectsMap) => {
26609
26610
  setState((prev) => ({ ...prev, loading: true, error: null }));
26610
26611
  try {
26611
- const responseData = await fetchGoalModels(filters);
26612
- const validatedData = goalModelsApiResponseSchema.parse(responseData);
26612
+ const responseData = await fetchRecommendedClassModels(filters);
26613
+ const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
26613
26614
  const tableItems = validatedData.data.drafts.map(
26614
- (model) => transformGoalModelToTableItem(model, subjectsMap)
26615
+ (model) => transformRecommendedClassModelToTableItem(model, subjectsMap)
26615
26616
  );
26616
26617
  const limit = filters?.limit || 10;
26617
26618
  const page = filters?.page || 1;
@@ -26629,7 +26630,7 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
26629
26630
  }
26630
26631
  });
26631
26632
  } catch (error) {
26632
- const errorMessage = handleGoalModelFetchError(error);
26633
+ const errorMessage = handleRecommendedClassModelFetchError(error);
26633
26634
  setState((prev) => ({
26634
26635
  ...prev,
26635
26636
  loading: false,
@@ -26637,19 +26638,19 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
26637
26638
  }));
26638
26639
  }
26639
26640
  },
26640
- [fetchGoalModels]
26641
+ [fetchRecommendedClassModels]
26641
26642
  );
26642
26643
  const deleteModel = useCallback27(
26643
26644
  async (id) => {
26644
26645
  try {
26645
- await deleteGoalModel(id);
26646
+ await deleteRecommendedClassModel(id);
26646
26647
  return true;
26647
26648
  } catch (error) {
26648
26649
  console.error("Erro ao deletar modelo:", error);
26649
26650
  return false;
26650
26651
  }
26651
26652
  },
26652
- [deleteGoalModel]
26653
+ [deleteRecommendedClassModel]
26653
26654
  );
26654
26655
  return {
26655
26656
  ...state,
@@ -26658,27 +26659,27 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
26658
26659
  };
26659
26660
  };
26660
26661
  };
26661
- var createGoalModelsHook = createUseGoalModels;
26662
+ var createRecommendedClassModelsHook = createUseRecommendedClassModels;
26662
26663
 
26663
26664
  // src/components/RecommendedLessonsHistory/tabs/ModelsTab.tsx
26664
26665
  import { jsx as jsx118 } from "react/jsx-runtime";
26665
- var GOAL_MODELS_CONFIG = {
26666
+ var RECOMMENDED_CLASS_MODELS_CONFIG = {
26666
26667
  entityName: "aula",
26667
26668
  entityNamePlural: "aulas",
26668
- testId: "goal-models-tab",
26669
+ testId: "recommendedClass-models-tab",
26669
26670
  emptyStateTitle: "Crie modelos para agilizar suas aulas",
26670
26671
  emptyStateDescription: "Salve modelos de aulas recomendadas para reutilizar e enviar rapidamente para suas turmas!",
26671
26672
  searchPlaceholder: "Buscar modelo"
26672
26673
  };
26673
- var GOAL_COLUMNS_CONFIG = {
26674
+ var RECOMMENDED_CLASS_COLUMNS_CONFIG = {
26674
26675
  sendButtonLabel: "Enviar aula",
26675
26676
  sendButtonAriaLabel: "Enviar aula",
26676
26677
  deleteButtonAriaLabel: "Deletar modelo",
26677
26678
  editButtonAriaLabel: "Editar modelo"
26678
26679
  };
26679
- var GoalModelsTab = ({
26680
- fetchGoalModels,
26681
- deleteGoalModel,
26680
+ var RecommendedClassModelsTab = ({
26681
+ fetchRecommendedClassModels,
26682
+ deleteRecommendedClassModel,
26682
26683
  onCreateModel,
26683
26684
  onSendLesson,
26684
26685
  onEditModel,
@@ -26690,8 +26691,8 @@ var GoalModelsTab = ({
26690
26691
  }) => /* @__PURE__ */ jsx118(
26691
26692
  ModelsTabBase,
26692
26693
  {
26693
- fetchModels: fetchGoalModels,
26694
- deleteModel: deleteGoalModel,
26694
+ fetchModels: fetchRecommendedClassModels,
26695
+ deleteModel: deleteRecommendedClassModel,
26695
26696
  onCreateModel,
26696
26697
  onSend: onSendLesson,
26697
26698
  onEditModel,
@@ -26700,17 +26701,17 @@ var GoalModelsTab = ({
26700
26701
  mapSubjectNameToEnum: mapSubjectNameToEnum2,
26701
26702
  userFilterData,
26702
26703
  subjectsMap,
26703
- config: GOAL_MODELS_CONFIG,
26704
+ config: RECOMMENDED_CLASS_MODELS_CONFIG,
26704
26705
  createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
26705
26706
  mapSubject,
26706
26707
  send,
26707
26708
  edit,
26708
26709
  del,
26709
- GOAL_COLUMNS_CONFIG
26710
+ RECOMMENDED_CLASS_COLUMNS_CONFIG
26710
26711
  ),
26711
- createFiltersConfig: createGoalModelsFiltersConfig,
26712
- buildFiltersFromParams: buildGoalModelsFiltersFromParams,
26713
- createUseModels: createUseGoalModels
26712
+ createFiltersConfig: createRecommendedClassModelsFiltersConfig,
26713
+ buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
26714
+ createUseModels: createUseRecommendedClassModels
26714
26715
  }
26715
26716
  );
26716
26717
 
@@ -26722,7 +26723,7 @@ var getSubjectOptions2 = (data) => {
26722
26723
  name: subject.name
26723
26724
  }));
26724
26725
  };
26725
- var createGoalDraftsFiltersConfig = (userData) => [
26726
+ var createRecommendedClassDraftsFiltersConfig = (userData) => [
26726
26727
  {
26727
26728
  key: "content",
26728
26729
  label: "CONTE\xDADO",
@@ -26737,34 +26738,34 @@ var createGoalDraftsFiltersConfig = (userData) => [
26737
26738
  }
26738
26739
  ];
26739
26740
 
26740
- // src/hooks/useGoalDrafts.ts
26741
+ // src/hooks/useRecommendedClassDrafts.ts
26741
26742
  import { useState as useState49, useCallback as useCallback28 } from "react";
26742
- var DEFAULT_GOAL_DRAFTS_PAGINATION = {
26743
+ var DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION = {
26743
26744
  total: 0,
26744
26745
  page: 1,
26745
26746
  limit: 10,
26746
26747
  totalPages: 0
26747
26748
  };
26748
- var handleGoalDraftFetchError = createFetchErrorHandler(
26749
+ var handleRecommendedClassDraftFetchError = createFetchErrorHandler(
26749
26750
  "Erro ao validar dados de rascunhos de aulas",
26750
26751
  "Erro ao carregar rascunhos de aulas"
26751
26752
  );
26752
- var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
26753
+ var createUseRecommendedClassDrafts = (fetchRecommendedClassDrafts, deleteRecommendedClassDraft) => {
26753
26754
  return () => {
26754
26755
  const [state, setState] = useState49({
26755
26756
  models: [],
26756
26757
  loading: false,
26757
26758
  error: null,
26758
- pagination: DEFAULT_GOAL_DRAFTS_PAGINATION
26759
+ pagination: DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION
26759
26760
  });
26760
26761
  const fetchModels = useCallback28(
26761
26762
  async (filters, subjectsMap) => {
26762
26763
  setState((prev) => ({ ...prev, loading: true, error: null }));
26763
26764
  try {
26764
- const responseData = await fetchGoalDrafts(filters);
26765
- const validatedData = goalModelsApiResponseSchema.parse(responseData);
26765
+ const responseData = await fetchRecommendedClassDrafts(filters);
26766
+ const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
26766
26767
  const tableItems = validatedData.data.drafts.map(
26767
- (draft) => transformGoalModelToTableItem(draft, subjectsMap)
26768
+ (draft) => transformRecommendedClassModelToTableItem(draft, subjectsMap)
26768
26769
  );
26769
26770
  const limit = filters?.limit || 10;
26770
26771
  const page = filters?.page || 1;
@@ -26782,7 +26783,7 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
26782
26783
  }
26783
26784
  });
26784
26785
  } catch (error) {
26785
- const errorMessage = handleGoalDraftFetchError(error);
26786
+ const errorMessage = handleRecommendedClassDraftFetchError(error);
26786
26787
  setState((prev) => ({
26787
26788
  ...prev,
26788
26789
  loading: false,
@@ -26790,19 +26791,19 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
26790
26791
  }));
26791
26792
  }
26792
26793
  },
26793
- [fetchGoalDrafts]
26794
+ [fetchRecommendedClassDrafts]
26794
26795
  );
26795
26796
  const deleteModel = useCallback28(
26796
26797
  async (id) => {
26797
26798
  try {
26798
- await deleteGoalDraft(id);
26799
+ await deleteRecommendedClassDraft(id);
26799
26800
  return true;
26800
26801
  } catch (error) {
26801
26802
  console.error("Erro ao deletar rascunho:", error);
26802
26803
  return false;
26803
26804
  }
26804
26805
  },
26805
- [deleteGoalDraft]
26806
+ [deleteRecommendedClassDraft]
26806
26807
  );
26807
26808
  return {
26808
26809
  ...state,
@@ -26811,27 +26812,27 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
26811
26812
  };
26812
26813
  };
26813
26814
  };
26814
- var createGoalDraftsHook = createUseGoalDrafts;
26815
+ var createRecommendedClassDraftsHook = createUseRecommendedClassDrafts;
26815
26816
 
26816
26817
  // src/components/RecommendedLessonsHistory/tabs/DraftsTab.tsx
26817
26818
  import { jsx as jsx119 } from "react/jsx-runtime";
26818
- var GOAL_DRAFTS_CONFIG = {
26819
+ var RECOMMENDED_CLASS_DRAFTS_CONFIG = {
26819
26820
  entityName: "rascunho",
26820
26821
  entityNamePlural: "rascunhos",
26821
- testId: "goal-drafts-tab",
26822
+ testId: "recommendedClass-drafts-tab",
26822
26823
  emptyStateTitle: "Voc\xEA n\xE3o tem aulas recomendadas em rascunho",
26823
26824
  emptyStateDescription: "As aulas recomendadas que voc\xEA come\xE7ar a criar, aparecer\xE3o aqui automaticamente como rascunhos. Tudo \xE9 salvo enquanto voc\xEA cria, continue de onde parou quando quiser!",
26824
26825
  searchPlaceholder: "Buscar rascunho"
26825
26826
  };
26826
- var GOAL_DRAFTS_COLUMNS_CONFIG = {
26827
+ var RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG = {
26827
26828
  sendButtonLabel: "Enviar aula",
26828
26829
  sendButtonAriaLabel: "Enviar rascunho",
26829
26830
  deleteButtonAriaLabel: "Deletar rascunho",
26830
26831
  editButtonAriaLabel: "Editar rascunho"
26831
26832
  };
26832
- var GoalDraftsTab = ({
26833
- fetchGoalDrafts,
26834
- deleteGoalDraft,
26833
+ var RecommendedClassDraftsTab = ({
26834
+ fetchRecommendedClassDrafts,
26835
+ deleteRecommendedClassDraft,
26835
26836
  onCreateDraft,
26836
26837
  onSendDraft,
26837
26838
  onEditDraft,
@@ -26843,8 +26844,8 @@ var GoalDraftsTab = ({
26843
26844
  }) => /* @__PURE__ */ jsx119(
26844
26845
  ModelsTabBase,
26845
26846
  {
26846
- fetchModels: fetchGoalDrafts,
26847
- deleteModel: deleteGoalDraft,
26847
+ fetchModels: fetchRecommendedClassDrafts,
26848
+ deleteModel: deleteRecommendedClassDraft,
26848
26849
  onCreateModel: onCreateDraft,
26849
26850
  onSend: onSendDraft,
26850
26851
  onEditModel: onEditDraft,
@@ -26853,28 +26854,28 @@ var GoalDraftsTab = ({
26853
26854
  mapSubjectNameToEnum: mapSubjectNameToEnum2,
26854
26855
  userFilterData,
26855
26856
  subjectsMap,
26856
- config: GOAL_DRAFTS_CONFIG,
26857
+ config: RECOMMENDED_CLASS_DRAFTS_CONFIG,
26857
26858
  createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
26858
26859
  mapSubject,
26859
26860
  send,
26860
26861
  edit,
26861
26862
  del,
26862
- GOAL_DRAFTS_COLUMNS_CONFIG
26863
+ RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG
26863
26864
  ),
26864
- createFiltersConfig: createGoalDraftsFiltersConfig,
26865
- buildFiltersFromParams: buildGoalModelsFiltersFromParams,
26866
- createUseModels: createUseGoalDrafts
26865
+ createFiltersConfig: createRecommendedClassDraftsFiltersConfig,
26866
+ buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
26867
+ createUseModels: createUseRecommendedClassDrafts
26867
26868
  }
26868
26869
  );
26869
26870
 
26870
26871
  // src/components/RecommendedLessonsHistory/RecommendedLessonsHistory.tsx
26871
26872
  import { Fragment as Fragment26, jsx as jsx120, jsxs as jsxs94 } from "react/jsx-runtime";
26872
- var GoalPageTab = /* @__PURE__ */ ((GoalPageTab2) => {
26873
- GoalPageTab2["HISTORY"] = "history";
26874
- GoalPageTab2["DRAFTS"] = "drafts";
26875
- GoalPageTab2["MODELS"] = "models";
26876
- return GoalPageTab2;
26877
- })(GoalPageTab || {});
26873
+ var RecommendedClassPageTab = /* @__PURE__ */ ((RecommendedClassPageTab2) => {
26874
+ RecommendedClassPageTab2["HISTORY"] = "history";
26875
+ RecommendedClassPageTab2["DRAFTS"] = "drafts";
26876
+ RecommendedClassPageTab2["MODELS"] = "models";
26877
+ return RecommendedClassPageTab2;
26878
+ })(RecommendedClassPageTab || {});
26878
26879
  var extractFilterValue = (param) => {
26879
26880
  if (!Array.isArray(param) || param.length === 0) return {};
26880
26881
  return param.length === 1 ? { single: param[0] } : { multiple: param };
@@ -26935,7 +26936,7 @@ var getClassOptions = (data) => {
26935
26936
  name: cls.name
26936
26937
  }));
26937
26938
  };
26938
- var createGoalFiltersConfig = (userData) => [
26939
+ var createRecommendedClassFiltersConfig = (userData) => [
26939
26940
  {
26940
26941
  key: "academic",
26941
26942
  label: "DADOS ACAD\xCAMICOS",
@@ -27010,12 +27011,12 @@ var createGoalFiltersConfig = (userData) => [
27010
27011
  key: "status",
27011
27012
  label: "Status",
27012
27013
  selectedIds: [],
27013
- itens: GOAL_FILTER_STATUS_OPTIONS
27014
+ itens: RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS
27014
27015
  }
27015
27016
  ]
27016
27017
  }
27017
27018
  ];
27018
- var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
27019
+ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteRecommendedClass, onEditRecommendedClass) => [
27019
27020
  {
27020
27021
  key: "startDate",
27021
27022
  label: "In\xEDcio",
@@ -27096,7 +27097,9 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
27096
27097
  Badge_default,
27097
27098
  {
27098
27099
  variant: "solid",
27099
- action: getGoalStatusBadgeAction(status),
27100
+ action: getRecommendedClassStatusBadgeAction(
27101
+ status
27102
+ ),
27100
27103
  size: "small",
27101
27104
  children: status
27102
27105
  }
@@ -27127,11 +27130,11 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
27127
27130
  render: (_value, row) => {
27128
27131
  const handleDelete = (e) => {
27129
27132
  e.stopPropagation();
27130
- onDeleteGoal?.(row.id);
27133
+ onDeleteRecommendedClass?.(row.id);
27131
27134
  };
27132
27135
  const handleEdit = (e) => {
27133
27136
  e.stopPropagation();
27134
- onEditGoal?.(row.id);
27137
+ onEditRecommendedClass?.(row.id);
27135
27138
  };
27136
27139
  return /* @__PURE__ */ jsxs94("div", { className: "flex justify-center gap-2", children: [
27137
27140
  /* @__PURE__ */ jsx120(
@@ -27164,11 +27167,11 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
27164
27167
  }
27165
27168
  ];
27166
27169
  var RecommendedLessonsHistory = ({
27167
- fetchGoalsHistory,
27170
+ fetchRecommendedClassHistory,
27168
27171
  onCreateLesson,
27169
27172
  onRowClick,
27170
- onDeleteGoal,
27171
- onEditGoal,
27173
+ onDeleteRecommendedClass,
27174
+ onEditRecommendedClass,
27172
27175
  emptyStateImage,
27173
27176
  noSearchImage,
27174
27177
  mapSubjectNameToEnum: mapSubjectNameToEnum2,
@@ -27176,14 +27179,14 @@ var RecommendedLessonsHistory = ({
27176
27179
  title = "Hist\xF3rico de aulas recomendadas",
27177
27180
  createButtonText = "Criar aula",
27178
27181
  searchPlaceholder = "Buscar aula",
27179
- fetchGoalModels,
27180
- deleteGoalModel,
27182
+ fetchRecommendedClassModels,
27183
+ deleteRecommendedClassModel,
27181
27184
  onCreateModel,
27182
27185
  onSendLesson,
27183
27186
  onEditModel,
27184
27187
  subjectsMap,
27185
- fetchGoalDrafts,
27186
- deleteGoalDraft,
27188
+ fetchRecommendedClassDrafts,
27189
+ deleteRecommendedClassDraft,
27187
27190
  onSendDraft,
27188
27191
  onEditDraft,
27189
27192
  defaultTab,
@@ -27205,35 +27208,39 @@ var RecommendedLessonsHistory = ({
27205
27208
  },
27206
27209
  [onTabChange]
27207
27210
  );
27208
- const fetchGoalsHistoryRef = useRef32(fetchGoalsHistory);
27209
- fetchGoalsHistoryRef.current = fetchGoalsHistory;
27210
- const useGoalsHistory = useMemo28(
27211
+ const fetchRecommendedClassHistoryRef = useRef32(fetchRecommendedClassHistory);
27212
+ fetchRecommendedClassHistoryRef.current = fetchRecommendedClassHistory;
27213
+ const useRecommendedClassHistory = useMemo28(
27211
27214
  () => createUseRecommendedLessonsHistory(
27212
- (filters) => fetchGoalsHistoryRef.current(filters)
27215
+ (filters) => fetchRecommendedClassHistoryRef.current(filters)
27213
27216
  ),
27214
27217
  []
27215
27218
  );
27216
27219
  const {
27217
- goals,
27220
+ recommendedClass,
27218
27221
  loading,
27219
27222
  error,
27220
27223
  pagination,
27221
- fetchGoals
27222
- } = useGoalsHistory();
27224
+ fetchRecommendedClass
27225
+ } = useRecommendedClassHistory();
27223
27226
  const initialFilterConfigs = useMemo28(
27224
- () => createGoalFiltersConfig(userFilterData),
27227
+ () => createRecommendedClassFiltersConfig(userFilterData),
27225
27228
  [userFilterData]
27226
27229
  );
27227
27230
  const tableColumns = useMemo28(
27228
- () => createTableColumns2(mapSubjectNameToEnum2, onDeleteGoal, onEditGoal),
27229
- [mapSubjectNameToEnum2, onDeleteGoal, onEditGoal]
27231
+ () => createTableColumns2(
27232
+ mapSubjectNameToEnum2,
27233
+ onDeleteRecommendedClass,
27234
+ onEditRecommendedClass
27235
+ ),
27236
+ [mapSubjectNameToEnum2, onDeleteRecommendedClass, onEditRecommendedClass]
27230
27237
  );
27231
27238
  const handleParamsChange = useCallback29(
27232
27239
  (params) => {
27233
27240
  const filters = buildFiltersFromParams(params);
27234
- fetchGoals(filters);
27241
+ fetchRecommendedClass(filters);
27235
27242
  },
27236
- [fetchGoals]
27243
+ [fetchRecommendedClass]
27237
27244
  );
27238
27245
  return /* @__PURE__ */ jsxs94(
27239
27246
  "div",
@@ -27307,7 +27314,7 @@ var RecommendedLessonsHistory = ({
27307
27314
  activeTab === "history" /* HISTORY */ && /* @__PURE__ */ jsx120(Fragment26, { children: error ? /* @__PURE__ */ jsx120("div", { className: "flex items-center justify-center bg-background rounded-xl w-full min-h-[705px]", children: /* @__PURE__ */ jsx120(Text_default, { size: "lg", color: "text-error-500", children: error }) }) : /* @__PURE__ */ jsx120("div", { className: "w-full", children: /* @__PURE__ */ jsx120(
27308
27315
  TableProvider,
27309
27316
  {
27310
- data: goals,
27317
+ data: recommendedClass,
27311
27318
  headers: tableColumns,
27312
27319
  loading,
27313
27320
  variant: "borderless",
@@ -27374,11 +27381,11 @@ var RecommendedLessonsHistory = ({
27374
27381
  }
27375
27382
  }
27376
27383
  ) }) }),
27377
- activeTab === "drafts" /* DRAFTS */ && fetchGoalDrafts && deleteGoalDraft && onCreateLesson && /* @__PURE__ */ jsx120(
27378
- GoalDraftsTab,
27384
+ activeTab === "drafts" /* DRAFTS */ && fetchRecommendedClassDrafts && deleteRecommendedClassDraft && onCreateLesson && /* @__PURE__ */ jsx120(
27385
+ RecommendedClassDraftsTab,
27379
27386
  {
27380
- fetchGoalDrafts,
27381
- deleteGoalDraft,
27387
+ fetchRecommendedClassDrafts,
27388
+ deleteRecommendedClassDraft,
27382
27389
  onCreateDraft: onCreateLesson,
27383
27390
  onSendDraft,
27384
27391
  onEditDraft,
@@ -27389,11 +27396,11 @@ var RecommendedLessonsHistory = ({
27389
27396
  subjectsMap
27390
27397
  }
27391
27398
  ),
27392
- activeTab === "models" /* MODELS */ && fetchGoalModels && deleteGoalModel && onCreateModel && /* @__PURE__ */ jsx120(
27393
- GoalModelsTab,
27399
+ activeTab === "models" /* MODELS */ && fetchRecommendedClassModels && deleteRecommendedClassModel && onCreateModel && /* @__PURE__ */ jsx120(
27400
+ RecommendedClassModelsTab,
27394
27401
  {
27395
- fetchGoalModels,
27396
- deleteGoalModel,
27402
+ fetchRecommendedClassModels,
27403
+ deleteRecommendedClassModel,
27397
27404
  onCreateModel,
27398
27405
  onSendLesson,
27399
27406
  onEditModel,
@@ -27468,8 +27475,8 @@ var LessonHeader = ({
27468
27475
  mapSubjectNameToEnum: mapSubjectNameToEnum2,
27469
27476
  viewLessonLabel
27470
27477
  }) => {
27471
- const { goal, breakdown } = data;
27472
- const subjectName = goal.lessonsGoals[0]?.supLessonsProgress?.lesson?.subject?.name || "";
27478
+ const { recommendedClass, breakdown } = data;
27479
+ const subjectName = recommendedClass.lessons[0]?.supLessonsProgress?.lesson?.subject?.name || "";
27473
27480
  const subjectEnum = mapSubjectNameToEnum2?.(subjectName);
27474
27481
  const subjectInfo = subjectEnum ? getSubjectInfo(subjectEnum) : null;
27475
27482
  return /* @__PURE__ */ jsx122("div", { className: "bg-background rounded-xl border border-border-50 p-6", children: /* @__PURE__ */ jsxs96("div", { className: "flex flex-col lg:flex-row lg:items-start lg:justify-between gap-4", children: [
@@ -27481,18 +27488,18 @@ var LessonHeader = ({
27481
27488
  size: "xl",
27482
27489
  weight: "bold",
27483
27490
  className: "text-text-950 lg:text-2xl",
27484
- children: goal.title
27491
+ children: recommendedClass.title
27485
27492
  }
27486
27493
  ),
27487
27494
  /* @__PURE__ */ jsxs96("div", { className: "flex flex-wrap items-center gap-2 text-sm text-text-600", children: [
27488
27495
  /* @__PURE__ */ jsxs96(Text_default, { as: "span", size: "sm", className: "text-text-600", children: [
27489
27496
  "In\xEDcio em ",
27490
- formatDate(goal.startDate)
27497
+ formatDate(recommendedClass.startDate)
27491
27498
  ] }),
27492
27499
  /* @__PURE__ */ jsx122(Text_default, { as: "span", size: "sm", className: "text-text-400", children: "\u2022" }),
27493
27500
  /* @__PURE__ */ jsxs96(Text_default, { as: "span", size: "sm", className: "text-text-600", children: [
27494
27501
  "Prazo final ",
27495
- formatDate(goal.finalDate)
27502
+ formatDate(recommendedClass.finalDate)
27496
27503
  ] }),
27497
27504
  breakdown?.schoolName && /* @__PURE__ */ jsxs96(Fragment27, { children: [
27498
27505
  /* @__PURE__ */ jsx122(Text_default, { as: "span", size: "sm", className: "text-text-400", children: "\u2022" }),
@@ -28047,7 +28054,7 @@ var StudentPerformanceModal = ({
28047
28054
  // src/components/RecommendedLessonDetails/RecommendedLessonDetails.tsx
28048
28055
  import { Fragment as Fragment28, jsx as jsx127, jsxs as jsxs101 } from "react/jsx-runtime";
28049
28056
  var RecommendedLessonDetails = ({
28050
- goalId,
28057
+ recommendedClassId,
28051
28058
  data,
28052
28059
  loading = false,
28053
28060
  error = null,
@@ -28069,13 +28076,16 @@ var RecommendedLessonDetails = ({
28069
28076
  const [performanceError, setPerformanceError] = useState51(null);
28070
28077
  const handleViewStudentPerformance = useCallback31(
28071
28078
  async (studentId) => {
28072
- if (!fetchStudentPerformance || !goalId) return;
28079
+ if (!fetchStudentPerformance || !recommendedClassId) return;
28073
28080
  setPerformanceModalOpen(true);
28074
28081
  setPerformanceLoading(true);
28075
28082
  setPerformanceData(null);
28076
28083
  setPerformanceError(null);
28077
28084
  try {
28078
- const result = await fetchStudentPerformance(goalId, studentId);
28085
+ const result = await fetchStudentPerformance(
28086
+ recommendedClassId,
28087
+ studentId
28088
+ );
28079
28089
  setPerformanceData(result);
28080
28090
  } catch (err) {
28081
28091
  console.error("Error fetching student performance:", err);
@@ -28086,7 +28096,7 @@ var RecommendedLessonDetails = ({
28086
28096
  setPerformanceLoading(false);
28087
28097
  }
28088
28098
  },
28089
- [fetchStudentPerformance, goalId]
28099
+ [fetchStudentPerformance, recommendedClassId]
28090
28100
  );
28091
28101
  const handleClosePerformanceModal = useCallback31(() => {
28092
28102
  setPerformanceModalOpen(false);
@@ -28096,18 +28106,18 @@ var RecommendedLessonDetails = ({
28096
28106
  const defaultBreadcrumbs = useMemo30(
28097
28107
  () => [
28098
28108
  { label: "Aulas recomendadas", path: "/aulas-recomendadas" },
28099
- { label: data?.goal.title || "Detalhes" }
28109
+ { label: data?.recommendedClass.title || "Detalhes" }
28100
28110
  ],
28101
- [data?.goal.title]
28111
+ [data?.recommendedClass.title]
28102
28112
  );
28103
28113
  const breadcrumbItems = breadcrumbs || defaultBreadcrumbs;
28104
28114
  const displayStudents = useMemo30(() => {
28105
28115
  if (!data?.details.students) return [];
28106
- const deadline = data?.goal.finalDate;
28116
+ const deadline = data?.recommendedClass.finalDate;
28107
28117
  return data.details.students.map(
28108
28118
  (student) => transformStudentForDisplay(student, deadline)
28109
28119
  );
28110
- }, [data?.details.students, data?.goal.finalDate]);
28120
+ }, [data?.details.students, data?.recommendedClass.finalDate]);
28111
28121
  if (loading) {
28112
28122
  return /* @__PURE__ */ jsx127(
28113
28123
  "div",
@@ -28235,7 +28245,7 @@ var createUseRecommendedLessonsPage = (config) => {
28235
28245
  mapSubjectNameToEnum: mapSubjectNameToEnum2
28236
28246
  } = config;
28237
28247
  return () => {
28238
- const goalsMapRef = useRef33(/* @__PURE__ */ new Map());
28248
+ const recommendedClassMapRef = useRef33(/* @__PURE__ */ new Map());
28239
28249
  const [sendModalOpen, setSendModalOpen] = useState52(false);
28240
28250
  const [selectedModel, setSelectedModel] = useState52(null);
28241
28251
  const [sendModalLoading, setSendModalLoading] = useState52(false);
@@ -28254,60 +28264,63 @@ var createUseRecommendedLessonsPage = (config) => {
28254
28264
  subjects.forEach((s) => map.set(s.id, s.name));
28255
28265
  return map;
28256
28266
  }, [userData]);
28257
- const fetchGoalsHistory = useCallback32(
28267
+ const fetchRecommendedClassHistory = useCallback32(
28258
28268
  async (filters) => {
28259
28269
  const params = buildQueryParams2(filters);
28260
28270
  const response = await api.get(
28261
- endpoints.goalsHistory,
28271
+ endpoints.recommendedClassHistory,
28262
28272
  { params }
28263
28273
  );
28264
- const goals = response.data.data.goals;
28265
- goals.forEach((goal) => {
28266
- goalsMapRef.current.set(goal.goal.id, goal);
28274
+ const recommendedClass = response.data.data.recommendedClass;
28275
+ recommendedClass.forEach((recommendedClass2) => {
28276
+ recommendedClassMapRef.current.set(
28277
+ recommendedClass2.recommendedClass.id,
28278
+ recommendedClass2
28279
+ );
28267
28280
  });
28268
28281
  return response.data;
28269
28282
  },
28270
- [api, endpoints.goalsHistory]
28283
+ [api, endpoints.recommendedClassHistory]
28271
28284
  );
28272
- const fetchGoalModels = useCallback32(
28285
+ const fetchRecommendedClassModels = useCallback32(
28273
28286
  async (filters) => {
28274
28287
  const params = buildQueryParams2({
28275
28288
  ...filters,
28276
28289
  type: "MODELO" /* MODELO */
28277
28290
  });
28278
28291
  const response = await api.get(
28279
- endpoints.goalDrafts,
28292
+ endpoints.recommendedClassDrafts,
28280
28293
  { params }
28281
28294
  );
28282
28295
  return response.data;
28283
28296
  },
28284
- [api, endpoints.goalDrafts]
28297
+ [api, endpoints.recommendedClassDrafts]
28285
28298
  );
28286
- const deleteGoalModel = useCallback32(
28299
+ const deleteRecommendedClassModel = useCallback32(
28287
28300
  async (id) => {
28288
- await api.delete(`${endpoints.goalDrafts}/${id}`);
28301
+ await api.delete(`${endpoints.recommendedClassDrafts}/${id}`);
28289
28302
  },
28290
- [api, endpoints.goalDrafts]
28303
+ [api, endpoints.recommendedClassDrafts]
28291
28304
  );
28292
- const fetchGoalDrafts = useCallback32(
28305
+ const fetchRecommendedClassDrafts = useCallback32(
28293
28306
  async (filters) => {
28294
28307
  const params = buildQueryParams2({
28295
28308
  ...filters,
28296
28309
  type: "RASCUNHO" /* RASCUNHO */
28297
28310
  });
28298
28311
  const response = await api.get(
28299
- endpoints.goalDrafts,
28312
+ endpoints.recommendedClassDrafts,
28300
28313
  { params }
28301
28314
  );
28302
28315
  return response.data;
28303
28316
  },
28304
- [api, endpoints.goalDrafts]
28317
+ [api, endpoints.recommendedClassDrafts]
28305
28318
  );
28306
- const deleteGoalDraft = useCallback32(
28319
+ const deleteRecommendedClassDraft = useCallback32(
28307
28320
  async (id) => {
28308
- await api.delete(`${endpoints.goalDrafts}/${id}`);
28321
+ await api.delete(`${endpoints.recommendedClassDrafts}/${id}`);
28309
28322
  },
28310
- [api, endpoints.goalDrafts]
28323
+ [api, endpoints.recommendedClassDrafts]
28311
28324
  );
28312
28325
  const handleCreateLesson = useCallback32(() => {
28313
28326
  navigate(paths.createLesson);
@@ -28316,17 +28329,20 @@ var createUseRecommendedLessonsPage = (config) => {
28316
28329
  navigate(paths.createModel);
28317
28330
  }, []);
28318
28331
  const handleRowClick = useCallback32((row) => {
28319
- const originalData = goalsMapRef.current.get(row.id);
28332
+ const originalData = recommendedClassMapRef.current.get(row.id);
28320
28333
  navigate(`${paths.lessonDetails}/${row.id}`, {
28321
- state: { goalData: originalData }
28334
+ state: { recommendedClassData: originalData }
28322
28335
  });
28323
28336
  }, []);
28324
- const handleEditGoal = useCallback32((id) => {
28337
+ const handleEditRecommendedClass = useCallback32((id) => {
28325
28338
  navigate(`${paths.editLesson}/${id}/editar`);
28326
28339
  }, []);
28327
- const handleEditModel = useCallback32((model) => {
28328
- navigate(`${paths.editModel}${model.id}`);
28329
- }, []);
28340
+ const handleEditModel = useCallback32(
28341
+ (model) => {
28342
+ navigate(`${paths.editModel}${model.id}`);
28343
+ },
28344
+ []
28345
+ );
28330
28346
  const handleSendLesson = useCallback32(
28331
28347
  (model) => {
28332
28348
  setSelectedModel(model);
@@ -28355,7 +28371,7 @@ var createUseRecommendedLessonsPage = (config) => {
28355
28371
  if (!selectedModel) return;
28356
28372
  setSendModalLoading(true);
28357
28373
  try {
28358
- await api.post(endpoints.submitGoal, {
28374
+ await api.post(endpoints.submitRecommendedClass, {
28359
28375
  draftId: selectedModel.id,
28360
28376
  students: formData.students,
28361
28377
  startDate: `${formData.startDate}T${formData.startTime}:00`,
@@ -28367,7 +28383,7 @@ var createUseRecommendedLessonsPage = (config) => {
28367
28383
  setSendModalLoading(false);
28368
28384
  }
28369
28385
  },
28370
- [api, endpoints.submitGoal, selectedModel]
28386
+ [api, endpoints.submitRecommendedClass, selectedModel]
28371
28387
  );
28372
28388
  const handleSendModalClose = useCallback32(() => {
28373
28389
  setSendModalOpen(false);
@@ -28381,17 +28397,17 @@ var createUseRecommendedLessonsPage = (config) => {
28381
28397
  );
28382
28398
  return {
28383
28399
  historyProps: {
28384
- fetchGoalsHistory,
28385
- fetchGoalModels,
28386
- deleteGoalModel,
28400
+ fetchRecommendedClassHistory,
28401
+ fetchRecommendedClassModels,
28402
+ deleteRecommendedClassModel,
28387
28403
  onCreateLesson: handleCreateLesson,
28388
28404
  onCreateModel: handleCreateModel,
28389
28405
  onRowClick: handleRowClick,
28390
- onEditGoal: handleEditGoal,
28406
+ onEditRecommendedClass: handleEditRecommendedClass,
28391
28407
  onEditModel: handleEditModel,
28392
28408
  onSendLesson: handleSendLesson,
28393
- fetchGoalDrafts,
28394
- deleteGoalDraft,
28409
+ fetchRecommendedClassDrafts,
28410
+ deleteRecommendedClassDraft,
28395
28411
  onSendDraft: handleSendLesson,
28396
28412
  onEditDraft: handleEditModel,
28397
28413
  emptyStateImage,
@@ -28421,7 +28437,7 @@ var createRecommendedLessonsPageHook = createUseRecommendedLessonsPage;
28421
28437
  // src/hooks/useRecommendedLessonDetails.ts
28422
28438
  import { useState as useState53, useCallback as useCallback33, useEffect as useEffect52 } from "react";
28423
28439
  import { z as z7 } from "zod";
28424
- var goalLessonSubjectSchema = z7.object({
28440
+ var recommendedClassLessonSubjectSchema = z7.object({
28425
28441
  id: z7.string(),
28426
28442
  name: z7.string(),
28427
28443
  color: z7.string(),
@@ -28431,38 +28447,38 @@ var lessonContentSchema = z7.object({
28431
28447
  id: z7.string(),
28432
28448
  name: z7.string()
28433
28449
  });
28434
- var goalLessonSchema = z7.object({
28450
+ var recommendedClassLessonSchema = z7.object({
28435
28451
  id: z7.string(),
28436
28452
  content: lessonContentSchema,
28437
28453
  subtopic: lessonContentSchema,
28438
28454
  topic: lessonContentSchema,
28439
- subject: goalLessonSubjectSchema
28455
+ subject: recommendedClassLessonSubjectSchema
28440
28456
  });
28441
- var goalLessonProgressSchema = z7.object({
28457
+ var recommendedClassLessonProgressSchema = z7.object({
28442
28458
  id: z7.string(),
28443
28459
  userId: z7.string(),
28444
28460
  lessonId: z7.string(),
28445
28461
  progress: z7.number(),
28446
- lesson: goalLessonSchema
28462
+ lesson: recommendedClassLessonSchema
28447
28463
  });
28448
- var goalLessonGoalItemSchema = z7.object({
28449
- goalId: z7.string(),
28464
+ var recommendedClassLessonsItemSchema = z7.object({
28465
+ recommendedClassId: z7.string(),
28450
28466
  supLessonsProgressId: z7.string(),
28451
- supLessonsProgress: goalLessonProgressSchema
28467
+ supLessonsProgress: recommendedClassLessonProgressSchema
28452
28468
  });
28453
- var goalMetadataSchema = z7.object({
28469
+ var recommendedClassMetadataSchema = z7.object({
28454
28470
  id: z7.string(),
28455
28471
  title: z7.string(),
28456
28472
  startDate: z7.string(),
28457
28473
  finalDate: z7.string(),
28458
28474
  progress: z7.number(),
28459
- lessonsGoals: z7.array(goalLessonGoalItemSchema)
28475
+ lessons: z7.array(recommendedClassLessonsItemSchema)
28460
28476
  });
28461
- var goalApiResponseSchema = z7.object({
28477
+ var recommendedClassApiResponseSchema = z7.object({
28462
28478
  message: z7.string(),
28463
- data: goalMetadataSchema
28479
+ data: recommendedClassMetadataSchema
28464
28480
  });
28465
- var goalDetailStudentSchema = z7.object({
28481
+ var recommendedClassDetailStudentSchema = z7.object({
28466
28482
  userInstitutionId: z7.string(),
28467
28483
  userId: z7.string(),
28468
28484
  name: z7.string(),
@@ -28471,29 +28487,29 @@ var goalDetailStudentSchema = z7.object({
28471
28487
  avgScore: z7.number().nullable(),
28472
28488
  daysToComplete: z7.number().nullable()
28473
28489
  });
28474
- var goalDetailAggregatedSchema = z7.object({
28490
+ var recommendedClassDetailAggregatedSchema = z7.object({
28475
28491
  completionPercentage: z7.number(),
28476
28492
  avgScore: z7.number().nullable()
28477
28493
  });
28478
- var goalDetailContentPerformanceItemSchema = z7.object({
28494
+ var recommendedClassDetailContentPerformanceItemSchema = z7.object({
28479
28495
  contentId: z7.string(),
28480
28496
  contentName: z7.string(),
28481
28497
  rate: z7.number()
28482
28498
  }).nullable();
28483
- var goalDetailContentPerformanceSchema = z7.object({
28484
- best: goalDetailContentPerformanceItemSchema,
28485
- worst: goalDetailContentPerformanceItemSchema
28499
+ var recommendedClassDetailContentPerformanceSchema = z7.object({
28500
+ best: recommendedClassDetailContentPerformanceItemSchema,
28501
+ worst: recommendedClassDetailContentPerformanceItemSchema
28486
28502
  });
28487
- var goalDetailsDataSchema = z7.object({
28488
- students: z7.array(goalDetailStudentSchema),
28489
- aggregated: goalDetailAggregatedSchema,
28490
- contentPerformance: goalDetailContentPerformanceSchema
28503
+ var recommendedClassDetailsDataSchema = z7.object({
28504
+ students: z7.array(recommendedClassDetailStudentSchema),
28505
+ aggregated: recommendedClassDetailAggregatedSchema,
28506
+ contentPerformance: recommendedClassDetailContentPerformanceSchema
28491
28507
  });
28492
- var goalDetailsApiResponseSchema = z7.object({
28508
+ var recommendedClassDetailsApiResponseSchema = z7.object({
28493
28509
  message: z7.string(),
28494
- data: goalDetailsDataSchema
28510
+ data: recommendedClassDetailsDataSchema
28495
28511
  });
28496
- var goalBreakdownSchema2 = z7.object({
28512
+ var recommendedClassBreakdownSchema2 = z7.object({
28497
28513
  classId: z7.string().uuid(),
28498
28514
  className: z7.string(),
28499
28515
  schoolId: z7.string(),
@@ -28501,14 +28517,14 @@ var goalBreakdownSchema2 = z7.object({
28501
28517
  studentCount: z7.number(),
28502
28518
  completedCount: z7.number()
28503
28519
  });
28504
- var historyGoalItemSchema = z7.object({
28505
- goal: z7.object({ id: z7.string().uuid() }),
28506
- breakdown: z7.array(goalBreakdownSchema2)
28520
+ var historyRecommendedClassItemSchema = z7.object({
28521
+ recommendedClass: z7.object({ id: z7.string().uuid() }),
28522
+ breakdown: z7.array(recommendedClassBreakdownSchema2)
28507
28523
  });
28508
28524
  var historyApiResponseSchema = z7.object({
28509
28525
  message: z7.string(),
28510
28526
  data: z7.object({
28511
- goals: z7.array(historyGoalItemSchema),
28527
+ recommendedClass: z7.array(historyRecommendedClassItemSchema),
28512
28528
  total: z7.number()
28513
28529
  })
28514
28530
  });
@@ -28539,23 +28555,23 @@ var createUseRecommendedLessonDetails = (apiClient) => {
28539
28555
  setState((prev) => ({ ...prev, loading: true, error: null }));
28540
28556
  try {
28541
28557
  const promises = [
28542
- apiClient.fetchGoal(lessonId),
28543
- apiClient.fetchGoalDetails(lessonId),
28558
+ apiClient.fetchRecommendedClass(lessonId),
28559
+ apiClient.fetchRecommendedClassDetails(lessonId),
28544
28560
  apiClient.fetchBreakdown ? apiClient.fetchBreakdown(lessonId) : Promise.resolve(null)
28545
28561
  ];
28546
- const [goalResponse, detailsResponse, historyResponse] = await Promise.all(promises);
28547
- const validatedGoal = goalApiResponseSchema.parse(goalResponse);
28548
- const validatedDetails = goalDetailsApiResponseSchema.parse(detailsResponse);
28562
+ const [recommendedClassResponse, detailsResponse, historyResponse] = await Promise.all(promises);
28563
+ const validatedRecommendedClass = recommendedClassApiResponseSchema.parse(recommendedClassResponse);
28564
+ const validatedDetails = recommendedClassDetailsApiResponseSchema.parse(detailsResponse);
28549
28565
  let breakdown;
28550
28566
  if (historyResponse) {
28551
28567
  const validatedHistory = historyApiResponseSchema.parse(historyResponse);
28552
- const historyItem = validatedHistory.data.goals.find(
28553
- (g) => g.goal.id === lessonId
28568
+ const historyItem = validatedHistory.data.recommendedClass.find(
28569
+ (g) => g.recommendedClass.id === lessonId
28554
28570
  );
28555
28571
  breakdown = historyItem?.breakdown[0];
28556
28572
  }
28557
28573
  const lessonData = {
28558
- goal: validatedGoal.data,
28574
+ recommendedClass: validatedRecommendedClass.data,
28559
28575
  details: validatedDetails.data,
28560
28576
  breakdown
28561
28577
  };
@@ -29327,6 +29343,187 @@ var ActivitiesHistory = ({
29327
29343
  );
29328
29344
  };
29329
29345
 
29346
+ // src/hooks/useStudentsHighlight.ts
29347
+ import { useState as useState57, useCallback as useCallback37 } from "react";
29348
+ import { z as z10 } from "zod";
29349
+ var trendDirectionSchema = z10.enum(["up", "down", "stable"]).nullable();
29350
+ var studentHighlightItemSchema = z10.object({
29351
+ id: z10.string().uuid(),
29352
+ name: z10.string(),
29353
+ correctAnswers: z10.number().min(0),
29354
+ incorrectAnswers: z10.number().min(0),
29355
+ totalQuestions: z10.number().min(0),
29356
+ trend: z10.number().nullable(),
29357
+ trendDirection: trendDirectionSchema
29358
+ });
29359
+ var studentsHighlightApiResponseSchema = z10.object({
29360
+ message: z10.string(),
29361
+ data: z10.object({
29362
+ topStudents: z10.array(studentHighlightItemSchema),
29363
+ bottomStudents: z10.array(studentHighlightItemSchema)
29364
+ })
29365
+ });
29366
+ var calculatePerformancePercentage = (correctAnswers, totalQuestions) => {
29367
+ if (totalQuestions === 0) {
29368
+ return 0;
29369
+ }
29370
+ return Math.round(correctAnswers / totalQuestions * 100);
29371
+ };
29372
+ var transformStudentHighlightItem = (item, position) => ({
29373
+ id: item.id,
29374
+ position,
29375
+ name: item.name,
29376
+ percentage: calculatePerformancePercentage(
29377
+ item.correctAnswers,
29378
+ item.totalQuestions
29379
+ ),
29380
+ correctAnswers: item.correctAnswers,
29381
+ incorrectAnswers: item.incorrectAnswers,
29382
+ totalQuestions: item.totalQuestions,
29383
+ trend: item.trend,
29384
+ trendDirection: item.trendDirection
29385
+ });
29386
+ var handleStudentsHighlightFetchError = (error) => {
29387
+ if (error instanceof z10.ZodError) {
29388
+ console.error("Erro ao validar dados de destaque de estudantes:", error);
29389
+ return "Erro ao validar dados de destaque de estudantes";
29390
+ }
29391
+ console.error("Erro ao carregar destaque de estudantes:", error);
29392
+ return "Erro ao carregar destaque de estudantes";
29393
+ };
29394
+ var initialState4 = {
29395
+ topStudents: [],
29396
+ bottomStudents: [],
29397
+ loading: false,
29398
+ error: null
29399
+ };
29400
+ var createUseStudentsHighlight = (fetchStudentsHighlightApi) => {
29401
+ return () => {
29402
+ const [state, setState] = useState57(initialState4);
29403
+ const fetchStudentsHighlight = useCallback37(
29404
+ async (filters) => {
29405
+ setState((prev) => ({ ...prev, loading: true, error: null }));
29406
+ try {
29407
+ const responseData = await fetchStudentsHighlightApi(filters);
29408
+ const validatedData = studentsHighlightApiResponseSchema.parse(responseData);
29409
+ const topStudents = validatedData.data.topStudents.map(
29410
+ (student, index) => transformStudentHighlightItem(student, index + 1)
29411
+ );
29412
+ const bottomStudents = validatedData.data.bottomStudents.map(
29413
+ (student, index) => transformStudentHighlightItem(student, index + 1)
29414
+ );
29415
+ setState({
29416
+ topStudents,
29417
+ bottomStudents,
29418
+ loading: false,
29419
+ error: null
29420
+ });
29421
+ } catch (error) {
29422
+ const errorMessage = handleStudentsHighlightFetchError(error);
29423
+ setState((prev) => ({
29424
+ ...prev,
29425
+ loading: false,
29426
+ error: errorMessage
29427
+ }));
29428
+ }
29429
+ },
29430
+ [fetchStudentsHighlightApi]
29431
+ );
29432
+ const reset = useCallback37(() => {
29433
+ setState(initialState4);
29434
+ }, []);
29435
+ return {
29436
+ ...state,
29437
+ fetchStudentsHighlight,
29438
+ reset
29439
+ };
29440
+ };
29441
+ };
29442
+ var createStudentsHighlightHook = createUseStudentsHighlight;
29443
+
29444
+ // src/hooks/useQuestionsData.ts
29445
+ import { useState as useState58, useCallback as useCallback38 } from "react";
29446
+ import { z as z11 } from "zod";
29447
+ var trendDirectionSchema2 = z11.enum(["up", "down", "stable"]);
29448
+ var trendSchema = z11.object({
29449
+ totalQuestions: z11.number(),
29450
+ correctPercentage: z11.number(),
29451
+ direction: trendDirectionSchema2
29452
+ }).nullable();
29453
+ var questionsDataApiResponseSchema = z11.object({
29454
+ message: z11.string(),
29455
+ data: z11.object({
29456
+ totalQuestions: z11.number().min(0),
29457
+ correctQuestions: z11.number().min(0),
29458
+ incorrectQuestions: z11.number().min(0),
29459
+ blankQuestions: z11.number().min(0),
29460
+ correctPercentage: z11.number().min(0).max(100),
29461
+ incorrectPercentage: z11.number().min(0).max(100),
29462
+ blankPercentage: z11.number().min(0).max(100),
29463
+ trend: trendSchema
29464
+ })
29465
+ });
29466
+ var transformQuestionsData = (apiData) => ({
29467
+ total: apiData.totalQuestions,
29468
+ corretas: apiData.correctQuestions,
29469
+ incorretas: apiData.incorrectQuestions,
29470
+ emBranco: apiData.blankQuestions,
29471
+ correctPercentage: apiData.correctPercentage,
29472
+ incorrectPercentage: apiData.incorrectPercentage,
29473
+ blankPercentage: apiData.blankPercentage,
29474
+ trend: apiData.trend
29475
+ });
29476
+ var handleQuestionsDataFetchError = (error) => {
29477
+ if (error instanceof z11.ZodError) {
29478
+ console.error("Erro ao validar dados de quest\xF5es:", error);
29479
+ return "Erro ao validar dados de quest\xF5es";
29480
+ }
29481
+ console.error("Erro ao carregar dados de quest\xF5es:", error);
29482
+ return "Erro ao carregar dados de quest\xF5es";
29483
+ };
29484
+ var initialState5 = {
29485
+ data: null,
29486
+ loading: false,
29487
+ error: null
29488
+ };
29489
+ var createUseQuestionsData = (fetchQuestionsDataApi) => {
29490
+ return () => {
29491
+ const [state, setState] = useState58(initialState5);
29492
+ const fetchQuestionsData = useCallback38(
29493
+ async (filters) => {
29494
+ setState((prev) => ({ ...prev, loading: true, error: null }));
29495
+ try {
29496
+ const responseData = await fetchQuestionsDataApi(filters);
29497
+ const validatedData = questionsDataApiResponseSchema.parse(responseData);
29498
+ const transformedData = transformQuestionsData(validatedData.data);
29499
+ setState({
29500
+ data: transformedData,
29501
+ loading: false,
29502
+ error: null
29503
+ });
29504
+ } catch (error) {
29505
+ const errorMessage = handleQuestionsDataFetchError(error);
29506
+ setState((prev) => ({
29507
+ ...prev,
29508
+ loading: false,
29509
+ error: errorMessage
29510
+ }));
29511
+ }
29512
+ },
29513
+ [fetchQuestionsDataApi]
29514
+ );
29515
+ const reset = useCallback38(() => {
29516
+ setState(initialState5);
29517
+ }, []);
29518
+ return {
29519
+ ...state,
29520
+ fetchQuestionsData,
29521
+ reset
29522
+ };
29523
+ };
29524
+ };
29525
+ var createQuestionsDataHook = createUseQuestionsData;
29526
+
29330
29527
  // src/utils/subjectMappers.ts
29331
29528
  var SUBJECT_NAME_MAPPING = {
29332
29529
  matem\u00E1tica: "Matem\xE1tica" /* MATEMATICA */,
@@ -29461,7 +29658,7 @@ var buildUserFilterData = (userData) => ({
29461
29658
  });
29462
29659
 
29463
29660
  // src/hooks/useChat.ts
29464
- import { useState as useState57, useEffect as useEffect53, useCallback as useCallback37, useRef as useRef35 } from "react";
29661
+ import { useState as useState59, useEffect as useEffect53, useCallback as useCallback39, useRef as useRef35 } from "react";
29465
29662
  var WS_STATES = {
29466
29663
  CONNECTING: 0,
29467
29664
  OPEN: 1,
@@ -29480,10 +29677,10 @@ function useChat({
29480
29677
  reconnectInterval = 3e3,
29481
29678
  maxReconnectAttempts = 5
29482
29679
  }) {
29483
- const [isConnected, setIsConnected] = useState57(false);
29484
- const [messages, setMessages] = useState57([]);
29485
- const [participants, setParticipants] = useState57([]);
29486
- const [error, setError] = useState57(null);
29680
+ const [isConnected, setIsConnected] = useState59(false);
29681
+ const [messages, setMessages] = useState59([]);
29682
+ const [participants, setParticipants] = useState59([]);
29683
+ const [error, setError] = useState59(null);
29487
29684
  const wsRef = useRef35(null);
29488
29685
  const reconnectAttemptsRef = useRef35(0);
29489
29686
  const reconnectTimeoutRef = useRef35(
@@ -29493,12 +29690,12 @@ function useChat({
29493
29690
  const isConnectingRef = useRef35(false);
29494
29691
  const connectRef = useRef35(() => {
29495
29692
  });
29496
- const sendWsMessage = useCallback37((message) => {
29693
+ const sendWsMessage = useCallback39((message) => {
29497
29694
  if (wsRef.current?.readyState === WS_STATES.OPEN) {
29498
29695
  wsRef.current.send(JSON.stringify(message));
29499
29696
  }
29500
29697
  }, []);
29501
- const sendMessage = useCallback37(
29698
+ const sendMessage = useCallback39(
29502
29699
  (content) => {
29503
29700
  const trimmedContent = content.trim();
29504
29701
  if (!trimmedContent) return;
@@ -29509,12 +29706,12 @@ function useChat({
29509
29706
  },
29510
29707
  [sendWsMessage]
29511
29708
  );
29512
- const leave = useCallback37(() => {
29709
+ const leave = useCallback39(() => {
29513
29710
  isManualDisconnectRef.current = true;
29514
29711
  sendWsMessage({ type: "leave" });
29515
29712
  wsRef.current?.close(1e3, "User left");
29516
29713
  }, [sendWsMessage]);
29517
- const handleMessage = useCallback37(
29714
+ const handleMessage = useCallback39(
29518
29715
  (event) => {
29519
29716
  try {
29520
29717
  const data = JSON.parse(event.data);
@@ -29582,7 +29779,7 @@ function useChat({
29582
29779
  },
29583
29780
  [onError]
29584
29781
  );
29585
- const connect = useCallback37(() => {
29782
+ const connect = useCallback39(() => {
29586
29783
  if (isConnectingRef.current) {
29587
29784
  return;
29588
29785
  }
@@ -29636,7 +29833,7 @@ function useChat({
29636
29833
  maxReconnectAttempts
29637
29834
  ]);
29638
29835
  connectRef.current = connect;
29639
- const reconnect = useCallback37(() => {
29836
+ const reconnect = useCallback39(() => {
29640
29837
  isManualDisconnectRef.current = false;
29641
29838
  reconnectAttemptsRef.current = 0;
29642
29839
  connectRef.current();
@@ -29685,15 +29882,15 @@ function createUseChat(baseWsUrl) {
29685
29882
  }
29686
29883
 
29687
29884
  // src/hooks/useChatRooms.ts
29688
- import { useState as useState58, useCallback as useCallback38 } from "react";
29885
+ import { useState as useState60, useCallback as useCallback40 } from "react";
29689
29886
  function useChatRooms({
29690
29887
  apiClient
29691
29888
  }) {
29692
- const [rooms, setRooms] = useState58([]);
29693
- const [availableUsers, setAvailableUsers] = useState58([]);
29694
- const [loading, setLoading] = useState58(false);
29695
- const [error, setError] = useState58(null);
29696
- const fetchRooms = useCallback38(async () => {
29889
+ const [rooms, setRooms] = useState60([]);
29890
+ const [availableUsers, setAvailableUsers] = useState60([]);
29891
+ const [loading, setLoading] = useState60(false);
29892
+ const [error, setError] = useState60(null);
29893
+ const fetchRooms = useCallback40(async () => {
29697
29894
  setLoading(true);
29698
29895
  setError(null);
29699
29896
  try {
@@ -29709,7 +29906,7 @@ function useChatRooms({
29709
29906
  setLoading(false);
29710
29907
  }
29711
29908
  }, [apiClient]);
29712
- const fetchAvailableUsers = useCallback38(async () => {
29909
+ const fetchAvailableUsers = useCallback40(async () => {
29713
29910
  setLoading(true);
29714
29911
  setError(null);
29715
29912
  try {
@@ -29725,7 +29922,7 @@ function useChatRooms({
29725
29922
  setLoading(false);
29726
29923
  }
29727
29924
  }, [apiClient]);
29728
- const createRoom = useCallback38(
29925
+ const createRoom = useCallback40(
29729
29926
  async (participantIds) => {
29730
29927
  setLoading(true);
29731
29928
  setError(null);
@@ -29749,7 +29946,7 @@ function useChatRooms({
29749
29946
  },
29750
29947
  [apiClient, fetchRooms]
29751
29948
  );
29752
- const clearError = useCallback38(() => {
29949
+ const clearError = useCallback40(() => {
29753
29950
  setError(null);
29754
29951
  }, []);
29755
29952
  return {
@@ -29783,7 +29980,7 @@ var CHAT_MESSAGE_TYPES = {
29783
29980
  };
29784
29981
 
29785
29982
  // src/components/Chat/Chat.tsx
29786
- import { useState as useState59, useEffect as useEffect54, useCallback as useCallback39, useRef as useRef36 } from "react";
29983
+ import { useState as useState61, useEffect as useEffect54, useCallback as useCallback41, useRef as useRef36 } from "react";
29787
29984
  import {
29788
29985
  PaperPlaneTiltIcon as PaperPlaneTiltIcon2,
29789
29986
  XIcon,
@@ -29936,15 +30133,15 @@ function ChatContent({
29936
30133
  onRoomChange,
29937
30134
  onBackToList
29938
30135
  }) {
29939
- const [view, setView] = useState59("list");
29940
- const [selectedRoom, setSelectedRoom] = useState59(
30136
+ const [view, setView] = useState61("list");
30137
+ const [selectedRoom, setSelectedRoom] = useState61(
29941
30138
  null
29942
30139
  );
29943
- const [selectedUserIds, setSelectedUserIds] = useState59(
30140
+ const [selectedUserIds, setSelectedUserIds] = useState61(
29944
30141
  /* @__PURE__ */ new Set()
29945
30142
  );
29946
- const [messageInput, setMessageInput] = useState59("");
29947
- const [showCreateModal, setShowCreateModal] = useState59(false);
30143
+ const [messageInput, setMessageInput] = useState61("");
30144
+ const [showCreateModal, setShowCreateModal] = useState61(false);
29948
30145
  const hasHandledInitialRoomRef = useRef36(false);
29949
30146
  const {
29950
30147
  rooms,
@@ -29998,7 +30195,7 @@ function ChatContent({
29998
30195
  onBackToList?.();
29999
30196
  }
30000
30197
  }, [initialRoomId, rooms, roomsLoading, onBackToList]);
30001
- const handleSelectRoom = useCallback39(
30198
+ const handleSelectRoom = useCallback41(
30002
30199
  (room) => {
30003
30200
  setSelectedRoom(room);
30004
30201
  setView("room");
@@ -30006,12 +30203,12 @@ function ChatContent({
30006
30203
  },
30007
30204
  [onRoomChange]
30008
30205
  );
30009
- const handleOpenCreateModal = useCallback39(async () => {
30206
+ const handleOpenCreateModal = useCallback41(async () => {
30010
30207
  await fetchAvailableUsers();
30011
30208
  setSelectedUserIds(/* @__PURE__ */ new Set());
30012
30209
  setShowCreateModal(true);
30013
30210
  }, [fetchAvailableUsers]);
30014
- const handleToggleUser = useCallback39((id) => {
30211
+ const handleToggleUser = useCallback41((id) => {
30015
30212
  setSelectedUserIds((prev) => {
30016
30213
  const next = new Set(prev);
30017
30214
  if (next.has(id)) {
@@ -30022,7 +30219,7 @@ function ChatContent({
30022
30219
  return next;
30023
30220
  });
30024
30221
  }, []);
30025
- const handleCreateRoom = useCallback39(async () => {
30222
+ const handleCreateRoom = useCallback41(async () => {
30026
30223
  if (selectedUserIds.size === 0) return;
30027
30224
  const room = await createRoom(Array.from(selectedUserIds));
30028
30225
  if (room) {
@@ -30031,12 +30228,12 @@ function ChatContent({
30031
30228
  onRoomChange?.(room.id);
30032
30229
  }
30033
30230
  }, [selectedUserIds, createRoom, onRoomChange]);
30034
- const handleSendMessage = useCallback39(() => {
30231
+ const handleSendMessage = useCallback41(() => {
30035
30232
  if (!messageInput.trim()) return;
30036
30233
  sendMessage(messageInput);
30037
30234
  setMessageInput("");
30038
30235
  }, [messageInput, sendMessage]);
30039
- const handleBackToList = useCallback39(() => {
30236
+ const handleBackToList = useCallback41(() => {
30040
30237
  setSelectedRoom(null);
30041
30238
  setView("list");
30042
30239
  onBackToList?.();
@@ -30282,7 +30479,7 @@ var CalendarActivityStatus = /* @__PURE__ */ ((CalendarActivityStatus2) => {
30282
30479
  })(CalendarActivityStatus || {});
30283
30480
 
30284
30481
  // src/hooks/useSendActivity.ts
30285
- import { useState as useState60, useCallback as useCallback40, useMemo as useMemo33, useRef as useRef37 } from "react";
30482
+ import { useState as useState62, useCallback as useCallback42, useMemo as useMemo33, useRef as useRef37 } from "react";
30286
30483
  import dayjs8 from "dayjs";
30287
30484
  function transformToCategoryConfig(data) {
30288
30485
  return [
@@ -30337,13 +30534,13 @@ function useSendActivity(config) {
30337
30534
  onSuccess,
30338
30535
  onError
30339
30536
  } = config;
30340
- const [isOpen, setIsOpen] = useState60(false);
30341
- const [selectedModel, setSelectedModel] = useState60(
30537
+ const [isOpen, setIsOpen] = useState62(false);
30538
+ const [selectedModel, setSelectedModel] = useState62(
30342
30539
  null
30343
30540
  );
30344
- const [categories, setCategories] = useState60([]);
30345
- const [isLoading, setIsLoading] = useState60(false);
30346
- const [isCategoriesLoading, setIsCategoriesLoading] = useState60(false);
30541
+ const [categories, setCategories] = useState62([]);
30542
+ const [isLoading, setIsLoading] = useState62(false);
30543
+ const [isCategoriesLoading, setIsCategoriesLoading] = useState62(false);
30347
30544
  const categoriesLoadedRef = useRef37(false);
30348
30545
  const initialData = useMemo33(() => {
30349
30546
  if (!selectedModel) return void 0;
@@ -30351,7 +30548,7 @@ function useSendActivity(config) {
30351
30548
  title: selectedModel.title
30352
30549
  };
30353
30550
  }, [selectedModel]);
30354
- const loadCategories = useCallback40(async () => {
30551
+ const loadCategories = useCallback42(async () => {
30355
30552
  if (categoriesLoadedRef.current) return;
30356
30553
  setIsCategoriesLoading(true);
30357
30554
  try {
@@ -30366,7 +30563,7 @@ function useSendActivity(config) {
30366
30563
  setIsCategoriesLoading(false);
30367
30564
  }
30368
30565
  }, [fetchCategories, onError]);
30369
- const openModal = useCallback40(
30566
+ const openModal = useCallback42(
30370
30567
  (model) => {
30371
30568
  setSelectedModel(model);
30372
30569
  setIsOpen(true);
@@ -30374,17 +30571,17 @@ function useSendActivity(config) {
30374
30571
  },
30375
30572
  [loadCategories]
30376
30573
  );
30377
- const closeModal = useCallback40(() => {
30574
+ const closeModal = useCallback42(() => {
30378
30575
  setIsOpen(false);
30379
30576
  setSelectedModel(null);
30380
30577
  }, []);
30381
- const onCategoriesChange = useCallback40(
30578
+ const onCategoriesChange = useCallback42(
30382
30579
  (updatedCategories) => {
30383
30580
  setCategories(updatedCategories);
30384
30581
  },
30385
30582
  []
30386
30583
  );
30387
- const handleSubmit = useCallback40(
30584
+ const handleSubmit = useCallback42(
30388
30585
  async (data) => {
30389
30586
  if (!selectedModel) return;
30390
30587
  setIsLoading(true);
@@ -30492,9 +30689,9 @@ export {
30492
30689
  CorrectActivityModal_default as CorrectActivityModal,
30493
30690
  CreateActivity,
30494
30691
  DEFAULT_ACTIVITIES_PAGINATION,
30495
- DEFAULT_GOAL_DRAFTS_PAGINATION,
30496
- DEFAULT_GOAL_MODELS_PAGINATION,
30497
30692
  DEFAULT_MODELS_PAGINATION,
30693
+ DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION,
30694
+ DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION,
30498
30695
  DIFFICULTY_LEVEL_ENUM,
30499
30696
  DateTimeInput_default as DateTimeInput,
30500
30697
  Divider_default as Divider,
@@ -30508,16 +30705,7 @@ export {
30508
30705
  EmptyState_default as EmptyState,
30509
30706
  FileAttachment_default as FileAttachment,
30510
30707
  FilterModal,
30511
- GOAL_ACTIVITY_STATUS,
30512
- GOAL_FILTER_STATUS_OPTIONS,
30513
- GOAL_STATUS_OPTIONS,
30514
30708
  ActivityStatus2 as GeneralActivityStatus,
30515
- GenericApiStatus as GoalApiStatus,
30516
- BadgeActionType as GoalBadgeActionType,
30517
- GenericDisplayStatus as GoalDisplayStatus,
30518
- GoalDraftType,
30519
- GoalDraftsTab,
30520
- GoalPageTab,
30521
30709
  IconButton_default as IconButton,
30522
30710
  IconRender_default as IconRender,
30523
30711
  IconRoundedButton_default as IconRoundedButton,
@@ -30577,10 +30765,19 @@ export {
30577
30765
  QuizResultTitle,
30578
30766
  QuizTitle,
30579
30767
  QuizTrueOrFalse,
30768
+ RECOMMENDED_CLASS_ACTIVITY_STATUS,
30769
+ RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS,
30770
+ RECOMMENDED_CLASS_STATUS_OPTIONS,
30580
30771
  Radio_default as Radio,
30581
30772
  RadioGroup,
30582
30773
  RadioGroupItem,
30583
30774
  RankingCard,
30775
+ GenericApiStatus as RecommendedClassApiStatus,
30776
+ BadgeActionType as RecommendedClassBadgeActionType,
30777
+ GenericDisplayStatus as RecommendedClassDisplayStatus,
30778
+ RecommendedClassDraftType,
30779
+ RecommendedClassDraftsTab,
30780
+ RecommendedClassPageTab,
30584
30781
  RecommendedLessonDetails_default as RecommendedLessonDetails,
30585
30782
  RecommendedLessonsHistory,
30586
30783
  STUDENT_ACTIVITY_STATUS,
@@ -30634,36 +30831,41 @@ export {
30634
30831
  activitiesHistoryApiResponseSchema,
30635
30832
  activityModelsApiResponseSchema,
30636
30833
  buildUserFilterData,
30834
+ calculatePerformancePercentage,
30637
30835
  checkLessonAvailability,
30638
30836
  cn,
30639
30837
  convertActivityFiltersToQuestionsFilter,
30640
30838
  createActivitiesHistoryHook,
30641
30839
  createActivityFiltersDataHook,
30642
30840
  createActivityModelsHook,
30643
- createGoalDraftsHook,
30644
- createGoalModelsHook,
30645
30841
  createNotificationStore,
30646
30842
  createNotificationsHook,
30843
+ createQuestionsDataHook,
30647
30844
  createQuestionsListHook,
30845
+ createRecommendedClassDraftsHook,
30846
+ createRecommendedClassModelsHook,
30648
30847
  createRecommendedLessonDetailsHook,
30649
30848
  createRecommendedLessonsHistoryHook,
30650
30849
  createRecommendedLessonsPageHook,
30850
+ createStudentsHighlightHook,
30651
30851
  createUseActivitiesHistory,
30652
30852
  createUseActivityFiltersData,
30653
30853
  createUseActivityModels,
30654
30854
  createUseChat,
30655
30855
  createUseChatRooms,
30656
- createUseGoalDrafts,
30657
- createUseGoalModels,
30658
30856
  createUseNotificationStore,
30659
30857
  createUseNotifications,
30858
+ createUseQuestionsData,
30660
30859
  createUseQuestionsList,
30860
+ createUseRecommendedClassDrafts,
30861
+ createUseRecommendedClassModels,
30661
30862
  createUseRecommendedLessonDetails,
30662
30863
  createUseRecommendedLessonsHistory,
30663
30864
  createUseRecommendedLessonsPage,
30865
+ createUseStudentsHighlight,
30664
30866
  createZustandAuthAdapter,
30665
30867
  deriveStudentStatus,
30666
- determineGoalStatus,
30868
+ determineRecommendedClassStatus,
30667
30869
  formatDateToBrazilian,
30668
30870
  formatDaysToComplete,
30669
30871
  formatFileSize,
@@ -30678,8 +30880,8 @@ export {
30678
30880
  getChatWsUrl,
30679
30881
  getClassOptionsFromUserData,
30680
30882
  getDeviceType,
30681
- getGoalStatusBadgeAction,
30682
30883
  getQuestionStatusBadgeConfig,
30884
+ getRecommendedClassStatusBadgeAction,
30683
30885
  getRootDomain,
30684
30886
  getSchoolOptionsFromUserData,
30685
30887
  getSchoolYearOptionsFromUserData,
@@ -30695,16 +30897,14 @@ export {
30695
30897
  getSubjectInfo,
30696
30898
  getSubjectName,
30697
30899
  getSubjectOptionsFromUserData,
30698
- goalApiResponseSchema,
30699
- goalDetailsApiResponseSchema,
30700
- goalModelsApiResponseSchema,
30701
- goalsHistoryApiResponseSchema,
30702
30900
  handleActivityFetchError,
30703
- handleGoalDraftFetchError,
30704
- handleGoalFetchError,
30705
- handleGoalModelFetchError,
30706
30901
  handleLessonDetailsFetchError,
30707
30902
  handleModelFetchError,
30903
+ handleQuestionsDataFetchError,
30904
+ handleRecommendedClassDraftFetchError,
30905
+ handleRecommendedClassFetchError,
30906
+ handleRecommendedClassModelFetchError,
30907
+ handleStudentsHighlightFetchError,
30708
30908
  historyApiResponseSchema,
30709
30909
  isChatUserInfoValid,
30710
30910
  isDeadlinePassed,
@@ -30720,16 +30920,24 @@ export {
30720
30920
  mapSubjectEnumToName,
30721
30921
  mapSubjectNameToEnum,
30722
30922
  questionTypeLabels,
30923
+ questionsDataApiResponseSchema,
30924
+ recommendedClassApiResponseSchema,
30925
+ recommendedClassDetailsApiResponseSchema,
30926
+ recommendedClassHistoryApiResponseSchema,
30927
+ recommendedClassModelsApiResponseSchema,
30723
30928
  renderSubjectCell,
30724
30929
  studentActivityStatusSchema,
30930
+ studentsHighlightApiResponseSchema,
30725
30931
  supportSchema,
30726
30932
  syncDropdownState,
30727
30933
  toggleArrayItem,
30728
30934
  toggleSingleValue,
30729
30935
  transformActivityToTableItem,
30730
- transformGoalModelToTableItem,
30731
- transformGoalToTableItem,
30732
30936
  transformModelToTableItem,
30937
+ transformQuestionsData,
30938
+ transformRecommendedClassModelToTableItem,
30939
+ transformRecommendedClassToTableItem,
30940
+ transformStudentHighlightItem,
30733
30941
  useActivityDetails,
30734
30942
  useAlertFormStore,
30735
30943
  useApiConfig,