analytica-frontend-lib 1.2.85 → 1.2.87

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 (76) 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/RecommendedLessonsHistory/index.d.ts +1 -1
  8. package/dist/RecommendedLessonsHistory/index.d.ts.map +1 -1
  9. package/dist/RecommendedLessonsHistory/index.js +148 -142
  10. package/dist/RecommendedLessonsHistory/index.js.map +1 -1
  11. package/dist/RecommendedLessonsHistory/index.mjs +147 -141
  12. package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
  13. package/dist/hooks/useActivitiesHistory/index.js.map +1 -1
  14. package/dist/hooks/useActivitiesHistory/index.mjs.map +1 -1
  15. package/dist/hooks/useNotifications.d.ts +2 -2
  16. package/dist/hooks/useNotifications.d.ts.map +1 -1
  17. package/dist/hooks/useRecommendedClassDrafts/index.d.ts +57 -0
  18. package/dist/hooks/useRecommendedClassDrafts/index.d.ts.map +1 -0
  19. package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.js +40 -40
  20. package/dist/hooks/useRecommendedClassDrafts/index.js.map +1 -0
  21. package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.mjs +33 -33
  22. package/dist/hooks/useRecommendedClassDrafts/index.mjs.map +1 -0
  23. package/dist/hooks/useRecommendedClassDrafts.d.ts +57 -0
  24. package/dist/hooks/useRecommendedClassDrafts.d.ts.map +1 -0
  25. package/dist/hooks/{useGoalModels.d.ts → useRecommendedClassModels.d.ts} +32 -32
  26. package/dist/hooks/useRecommendedClassModels.d.ts.map +1 -0
  27. package/dist/hooks/useRecommendedLessonDetails.d.ts +44 -44
  28. package/dist/hooks/useRecommendedLessonDetails.d.ts.map +1 -1
  29. package/dist/hooks/useRecommendedLessons/index.d.ts +35 -35
  30. package/dist/hooks/useRecommendedLessons/index.d.ts.map +1 -1
  31. package/dist/hooks/useRecommendedLessons/index.js +41 -41
  32. package/dist/hooks/useRecommendedLessons/index.js.map +1 -1
  33. package/dist/hooks/useRecommendedLessons/index.mjs +37 -37
  34. package/dist/hooks/useRecommendedLessons/index.mjs.map +1 -1
  35. package/dist/hooks/useRecommendedLessons.d.ts +35 -35
  36. package/dist/hooks/useRecommendedLessons.d.ts.map +1 -1
  37. package/dist/hooks/useRecommendedLessonsPage/index.d.ts +21 -21
  38. package/dist/hooks/useRecommendedLessonsPage/index.d.ts.map +1 -1
  39. package/dist/hooks/useRecommendedLessonsPage/index.js +39 -33
  40. package/dist/hooks/useRecommendedLessonsPage/index.js.map +1 -1
  41. package/dist/hooks/useRecommendedLessonsPage/index.mjs +39 -33
  42. package/dist/hooks/useRecommendedLessonsPage/index.mjs.map +1 -1
  43. package/dist/hooks/useRecommendedLessonsPage.d.ts +21 -21
  44. package/dist/hooks/useRecommendedLessonsPage.d.ts.map +1 -1
  45. package/dist/index.d.ts +14 -11
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +359 -288
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +329 -262
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/store/notificationStore.d.ts.map +1 -1
  52. package/dist/types/activitiesHistory/index.js.map +1 -1
  53. package/dist/types/activitiesHistory/index.mjs.map +1 -1
  54. package/dist/types/common.d.ts +2 -2
  55. package/dist/types/lessonAvailability.d.ts +33 -0
  56. package/dist/types/lessonAvailability.d.ts.map +1 -0
  57. package/dist/types/notifications.d.ts +5 -5
  58. package/dist/types/notifications.d.ts.map +1 -1
  59. package/dist/types/recommendedLessons/index.d.ts +112 -112
  60. package/dist/types/recommendedLessons/index.d.ts.map +1 -1
  61. package/dist/types/recommendedLessons/index.js +25 -25
  62. package/dist/types/recommendedLessons/index.js.map +1 -1
  63. package/dist/types/recommendedLessons/index.mjs +17 -17
  64. package/dist/types/recommendedLessons/index.mjs.map +1 -1
  65. package/dist/types/recommendedLessons.d.ts +112 -112
  66. package/dist/types/recommendedLessons.d.ts.map +1 -1
  67. package/dist/utils/lessonAvailabilityUtils.d.ts +45 -0
  68. package/dist/utils/lessonAvailabilityUtils.d.ts.map +1 -0
  69. package/package.json +1 -1
  70. package/dist/hooks/useGoalDrafts/index.d.ts +0 -57
  71. package/dist/hooks/useGoalDrafts/index.d.ts.map +0 -1
  72. package/dist/hooks/useGoalDrafts/index.js.map +0 -1
  73. package/dist/hooks/useGoalDrafts/index.mjs.map +0 -1
  74. package/dist/hooks/useGoalDrafts.d.ts +0 -57
  75. package/dist/hooks/useGoalDrafts.d.ts.map +0 -1
  76. package/dist/hooks/useGoalModels.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useRecommendedLessons.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { z } from 'zod';\nimport dayjs from 'dayjs';\nimport { GoalDisplayStatus } from '../types/recommendedLessons';\nimport type {\n GoalHistoryItem,\n GoalTableItem,\n GoalsHistoryApiResponse,\n GoalHistoryFilters,\n GoalHistoryPagination,\n} from '../types/recommendedLessons';\n\n/**\n * Zod schema for goal history API response validation\n * Based on /recommended-class/history endpoint\n */\nconst goalSubjectSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst goalCreatorSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst goalStatsSchema = z.object({\n totalStudents: z.number(),\n completedCount: z.number(),\n completionPercentage: z.number(),\n});\n\nconst goalBreakdownSchema = z.object({\n classId: z.string().uuid(),\n className: z.string(),\n schoolId: z.string(),\n schoolName: z.string(),\n studentCount: z.number(),\n completedCount: z.number(),\n});\n\nconst goalDataSchema = z.object({\n id: z.string().uuid(),\n title: z.string(),\n startDate: z.string().nullable(),\n finalDate: z.string().nullable(),\n createdAt: z.string(),\n progress: z.number(),\n totalLessons: z.number(),\n});\n\nconst goalHistoryItemSchema = z.object({\n goal: goalDataSchema,\n subject: goalSubjectSchema,\n creator: goalCreatorSchema,\n stats: goalStatsSchema,\n breakdown: z.array(goalBreakdownSchema),\n});\n\nexport const goalsHistoryApiResponseSchema = z.object({\n message: z.string(),\n data: z.object({\n goals: z.array(goalHistoryItemSchema),\n total: z.number(),\n }),\n});\n\n/**\n * Hook state interface\n */\nexport interface UseRecommendedLessonsHistoryState {\n goals: GoalTableItem[];\n loading: boolean;\n error: string | null;\n pagination: GoalHistoryPagination;\n}\n\n/**\n * Hook return type\n */\nexport interface UseRecommendedLessonsHistoryReturn\n extends UseRecommendedLessonsHistoryState {\n fetchGoals: (filters?: GoalHistoryFilters) => Promise<void>;\n}\n\n/**\n * Determine status based on dates and completion\n * @param finalDate - Goal final date\n * @param completionPercentage - Completion percentage\n * @returns Display status for UI\n */\nexport const determineGoalStatus = (\n finalDate: string | null,\n completionPercentage: number\n): GoalDisplayStatus => {\n if (completionPercentage === 100) {\n return GoalDisplayStatus.CONCLUIDA;\n }\n\n if (finalDate) {\n const now = dayjs();\n const deadline = dayjs(finalDate);\n if (deadline.isBefore(now)) {\n return GoalDisplayStatus.VENCIDA;\n }\n }\n\n return GoalDisplayStatus.ATIVA;\n};\n\n/**\n * Transform API response to table item format\n * @param item - Goal history item from API response\n * @returns Formatted goal for table display\n */\nexport const transformGoalToTableItem = (\n item: GoalHistoryItem\n): GoalTableItem => {\n // Get first breakdown for school/class info (or aggregate)\n const firstBreakdown = item.breakdown[0];\n const schoolName = firstBreakdown?.schoolName || '-';\n const className = firstBreakdown?.className || '-';\n\n // If multiple classes, show count\n const classDisplay =\n item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;\n\n return {\n id: item.goal.id,\n startDate: item.goal.startDate\n ? dayjs(item.goal.startDate).format('DD/MM')\n : '-',\n deadline: item.goal.finalDate\n ? dayjs(item.goal.finalDate).format('DD/MM')\n : '-',\n title: item.goal.title,\n school: schoolName,\n year: '-', // API doesn't provide year directly\n subject: item.subject?.name || '-',\n class: classDisplay,\n status: determineGoalStatus(\n item.goal.finalDate,\n item.stats.completionPercentage\n ),\n completionPercentage: item.stats.completionPercentage,\n };\n};\n\n/**\n * Handle errors during goal fetch\n * @param error - Error object\n * @returns Error message for UI display\n */\nexport const handleGoalFetchError = (error: unknown): string => {\n if (error instanceof z.ZodError) {\n console.error('Erro ao validar dados de histórico de aulas:', error);\n return 'Erro ao validar dados de histórico de aulas';\n }\n\n console.error('Erro ao carregar histórico de aulas:', error);\n return 'Erro ao carregar histórico de aulas';\n};\n\n/**\n * Factory function to create useRecommendedLessonsHistory hook\n *\n * @param fetchGoalsHistory - Function to fetch goals from API\n * @returns Hook for managing recommended lessons history\n *\n * @example\n * ```tsx\n * // In your app setup\n * const fetchGoalsHistory = async (filters) => {\n * const response = await api.get('/recommended-class/history', { params: filters });\n * return response.data;\n * };\n *\n * const useGoalsHistory = createUseRecommendedLessonsHistory(fetchGoalsHistory);\n *\n * // In your component\n * const { goals, loading, error, pagination, fetchGoals } = useGoalsHistory();\n * ```\n */\nexport const createUseRecommendedLessonsHistory = (\n fetchGoalsHistory: (\n filters?: GoalHistoryFilters\n ) => Promise<GoalsHistoryApiResponse>\n) => {\n return (): UseRecommendedLessonsHistoryReturn => {\n const [state, setState] = useState<UseRecommendedLessonsHistoryState>({\n goals: [],\n loading: false,\n error: null,\n pagination: {\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n },\n });\n\n /**\n * Fetch goals history from API\n * @param filters - Optional filters for pagination, search, sorting, etc.\n */\n const fetchGoals = useCallback(\n async (filters?: GoalHistoryFilters) => {\n setState((prev) => ({ ...prev, loading: true, error: null }));\n\n try {\n // Fetch data from API\n const responseData = await fetchGoalsHistory(filters);\n\n // Validate response with Zod\n const validatedData =\n goalsHistoryApiResponseSchema.parse(responseData);\n\n // Transform goals to table format\n const tableItems = validatedData.data.goals.map(\n transformGoalToTableItem\n );\n\n // Calculate pagination from total\n const page = filters?.page || 1;\n const limit = filters?.limit || 10;\n const total = validatedData.data.total;\n const totalPages = Math.ceil(total / limit);\n\n // Update state with validated and transformed data\n setState({\n goals: tableItems,\n loading: false,\n error: null,\n pagination: {\n total,\n page,\n limit,\n totalPages,\n },\n });\n } catch (error) {\n const errorMessage = handleGoalFetchError(error);\n setState((prev) => ({\n ...prev,\n loading: false,\n error: errorMessage,\n }));\n }\n },\n [fetchGoalsHistory]\n );\n\n return {\n ...state,\n fetchGoals,\n };\n };\n};\n\n/**\n * Alias for createUseRecommendedLessonsHistory\n */\nexport const createRecommendedLessonsHistoryHook =\n createUseRecommendedLessonsHistory;\n"],"mappings":"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","names":["dayjs"]}
1
+ {"version":3,"sources":["../../../src/hooks/useRecommendedLessons.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { z } from 'zod';\nimport dayjs from 'dayjs';\nimport { RecommendedClassDisplayStatus } from '../types/recommendedLessons';\nimport type {\n RecommendedClassHistoryItem,\n RecommendedClassTableItem,\n RecommendedClassHistoryApiResponse,\n RecommendedClassHistoryFilters,\n RecommendedClassHistoryPagination,\n} from '../types/recommendedLessons';\n\n/**\n * Zod schema for recommendedClass history API response validation\n * Based on /recommended-class/history endpoint\n */\nconst recommendedClassSubjectSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst recommendedClassCreatorSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst recommendedClassStatsSchema = z.object({\n totalStudents: z.number(),\n completedCount: z.number(),\n completionPercentage: z.number(),\n});\n\nconst recommendedClassBreakdownSchema = z.object({\n classId: z.string().uuid(),\n className: z.string(),\n schoolId: z.string(),\n schoolName: z.string(),\n studentCount: z.number(),\n completedCount: z.number(),\n});\n\nconst recommendedClassDataSchema = z.object({\n id: z.string().uuid(),\n title: z.string(),\n startDate: z.string().nullable(),\n finalDate: z.string().nullable(),\n createdAt: z.string(),\n progress: z.number(),\n totalLessons: z.number(),\n});\n\nconst recommendedClassHistoryItemSchema = z.object({\n recommendedClass: recommendedClassDataSchema,\n subject: recommendedClassSubjectSchema,\n creator: recommendedClassCreatorSchema,\n stats: recommendedClassStatsSchema,\n breakdown: z.array(recommendedClassBreakdownSchema),\n});\n\nexport const recommendedClassHistoryApiResponseSchema = z.object({\n message: z.string(),\n data: z.object({\n recommendedClass: z.array(recommendedClassHistoryItemSchema),\n total: z.number(),\n }),\n});\n\n/**\n * Hook state interface\n */\nexport interface UseRecommendedLessonsHistoryState {\n recommendedClass: RecommendedClassTableItem[];\n loading: boolean;\n error: string | null;\n pagination: RecommendedClassHistoryPagination;\n}\n\n/**\n * Hook return type\n */\nexport interface UseRecommendedLessonsHistoryReturn\n extends UseRecommendedLessonsHistoryState {\n fetchRecommendedClass: (\n filters?: RecommendedClassHistoryFilters\n ) => Promise<void>;\n}\n\n/**\n * Determine status based on dates and completion\n * @param finalDate - RecommendedClass final date\n * @param completionPercentage - Completion percentage\n * @returns Display status for UI\n */\nexport const determineRecommendedClassStatus = (\n finalDate: string | null,\n completionPercentage: number\n): RecommendedClassDisplayStatus => {\n if (completionPercentage === 100) {\n return RecommendedClassDisplayStatus.CONCLUIDA;\n }\n\n if (finalDate) {\n const now = dayjs();\n const deadline = dayjs(finalDate);\n if (deadline.isBefore(now)) {\n return RecommendedClassDisplayStatus.VENCIDA;\n }\n }\n\n return RecommendedClassDisplayStatus.ATIVA;\n};\n\n/**\n * Transform API response to table item format\n * @param item - RecommendedClass history item from API response\n * @returns Formatted recommendedClass for table display\n */\nexport const transformRecommendedClassToTableItem = (\n item: RecommendedClassHistoryItem\n): RecommendedClassTableItem => {\n // Get first breakdown for school/class info (or aggregate)\n const firstBreakdown = item.breakdown[0];\n const schoolName = firstBreakdown?.schoolName || '-';\n const className = firstBreakdown?.className || '-';\n\n // If multiple classes, show count\n const classDisplay =\n item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;\n\n return {\n id: item.recommendedClass.id,\n startDate: item.recommendedClass.startDate\n ? dayjs(item.recommendedClass.startDate).format('DD/MM')\n : '-',\n deadline: item.recommendedClass.finalDate\n ? dayjs(item.recommendedClass.finalDate).format('DD/MM')\n : '-',\n title: item.recommendedClass.title,\n school: schoolName,\n year: '-', // API doesn't provide year directly\n subject: item.subject?.name || '-',\n class: classDisplay,\n status: determineRecommendedClassStatus(\n item.recommendedClass.finalDate,\n item.stats.completionPercentage\n ),\n completionPercentage: item.stats.completionPercentage,\n };\n};\n\n/**\n * Handle errors during recommendedClass fetch\n * @param error - Error object\n * @returns Error message for UI display\n */\nexport const handleRecommendedClassFetchError = (error: unknown): string => {\n if (error instanceof z.ZodError) {\n console.error('Erro ao validar dados de histórico de aulas:', error);\n return 'Erro ao validar dados de histórico de aulas';\n }\n\n console.error('Erro ao carregar histórico de aulas:', error);\n return 'Erro ao carregar histórico de aulas';\n};\n\n/**\n * Factory function to create useRecommendedLessonsHistory hook\n *\n * @param fetchRecommendedClassHistory - Function to fetch recommendedClass from API\n * @returns Hook for managing recommended lessons history\n *\n * @example\n * ```tsx\n * // In your app setup\n * const fetchRecommendedClassHistory = async (filters) => {\n * const response = await api.get('/recommended-class/history', { params: filters });\n * return response.data;\n * };\n *\n * const useRecommendedClassHistory = createUseRecommendedLessonsHistory(fetchRecommendedClassHistory);\n *\n * // In your component\n * const { recommendedClass, loading, error, pagination, fetchRecommendedClass } = useRecommendedClassHistory();\n * ```\n */\nexport const createUseRecommendedLessonsHistory = (\n fetchRecommendedClassHistory: (\n filters?: RecommendedClassHistoryFilters\n ) => Promise<RecommendedClassHistoryApiResponse>\n) => {\n return (): UseRecommendedLessonsHistoryReturn => {\n const [state, setState] = useState<UseRecommendedLessonsHistoryState>({\n recommendedClass: [],\n loading: false,\n error: null,\n pagination: {\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n },\n });\n\n /**\n * Fetch recommendedClass history from API\n * @param filters - Optional filters for pagination, search, sorting, etc.\n */\n const fetchRecommendedClass = useCallback(\n async (filters?: RecommendedClassHistoryFilters) => {\n setState((prev) => ({ ...prev, loading: true, error: null }));\n\n try {\n // Fetch data from API\n const responseData = await fetchRecommendedClassHistory(filters);\n\n // Validate response with Zod\n const validatedData =\n recommendedClassHistoryApiResponseSchema.parse(responseData);\n\n // Transform recommendedClass to table format\n const tableItems = validatedData.data.recommendedClass.map(\n transformRecommendedClassToTableItem\n );\n\n // Calculate pagination from total\n const page = filters?.page || 1;\n const limit = filters?.limit || 10;\n const total = validatedData.data.total;\n const totalPages = Math.ceil(total / limit);\n\n // Update state with validated and transformed data\n setState({\n recommendedClass: tableItems,\n loading: false,\n error: null,\n pagination: {\n total,\n page,\n limit,\n totalPages,\n },\n });\n } catch (error) {\n const errorMessage = handleRecommendedClassFetchError(error);\n setState((prev) => ({\n ...prev,\n loading: false,\n error: errorMessage,\n }));\n }\n },\n [fetchRecommendedClassHistory]\n );\n\n return {\n ...state,\n fetchRecommendedClass,\n };\n };\n};\n\n/**\n * Alias for createUseRecommendedLessonsHistory\n */\nexport const createRecommendedLessonsHistoryHook =\n createUseRecommendedLessonsHistory;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsC;AACtC,iBAAkB;AAClB,mBAAkB;AAclB,IAAM,gCAAgC,aACnC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,KAAK;AAAA,EACpB,MAAM,aAAE,OAAO;AACjB,CAAC,EACA,SAAS;AAEZ,IAAM,gCAAgC,aACnC,OAAO;AAAA,EACN,IAAI,aAAE,OAAO,EAAE,KAAK;AAAA,EACpB,MAAM,aAAE,OAAO;AACjB,CAAC,EACA,SAAS;AAEZ,IAAM,8BAA8B,aAAE,OAAO;AAAA,EAC3C,eAAe,aAAE,OAAO;AAAA,EACxB,gBAAgB,aAAE,OAAO;AAAA,EACzB,sBAAsB,aAAE,OAAO;AACjC,CAAC;AAED,IAAM,kCAAkC,aAAE,OAAO;AAAA,EAC/C,SAAS,aAAE,OAAO,EAAE,KAAK;AAAA,EACzB,WAAW,aAAE,OAAO;AAAA,EACpB,UAAU,aAAE,OAAO;AAAA,EACnB,YAAY,aAAE,OAAO;AAAA,EACrB,cAAc,aAAE,OAAO;AAAA,EACvB,gBAAgB,aAAE,OAAO;AAC3B,CAAC;AAED,IAAM,6BAA6B,aAAE,OAAO;AAAA,EAC1C,IAAI,aAAE,OAAO,EAAE,KAAK;AAAA,EACpB,OAAO,aAAE,OAAO;AAAA,EAChB,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,aAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,aAAE,OAAO;AAAA,EACpB,UAAU,aAAE,OAAO;AAAA,EACnB,cAAc,aAAE,OAAO;AACzB,CAAC;AAED,IAAM,oCAAoC,aAAE,OAAO;AAAA,EACjD,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW,aAAE,MAAM,+BAA+B;AACpD,CAAC;AAEM,IAAM,2CAA2C,aAAE,OAAO;AAAA,EAC/D,SAAS,aAAE,OAAO;AAAA,EAClB,MAAM,aAAE,OAAO;AAAA,IACb,kBAAkB,aAAE,MAAM,iCAAiC;AAAA,IAC3D,OAAO,aAAE,OAAO;AAAA,EAClB,CAAC;AACH,CAAC;AA4BM,IAAM,kCAAkC,CAC7C,WACA,yBACkC;AAClC,MAAI,yBAAyB,KAAK;AAChC;AAAA,EACF;AAEA,MAAI,WAAW;AACb,UAAM,UAAM,aAAAA,SAAM;AAClB,UAAM,eAAW,aAAAA,SAAM,SAAS;AAChC,QAAI,SAAS,SAAS,GAAG,GAAG;AAC1B;AAAA,IACF;AAAA,EACF;AAEA;AACF;AAOO,IAAM,uCAAuC,CAClD,SAC8B;AAE9B,QAAM,iBAAiB,KAAK,UAAU,CAAC;AACvC,QAAM,aAAa,gBAAgB,cAAc;AACjD,QAAM,YAAY,gBAAgB,aAAa;AAG/C,QAAM,eACJ,KAAK,UAAU,SAAS,IAAI,GAAG,KAAK,UAAU,MAAM,YAAY;AAElE,SAAO;AAAA,IACL,IAAI,KAAK,iBAAiB;AAAA,IAC1B,WAAW,KAAK,iBAAiB,gBAC7B,aAAAA,SAAM,KAAK,iBAAiB,SAAS,EAAE,OAAO,OAAO,IACrD;AAAA,IACJ,UAAU,KAAK,iBAAiB,gBAC5B,aAAAA,SAAM,KAAK,iBAAiB,SAAS,EAAE,OAAO,OAAO,IACrD;AAAA,IACJ,OAAO,KAAK,iBAAiB;AAAA,IAC7B,QAAQ;AAAA,IACR,MAAM;AAAA;AAAA,IACN,SAAS,KAAK,SAAS,QAAQ;AAAA,IAC/B,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,KAAK,iBAAiB;AAAA,MACtB,KAAK,MAAM;AAAA,IACb;AAAA,IACA,sBAAsB,KAAK,MAAM;AAAA,EACnC;AACF;AAOO,IAAM,mCAAmC,CAAC,UAA2B;AAC1E,MAAI,iBAAiB,aAAE,UAAU;AAC/B,YAAQ,MAAM,mDAAgD,KAAK;AACnE,WAAO;AAAA,EACT;AAEA,UAAQ,MAAM,2CAAwC,KAAK;AAC3D,SAAO;AACT;AAsBO,IAAM,qCAAqC,CAChD,iCAGG;AACH,SAAO,MAA0C;AAC/C,UAAM,CAAC,OAAO,QAAQ,QAAI,uBAA4C;AAAA,MACpE,kBAAkB,CAAC;AAAA,MACnB,SAAS;AAAA,MACT,OAAO;AAAA,MACP,YAAY;AAAA,QACV,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF,CAAC;AAMD,UAAM,4BAAwB;AAAA,MAC5B,OAAO,YAA6C;AAClD,iBAAS,CAAC,UAAU,EAAE,GAAG,MAAM,SAAS,MAAM,OAAO,KAAK,EAAE;AAE5D,YAAI;AAEF,gBAAM,eAAe,MAAM,6BAA6B,OAAO;AAG/D,gBAAM,gBACJ,yCAAyC,MAAM,YAAY;AAG7D,gBAAM,aAAa,cAAc,KAAK,iBAAiB;AAAA,YACrD;AAAA,UACF;AAGA,gBAAM,OAAO,SAAS,QAAQ;AAC9B,gBAAM,QAAQ,SAAS,SAAS;AAChC,gBAAM,QAAQ,cAAc,KAAK;AACjC,gBAAM,aAAa,KAAK,KAAK,QAAQ,KAAK;AAG1C,mBAAS;AAAA,YACP,kBAAkB;AAAA,YAClB,SAAS;AAAA,YACT,OAAO;AAAA,YACP,YAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,SAAS,OAAO;AACd,gBAAM,eAAe,iCAAiC,KAAK;AAC3D,mBAAS,CAAC,UAAU;AAAA,YAClB,GAAG;AAAA,YACH,SAAS;AAAA,YACT,OAAO;AAAA,UACT,EAAE;AAAA,QACJ;AAAA,MACF;AAAA,MACA,CAAC,4BAA4B;AAAA,IAC/B;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;AAKO,IAAM,sCACX;","names":["dayjs"]}
@@ -2,20 +2,20 @@
2
2
  import { useState, useCallback } from "react";
3
3
  import { z } from "zod";
4
4
  import dayjs from "dayjs";
5
- var goalSubjectSchema = z.object({
5
+ var recommendedClassSubjectSchema = z.object({
6
6
  id: z.string().uuid(),
7
7
  name: z.string()
8
8
  }).nullable();
9
- var goalCreatorSchema = z.object({
9
+ var recommendedClassCreatorSchema = z.object({
10
10
  id: z.string().uuid(),
11
11
  name: z.string()
12
12
  }).nullable();
13
- var goalStatsSchema = z.object({
13
+ var recommendedClassStatsSchema = z.object({
14
14
  totalStudents: z.number(),
15
15
  completedCount: z.number(),
16
16
  completionPercentage: z.number()
17
17
  });
18
- var goalBreakdownSchema = z.object({
18
+ var recommendedClassBreakdownSchema = z.object({
19
19
  classId: z.string().uuid(),
20
20
  className: z.string(),
21
21
  schoolId: z.string(),
@@ -23,7 +23,7 @@ var goalBreakdownSchema = z.object({
23
23
  studentCount: z.number(),
24
24
  completedCount: z.number()
25
25
  });
26
- var goalDataSchema = z.object({
26
+ var recommendedClassDataSchema = z.object({
27
27
  id: z.string().uuid(),
28
28
  title: z.string(),
29
29
  startDate: z.string().nullable(),
@@ -32,21 +32,21 @@ var goalDataSchema = z.object({
32
32
  progress: z.number(),
33
33
  totalLessons: z.number()
34
34
  });
35
- var goalHistoryItemSchema = z.object({
36
- goal: goalDataSchema,
37
- subject: goalSubjectSchema,
38
- creator: goalCreatorSchema,
39
- stats: goalStatsSchema,
40
- breakdown: z.array(goalBreakdownSchema)
35
+ var recommendedClassHistoryItemSchema = z.object({
36
+ recommendedClass: recommendedClassDataSchema,
37
+ subject: recommendedClassSubjectSchema,
38
+ creator: recommendedClassCreatorSchema,
39
+ stats: recommendedClassStatsSchema,
40
+ breakdown: z.array(recommendedClassBreakdownSchema)
41
41
  });
42
- var goalsHistoryApiResponseSchema = z.object({
42
+ var recommendedClassHistoryApiResponseSchema = z.object({
43
43
  message: z.string(),
44
44
  data: z.object({
45
- goals: z.array(goalHistoryItemSchema),
45
+ recommendedClass: z.array(recommendedClassHistoryItemSchema),
46
46
  total: z.number()
47
47
  })
48
48
  });
49
- var determineGoalStatus = (finalDate, completionPercentage) => {
49
+ var determineRecommendedClassStatus = (finalDate, completionPercentage) => {
50
50
  if (completionPercentage === 100) {
51
51
  return "CONCLU\xCDDA" /* CONCLUIDA */;
52
52
  }
@@ -59,29 +59,29 @@ var determineGoalStatus = (finalDate, completionPercentage) => {
59
59
  }
60
60
  return "ATIVA" /* ATIVA */;
61
61
  };
62
- var transformGoalToTableItem = (item) => {
62
+ var transformRecommendedClassToTableItem = (item) => {
63
63
  const firstBreakdown = item.breakdown[0];
64
64
  const schoolName = firstBreakdown?.schoolName || "-";
65
65
  const className = firstBreakdown?.className || "-";
66
66
  const classDisplay = item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;
67
67
  return {
68
- id: item.goal.id,
69
- startDate: item.goal.startDate ? dayjs(item.goal.startDate).format("DD/MM") : "-",
70
- deadline: item.goal.finalDate ? dayjs(item.goal.finalDate).format("DD/MM") : "-",
71
- title: item.goal.title,
68
+ id: item.recommendedClass.id,
69
+ startDate: item.recommendedClass.startDate ? dayjs(item.recommendedClass.startDate).format("DD/MM") : "-",
70
+ deadline: item.recommendedClass.finalDate ? dayjs(item.recommendedClass.finalDate).format("DD/MM") : "-",
71
+ title: item.recommendedClass.title,
72
72
  school: schoolName,
73
73
  year: "-",
74
74
  // API doesn't provide year directly
75
75
  subject: item.subject?.name || "-",
76
76
  class: classDisplay,
77
- status: determineGoalStatus(
78
- item.goal.finalDate,
77
+ status: determineRecommendedClassStatus(
78
+ item.recommendedClass.finalDate,
79
79
  item.stats.completionPercentage
80
80
  ),
81
81
  completionPercentage: item.stats.completionPercentage
82
82
  };
83
83
  };
84
- var handleGoalFetchError = (error) => {
84
+ var handleRecommendedClassFetchError = (error) => {
85
85
  if (error instanceof z.ZodError) {
86
86
  console.error("Erro ao validar dados de hist\xF3rico de aulas:", error);
87
87
  return "Erro ao validar dados de hist\xF3rico de aulas";
@@ -89,10 +89,10 @@ var handleGoalFetchError = (error) => {
89
89
  console.error("Erro ao carregar hist\xF3rico de aulas:", error);
90
90
  return "Erro ao carregar hist\xF3rico de aulas";
91
91
  };
92
- var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
92
+ var createUseRecommendedLessonsHistory = (fetchRecommendedClassHistory) => {
93
93
  return () => {
94
94
  const [state, setState] = useState({
95
- goals: [],
95
+ recommendedClass: [],
96
96
  loading: false,
97
97
  error: null,
98
98
  pagination: {
@@ -102,21 +102,21 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
102
102
  totalPages: 0
103
103
  }
104
104
  });
105
- const fetchGoals = useCallback(
105
+ const fetchRecommendedClass = useCallback(
106
106
  async (filters) => {
107
107
  setState((prev) => ({ ...prev, loading: true, error: null }));
108
108
  try {
109
- const responseData = await fetchGoalsHistory(filters);
110
- const validatedData = goalsHistoryApiResponseSchema.parse(responseData);
111
- const tableItems = validatedData.data.goals.map(
112
- transformGoalToTableItem
109
+ const responseData = await fetchRecommendedClassHistory(filters);
110
+ const validatedData = recommendedClassHistoryApiResponseSchema.parse(responseData);
111
+ const tableItems = validatedData.data.recommendedClass.map(
112
+ transformRecommendedClassToTableItem
113
113
  );
114
114
  const page = filters?.page || 1;
115
115
  const limit = filters?.limit || 10;
116
116
  const total = validatedData.data.total;
117
117
  const totalPages = Math.ceil(total / limit);
118
118
  setState({
119
- goals: tableItems,
119
+ recommendedClass: tableItems,
120
120
  loading: false,
121
121
  error: null,
122
122
  pagination: {
@@ -127,7 +127,7 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
127
127
  }
128
128
  });
129
129
  } catch (error) {
130
- const errorMessage = handleGoalFetchError(error);
130
+ const errorMessage = handleRecommendedClassFetchError(error);
131
131
  setState((prev) => ({
132
132
  ...prev,
133
133
  loading: false,
@@ -135,11 +135,11 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
135
135
  }));
136
136
  }
137
137
  },
138
- [fetchGoalsHistory]
138
+ [fetchRecommendedClassHistory]
139
139
  );
140
140
  return {
141
141
  ...state,
142
- fetchGoals
142
+ fetchRecommendedClass
143
143
  };
144
144
  };
145
145
  };
@@ -147,9 +147,9 @@ var createRecommendedLessonsHistoryHook = createUseRecommendedLessonsHistory;
147
147
  export {
148
148
  createRecommendedLessonsHistoryHook,
149
149
  createUseRecommendedLessonsHistory,
150
- determineGoalStatus,
151
- goalsHistoryApiResponseSchema,
152
- handleGoalFetchError,
153
- transformGoalToTableItem
150
+ determineRecommendedClassStatus,
151
+ handleRecommendedClassFetchError,
152
+ recommendedClassHistoryApiResponseSchema,
153
+ transformRecommendedClassToTableItem
154
154
  };
155
155
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useRecommendedLessons.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { z } from 'zod';\nimport dayjs from 'dayjs';\nimport { GoalDisplayStatus } from '../types/recommendedLessons';\nimport type {\n GoalHistoryItem,\n GoalTableItem,\n GoalsHistoryApiResponse,\n GoalHistoryFilters,\n GoalHistoryPagination,\n} from '../types/recommendedLessons';\n\n/**\n * Zod schema for goal history API response validation\n * Based on /recommended-class/history endpoint\n */\nconst goalSubjectSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst goalCreatorSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst goalStatsSchema = z.object({\n totalStudents: z.number(),\n completedCount: z.number(),\n completionPercentage: z.number(),\n});\n\nconst goalBreakdownSchema = z.object({\n classId: z.string().uuid(),\n className: z.string(),\n schoolId: z.string(),\n schoolName: z.string(),\n studentCount: z.number(),\n completedCount: z.number(),\n});\n\nconst goalDataSchema = z.object({\n id: z.string().uuid(),\n title: z.string(),\n startDate: z.string().nullable(),\n finalDate: z.string().nullable(),\n createdAt: z.string(),\n progress: z.number(),\n totalLessons: z.number(),\n});\n\nconst goalHistoryItemSchema = z.object({\n goal: goalDataSchema,\n subject: goalSubjectSchema,\n creator: goalCreatorSchema,\n stats: goalStatsSchema,\n breakdown: z.array(goalBreakdownSchema),\n});\n\nexport const goalsHistoryApiResponseSchema = z.object({\n message: z.string(),\n data: z.object({\n goals: z.array(goalHistoryItemSchema),\n total: z.number(),\n }),\n});\n\n/**\n * Hook state interface\n */\nexport interface UseRecommendedLessonsHistoryState {\n goals: GoalTableItem[];\n loading: boolean;\n error: string | null;\n pagination: GoalHistoryPagination;\n}\n\n/**\n * Hook return type\n */\nexport interface UseRecommendedLessonsHistoryReturn\n extends UseRecommendedLessonsHistoryState {\n fetchGoals: (filters?: GoalHistoryFilters) => Promise<void>;\n}\n\n/**\n * Determine status based on dates and completion\n * @param finalDate - Goal final date\n * @param completionPercentage - Completion percentage\n * @returns Display status for UI\n */\nexport const determineGoalStatus = (\n finalDate: string | null,\n completionPercentage: number\n): GoalDisplayStatus => {\n if (completionPercentage === 100) {\n return GoalDisplayStatus.CONCLUIDA;\n }\n\n if (finalDate) {\n const now = dayjs();\n const deadline = dayjs(finalDate);\n if (deadline.isBefore(now)) {\n return GoalDisplayStatus.VENCIDA;\n }\n }\n\n return GoalDisplayStatus.ATIVA;\n};\n\n/**\n * Transform API response to table item format\n * @param item - Goal history item from API response\n * @returns Formatted goal for table display\n */\nexport const transformGoalToTableItem = (\n item: GoalHistoryItem\n): GoalTableItem => {\n // Get first breakdown for school/class info (or aggregate)\n const firstBreakdown = item.breakdown[0];\n const schoolName = firstBreakdown?.schoolName || '-';\n const className = firstBreakdown?.className || '-';\n\n // If multiple classes, show count\n const classDisplay =\n item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;\n\n return {\n id: item.goal.id,\n startDate: item.goal.startDate\n ? dayjs(item.goal.startDate).format('DD/MM')\n : '-',\n deadline: item.goal.finalDate\n ? dayjs(item.goal.finalDate).format('DD/MM')\n : '-',\n title: item.goal.title,\n school: schoolName,\n year: '-', // API doesn't provide year directly\n subject: item.subject?.name || '-',\n class: classDisplay,\n status: determineGoalStatus(\n item.goal.finalDate,\n item.stats.completionPercentage\n ),\n completionPercentage: item.stats.completionPercentage,\n };\n};\n\n/**\n * Handle errors during goal fetch\n * @param error - Error object\n * @returns Error message for UI display\n */\nexport const handleGoalFetchError = (error: unknown): string => {\n if (error instanceof z.ZodError) {\n console.error('Erro ao validar dados de histórico de aulas:', error);\n return 'Erro ao validar dados de histórico de aulas';\n }\n\n console.error('Erro ao carregar histórico de aulas:', error);\n return 'Erro ao carregar histórico de aulas';\n};\n\n/**\n * Factory function to create useRecommendedLessonsHistory hook\n *\n * @param fetchGoalsHistory - Function to fetch goals from API\n * @returns Hook for managing recommended lessons history\n *\n * @example\n * ```tsx\n * // In your app setup\n * const fetchGoalsHistory = async (filters) => {\n * const response = await api.get('/recommended-class/history', { params: filters });\n * return response.data;\n * };\n *\n * const useGoalsHistory = createUseRecommendedLessonsHistory(fetchGoalsHistory);\n *\n * // In your component\n * const { goals, loading, error, pagination, fetchGoals } = useGoalsHistory();\n * ```\n */\nexport const createUseRecommendedLessonsHistory = (\n fetchGoalsHistory: (\n filters?: GoalHistoryFilters\n ) => Promise<GoalsHistoryApiResponse>\n) => {\n return (): UseRecommendedLessonsHistoryReturn => {\n const [state, setState] = useState<UseRecommendedLessonsHistoryState>({\n goals: [],\n loading: false,\n error: null,\n pagination: {\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n },\n });\n\n /**\n * Fetch goals history from API\n * @param filters - Optional filters for pagination, search, sorting, etc.\n */\n const fetchGoals = useCallback(\n async (filters?: GoalHistoryFilters) => {\n setState((prev) => ({ ...prev, loading: true, error: null }));\n\n try {\n // Fetch data from API\n const responseData = await fetchGoalsHistory(filters);\n\n // Validate response with Zod\n const validatedData =\n goalsHistoryApiResponseSchema.parse(responseData);\n\n // Transform goals to table format\n const tableItems = validatedData.data.goals.map(\n transformGoalToTableItem\n );\n\n // Calculate pagination from total\n const page = filters?.page || 1;\n const limit = filters?.limit || 10;\n const total = validatedData.data.total;\n const totalPages = Math.ceil(total / limit);\n\n // Update state with validated and transformed data\n setState({\n goals: tableItems,\n loading: false,\n error: null,\n pagination: {\n total,\n page,\n limit,\n totalPages,\n },\n });\n } catch (error) {\n const errorMessage = handleGoalFetchError(error);\n setState((prev) => ({\n ...prev,\n loading: false,\n error: errorMessage,\n }));\n }\n },\n [fetchGoalsHistory]\n );\n\n return {\n ...state,\n fetchGoals,\n };\n };\n};\n\n/**\n * Alias for createUseRecommendedLessonsHistory\n */\nexport const createRecommendedLessonsHistoryHook =\n createUseRecommendedLessonsHistory;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/hooks/useRecommendedLessons.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { z } from 'zod';\nimport dayjs from 'dayjs';\nimport { RecommendedClassDisplayStatus } from '../types/recommendedLessons';\nimport type {\n RecommendedClassHistoryItem,\n RecommendedClassTableItem,\n RecommendedClassHistoryApiResponse,\n RecommendedClassHistoryFilters,\n RecommendedClassHistoryPagination,\n} from '../types/recommendedLessons';\n\n/**\n * Zod schema for recommendedClass history API response validation\n * Based on /recommended-class/history endpoint\n */\nconst recommendedClassSubjectSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst recommendedClassCreatorSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n })\n .nullable();\n\nconst recommendedClassStatsSchema = z.object({\n totalStudents: z.number(),\n completedCount: z.number(),\n completionPercentage: z.number(),\n});\n\nconst recommendedClassBreakdownSchema = z.object({\n classId: z.string().uuid(),\n className: z.string(),\n schoolId: z.string(),\n schoolName: z.string(),\n studentCount: z.number(),\n completedCount: z.number(),\n});\n\nconst recommendedClassDataSchema = z.object({\n id: z.string().uuid(),\n title: z.string(),\n startDate: z.string().nullable(),\n finalDate: z.string().nullable(),\n createdAt: z.string(),\n progress: z.number(),\n totalLessons: z.number(),\n});\n\nconst recommendedClassHistoryItemSchema = z.object({\n recommendedClass: recommendedClassDataSchema,\n subject: recommendedClassSubjectSchema,\n creator: recommendedClassCreatorSchema,\n stats: recommendedClassStatsSchema,\n breakdown: z.array(recommendedClassBreakdownSchema),\n});\n\nexport const recommendedClassHistoryApiResponseSchema = z.object({\n message: z.string(),\n data: z.object({\n recommendedClass: z.array(recommendedClassHistoryItemSchema),\n total: z.number(),\n }),\n});\n\n/**\n * Hook state interface\n */\nexport interface UseRecommendedLessonsHistoryState {\n recommendedClass: RecommendedClassTableItem[];\n loading: boolean;\n error: string | null;\n pagination: RecommendedClassHistoryPagination;\n}\n\n/**\n * Hook return type\n */\nexport interface UseRecommendedLessonsHistoryReturn\n extends UseRecommendedLessonsHistoryState {\n fetchRecommendedClass: (\n filters?: RecommendedClassHistoryFilters\n ) => Promise<void>;\n}\n\n/**\n * Determine status based on dates and completion\n * @param finalDate - RecommendedClass final date\n * @param completionPercentage - Completion percentage\n * @returns Display status for UI\n */\nexport const determineRecommendedClassStatus = (\n finalDate: string | null,\n completionPercentage: number\n): RecommendedClassDisplayStatus => {\n if (completionPercentage === 100) {\n return RecommendedClassDisplayStatus.CONCLUIDA;\n }\n\n if (finalDate) {\n const now = dayjs();\n const deadline = dayjs(finalDate);\n if (deadline.isBefore(now)) {\n return RecommendedClassDisplayStatus.VENCIDA;\n }\n }\n\n return RecommendedClassDisplayStatus.ATIVA;\n};\n\n/**\n * Transform API response to table item format\n * @param item - RecommendedClass history item from API response\n * @returns Formatted recommendedClass for table display\n */\nexport const transformRecommendedClassToTableItem = (\n item: RecommendedClassHistoryItem\n): RecommendedClassTableItem => {\n // Get first breakdown for school/class info (or aggregate)\n const firstBreakdown = item.breakdown[0];\n const schoolName = firstBreakdown?.schoolName || '-';\n const className = firstBreakdown?.className || '-';\n\n // If multiple classes, show count\n const classDisplay =\n item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;\n\n return {\n id: item.recommendedClass.id,\n startDate: item.recommendedClass.startDate\n ? dayjs(item.recommendedClass.startDate).format('DD/MM')\n : '-',\n deadline: item.recommendedClass.finalDate\n ? dayjs(item.recommendedClass.finalDate).format('DD/MM')\n : '-',\n title: item.recommendedClass.title,\n school: schoolName,\n year: '-', // API doesn't provide year directly\n subject: item.subject?.name || '-',\n class: classDisplay,\n status: determineRecommendedClassStatus(\n item.recommendedClass.finalDate,\n item.stats.completionPercentage\n ),\n completionPercentage: item.stats.completionPercentage,\n };\n};\n\n/**\n * Handle errors during recommendedClass fetch\n * @param error - Error object\n * @returns Error message for UI display\n */\nexport const handleRecommendedClassFetchError = (error: unknown): string => {\n if (error instanceof z.ZodError) {\n console.error('Erro ao validar dados de histórico de aulas:', error);\n return 'Erro ao validar dados de histórico de aulas';\n }\n\n console.error('Erro ao carregar histórico de aulas:', error);\n return 'Erro ao carregar histórico de aulas';\n};\n\n/**\n * Factory function to create useRecommendedLessonsHistory hook\n *\n * @param fetchRecommendedClassHistory - Function to fetch recommendedClass from API\n * @returns Hook for managing recommended lessons history\n *\n * @example\n * ```tsx\n * // In your app setup\n * const fetchRecommendedClassHistory = async (filters) => {\n * const response = await api.get('/recommended-class/history', { params: filters });\n * return response.data;\n * };\n *\n * const useRecommendedClassHistory = createUseRecommendedLessonsHistory(fetchRecommendedClassHistory);\n *\n * // In your component\n * const { recommendedClass, loading, error, pagination, fetchRecommendedClass } = useRecommendedClassHistory();\n * ```\n */\nexport const createUseRecommendedLessonsHistory = (\n fetchRecommendedClassHistory: (\n filters?: RecommendedClassHistoryFilters\n ) => Promise<RecommendedClassHistoryApiResponse>\n) => {\n return (): UseRecommendedLessonsHistoryReturn => {\n const [state, setState] = useState<UseRecommendedLessonsHistoryState>({\n recommendedClass: [],\n loading: false,\n error: null,\n pagination: {\n total: 0,\n page: 1,\n limit: 10,\n totalPages: 0,\n },\n });\n\n /**\n * Fetch recommendedClass history from API\n * @param filters - Optional filters for pagination, search, sorting, etc.\n */\n const fetchRecommendedClass = useCallback(\n async (filters?: RecommendedClassHistoryFilters) => {\n setState((prev) => ({ ...prev, loading: true, error: null }));\n\n try {\n // Fetch data from API\n const responseData = await fetchRecommendedClassHistory(filters);\n\n // Validate response with Zod\n const validatedData =\n recommendedClassHistoryApiResponseSchema.parse(responseData);\n\n // Transform recommendedClass to table format\n const tableItems = validatedData.data.recommendedClass.map(\n transformRecommendedClassToTableItem\n );\n\n // Calculate pagination from total\n const page = filters?.page || 1;\n const limit = filters?.limit || 10;\n const total = validatedData.data.total;\n const totalPages = Math.ceil(total / limit);\n\n // Update state with validated and transformed data\n setState({\n recommendedClass: tableItems,\n loading: false,\n error: null,\n pagination: {\n total,\n page,\n limit,\n totalPages,\n },\n });\n } catch (error) {\n const errorMessage = handleRecommendedClassFetchError(error);\n setState((prev) => ({\n ...prev,\n loading: false,\n error: errorMessage,\n }));\n }\n },\n [fetchRecommendedClassHistory]\n );\n\n return {\n ...state,\n fetchRecommendedClass,\n };\n };\n};\n\n/**\n * Alias for createUseRecommendedLessonsHistory\n */\nexport const createRecommendedLessonsHistoryHook =\n createUseRecommendedLessonsHistory;\n"],"mappings":";AAAA,SAAS,UAAU,mBAAmB;AACtC,SAAS,SAAS;AAClB,OAAO,WAAW;AAclB,IAAM,gCAAgC,EACnC,OAAO;AAAA,EACN,IAAI,EAAE,OAAO,EAAE,KAAK;AAAA,EACpB,MAAM,EAAE,OAAO;AACjB,CAAC,EACA,SAAS;AAEZ,IAAM,gCAAgC,EACnC,OAAO;AAAA,EACN,IAAI,EAAE,OAAO,EAAE,KAAK;AAAA,EACpB,MAAM,EAAE,OAAO;AACjB,CAAC,EACA,SAAS;AAEZ,IAAM,8BAA8B,EAAE,OAAO;AAAA,EAC3C,eAAe,EAAE,OAAO;AAAA,EACxB,gBAAgB,EAAE,OAAO;AAAA,EACzB,sBAAsB,EAAE,OAAO;AACjC,CAAC;AAED,IAAM,kCAAkC,EAAE,OAAO;AAAA,EAC/C,SAAS,EAAE,OAAO,EAAE,KAAK;AAAA,EACzB,WAAW,EAAE,OAAO;AAAA,EACpB,UAAU,EAAE,OAAO;AAAA,EACnB,YAAY,EAAE,OAAO;AAAA,EACrB,cAAc,EAAE,OAAO;AAAA,EACvB,gBAAgB,EAAE,OAAO;AAC3B,CAAC;AAED,IAAM,6BAA6B,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,OAAO,EAAE,KAAK;AAAA,EACpB,OAAO,EAAE,OAAO;AAAA,EAChB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO;AAAA,EACpB,UAAU,EAAE,OAAO;AAAA,EACnB,cAAc,EAAE,OAAO;AACzB,CAAC;AAED,IAAM,oCAAoC,EAAE,OAAO;AAAA,EACjD,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW,EAAE,MAAM,+BAA+B;AACpD,CAAC;AAEM,IAAM,2CAA2C,EAAE,OAAO;AAAA,EAC/D,SAAS,EAAE,OAAO;AAAA,EAClB,MAAM,EAAE,OAAO;AAAA,IACb,kBAAkB,EAAE,MAAM,iCAAiC;AAAA,IAC3D,OAAO,EAAE,OAAO;AAAA,EAClB,CAAC;AACH,CAAC;AA4BM,IAAM,kCAAkC,CAC7C,WACA,yBACkC;AAClC,MAAI,yBAAyB,KAAK;AAChC;AAAA,EACF;AAEA,MAAI,WAAW;AACb,UAAM,MAAM,MAAM;AAClB,UAAM,WAAW,MAAM,SAAS;AAChC,QAAI,SAAS,SAAS,GAAG,GAAG;AAC1B;AAAA,IACF;AAAA,EACF;AAEA;AACF;AAOO,IAAM,uCAAuC,CAClD,SAC8B;AAE9B,QAAM,iBAAiB,KAAK,UAAU,CAAC;AACvC,QAAM,aAAa,gBAAgB,cAAc;AACjD,QAAM,YAAY,gBAAgB,aAAa;AAG/C,QAAM,eACJ,KAAK,UAAU,SAAS,IAAI,GAAG,KAAK,UAAU,MAAM,YAAY;AAElE,SAAO;AAAA,IACL,IAAI,KAAK,iBAAiB;AAAA,IAC1B,WAAW,KAAK,iBAAiB,YAC7B,MAAM,KAAK,iBAAiB,SAAS,EAAE,OAAO,OAAO,IACrD;AAAA,IACJ,UAAU,KAAK,iBAAiB,YAC5B,MAAM,KAAK,iBAAiB,SAAS,EAAE,OAAO,OAAO,IACrD;AAAA,IACJ,OAAO,KAAK,iBAAiB;AAAA,IAC7B,QAAQ;AAAA,IACR,MAAM;AAAA;AAAA,IACN,SAAS,KAAK,SAAS,QAAQ;AAAA,IAC/B,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,KAAK,iBAAiB;AAAA,MACtB,KAAK,MAAM;AAAA,IACb;AAAA,IACA,sBAAsB,KAAK,MAAM;AAAA,EACnC;AACF;AAOO,IAAM,mCAAmC,CAAC,UAA2B;AAC1E,MAAI,iBAAiB,EAAE,UAAU;AAC/B,YAAQ,MAAM,mDAAgD,KAAK;AACnE,WAAO;AAAA,EACT;AAEA,UAAQ,MAAM,2CAAwC,KAAK;AAC3D,SAAO;AACT;AAsBO,IAAM,qCAAqC,CAChD,iCAGG;AACH,SAAO,MAA0C;AAC/C,UAAM,CAAC,OAAO,QAAQ,IAAI,SAA4C;AAAA,MACpE,kBAAkB,CAAC;AAAA,MACnB,SAAS;AAAA,MACT,OAAO;AAAA,MACP,YAAY;AAAA,QACV,OAAO;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF,CAAC;AAMD,UAAM,wBAAwB;AAAA,MAC5B,OAAO,YAA6C;AAClD,iBAAS,CAAC,UAAU,EAAE,GAAG,MAAM,SAAS,MAAM,OAAO,KAAK,EAAE;AAE5D,YAAI;AAEF,gBAAM,eAAe,MAAM,6BAA6B,OAAO;AAG/D,gBAAM,gBACJ,yCAAyC,MAAM,YAAY;AAG7D,gBAAM,aAAa,cAAc,KAAK,iBAAiB;AAAA,YACrD;AAAA,UACF;AAGA,gBAAM,OAAO,SAAS,QAAQ;AAC9B,gBAAM,QAAQ,SAAS,SAAS;AAChC,gBAAM,QAAQ,cAAc,KAAK;AACjC,gBAAM,aAAa,KAAK,KAAK,QAAQ,KAAK;AAG1C,mBAAS;AAAA,YACP,kBAAkB;AAAA,YAClB,SAAS;AAAA,YACT,OAAO;AAAA,YACP,YAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,SAAS,OAAO;AACd,gBAAM,eAAe,iCAAiC,KAAK;AAC3D,mBAAS,CAAC,UAAU;AAAA,YAClB,GAAG;AAAA,YACH,SAAS;AAAA,YACT,OAAO;AAAA,UACT,EAAE;AAAA,QACJ;AAAA,MACF;AAAA,MACA,CAAC,4BAA4B;AAAA,IAC/B;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;AAKO,IAAM,sCACX;","names":[]}
@@ -1,11 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { GoalDisplayStatus } from '../types/recommendedLessons';
3
- import type { GoalHistoryItem, GoalTableItem, GoalsHistoryApiResponse, GoalHistoryFilters, GoalHistoryPagination } from '../types/recommendedLessons';
4
- export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
2
+ import { RecommendedClassDisplayStatus } from '../types/recommendedLessons';
3
+ import type { RecommendedClassHistoryItem, RecommendedClassTableItem, RecommendedClassHistoryApiResponse, RecommendedClassHistoryFilters, RecommendedClassHistoryPagination } from '../types/recommendedLessons';
4
+ export declare const recommendedClassHistoryApiResponseSchema: z.ZodObject<{
5
5
  message: z.ZodString;
6
6
  data: z.ZodObject<{
7
- goals: z.ZodArray<z.ZodObject<{
8
- goal: z.ZodObject<{
7
+ recommendedClass: z.ZodArray<z.ZodObject<{
8
+ recommendedClass: z.ZodObject<{
9
9
  id: z.ZodString;
10
10
  title: z.ZodString;
11
11
  startDate: z.ZodNullable<z.ZodString>;
@@ -86,7 +86,7 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
86
86
  studentCount: number;
87
87
  }>, "many">;
88
88
  }, "strip", z.ZodTypeAny, {
89
- goal: {
89
+ recommendedClass: {
90
90
  id: string;
91
91
  title: string;
92
92
  progress: number;
@@ -117,7 +117,7 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
117
117
  studentCount: number;
118
118
  }[];
119
119
  }, {
120
- goal: {
120
+ recommendedClass: {
121
121
  id: string;
122
122
  title: string;
123
123
  progress: number;
@@ -150,9 +150,8 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
150
150
  }>, "many">;
151
151
  total: z.ZodNumber;
152
152
  }, "strip", z.ZodTypeAny, {
153
- total: number;
154
- goals: {
155
- goal: {
153
+ recommendedClass: {
154
+ recommendedClass: {
156
155
  id: string;
157
156
  title: string;
158
157
  progress: number;
@@ -183,10 +182,10 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
183
182
  studentCount: number;
184
183
  }[];
185
184
  }[];
186
- }, {
187
185
  total: number;
188
- goals: {
189
- goal: {
186
+ }, {
187
+ recommendedClass: {
188
+ recommendedClass: {
190
189
  id: string;
191
190
  title: string;
192
191
  progress: number;
@@ -217,12 +216,12 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
217
216
  studentCount: number;
218
217
  }[];
219
218
  }[];
219
+ total: number;
220
220
  }>;
221
221
  }, "strip", z.ZodTypeAny, {
222
222
  data: {
223
- total: number;
224
- goals: {
225
- goal: {
223
+ recommendedClass: {
224
+ recommendedClass: {
226
225
  id: string;
227
226
  title: string;
228
227
  progress: number;
@@ -253,13 +252,13 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
253
252
  studentCount: number;
254
253
  }[];
255
254
  }[];
255
+ total: number;
256
256
  };
257
257
  message: string;
258
258
  }, {
259
259
  data: {
260
- total: number;
261
- goals: {
262
- goal: {
260
+ recommendedClass: {
261
+ recommendedClass: {
263
262
  id: string;
264
263
  title: string;
265
264
  progress: number;
@@ -290,6 +289,7 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
290
289
  studentCount: number;
291
290
  }[];
292
291
  }[];
292
+ total: number;
293
293
  };
294
294
  message: string;
295
295
  }>;
@@ -297,59 +297,59 @@ export declare const goalsHistoryApiResponseSchema: z.ZodObject<{
297
297
  * Hook state interface
298
298
  */
299
299
  export interface UseRecommendedLessonsHistoryState {
300
- goals: GoalTableItem[];
300
+ recommendedClass: RecommendedClassTableItem[];
301
301
  loading: boolean;
302
302
  error: string | null;
303
- pagination: GoalHistoryPagination;
303
+ pagination: RecommendedClassHistoryPagination;
304
304
  }
305
305
  /**
306
306
  * Hook return type
307
307
  */
308
308
  export interface UseRecommendedLessonsHistoryReturn extends UseRecommendedLessonsHistoryState {
309
- fetchGoals: (filters?: GoalHistoryFilters) => Promise<void>;
309
+ fetchRecommendedClass: (filters?: RecommendedClassHistoryFilters) => Promise<void>;
310
310
  }
311
311
  /**
312
312
  * Determine status based on dates and completion
313
- * @param finalDate - Goal final date
313
+ * @param finalDate - RecommendedClass final date
314
314
  * @param completionPercentage - Completion percentage
315
315
  * @returns Display status for UI
316
316
  */
317
- export declare const determineGoalStatus: (finalDate: string | null, completionPercentage: number) => GoalDisplayStatus;
317
+ export declare const determineRecommendedClassStatus: (finalDate: string | null, completionPercentage: number) => RecommendedClassDisplayStatus;
318
318
  /**
319
319
  * Transform API response to table item format
320
- * @param item - Goal history item from API response
321
- * @returns Formatted goal for table display
320
+ * @param item - RecommendedClass history item from API response
321
+ * @returns Formatted recommendedClass for table display
322
322
  */
323
- export declare const transformGoalToTableItem: (item: GoalHistoryItem) => GoalTableItem;
323
+ export declare const transformRecommendedClassToTableItem: (item: RecommendedClassHistoryItem) => RecommendedClassTableItem;
324
324
  /**
325
- * Handle errors during goal fetch
325
+ * Handle errors during recommendedClass fetch
326
326
  * @param error - Error object
327
327
  * @returns Error message for UI display
328
328
  */
329
- export declare const handleGoalFetchError: (error: unknown) => string;
329
+ export declare const handleRecommendedClassFetchError: (error: unknown) => string;
330
330
  /**
331
331
  * Factory function to create useRecommendedLessonsHistory hook
332
332
  *
333
- * @param fetchGoalsHistory - Function to fetch goals from API
333
+ * @param fetchRecommendedClassHistory - Function to fetch recommendedClass from API
334
334
  * @returns Hook for managing recommended lessons history
335
335
  *
336
336
  * @example
337
337
  * ```tsx
338
338
  * // In your app setup
339
- * const fetchGoalsHistory = async (filters) => {
339
+ * const fetchRecommendedClassHistory = async (filters) => {
340
340
  * const response = await api.get('/recommended-class/history', { params: filters });
341
341
  * return response.data;
342
342
  * };
343
343
  *
344
- * const useGoalsHistory = createUseRecommendedLessonsHistory(fetchGoalsHistory);
344
+ * const useRecommendedClassHistory = createUseRecommendedLessonsHistory(fetchRecommendedClassHistory);
345
345
  *
346
346
  * // In your component
347
- * const { goals, loading, error, pagination, fetchGoals } = useGoalsHistory();
347
+ * const { recommendedClass, loading, error, pagination, fetchRecommendedClass } = useRecommendedClassHistory();
348
348
  * ```
349
349
  */
350
- export declare const createUseRecommendedLessonsHistory: (fetchGoalsHistory: (filters?: GoalHistoryFilters) => Promise<GoalsHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
350
+ export declare const createUseRecommendedLessonsHistory: (fetchRecommendedClassHistory: (filters?: RecommendedClassHistoryFilters) => Promise<RecommendedClassHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
351
351
  /**
352
352
  * Alias for createUseRecommendedLessonsHistory
353
353
  */
354
- export declare const createRecommendedLessonsHistoryHook: (fetchGoalsHistory: (filters?: GoalHistoryFilters) => Promise<GoalsHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
354
+ export declare const createRecommendedLessonsHistoryHook: (fetchRecommendedClassHistory: (filters?: RecommendedClassHistoryFilters) => Promise<RecommendedClassHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
355
355
  //# sourceMappingURL=useRecommendedLessons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecommendedLessons.d.ts","sourceRoot":"","sources":["../../src/hooks/useRecommendedLessons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AAqDrC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMxC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kCACf,SAAQ,iCAAiC;IACzC,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,MAAM,GAAG,IAAI,EACxB,sBAAsB,MAAM,KAC3B,iBAcF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,eAAe,KACpB,aA6BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,MAQrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kCAAkC,GAC7C,mBAAmB,CACjB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,uBAAuB,CAAC,WAE1B,kCAqEZ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,sBA9E3B,CACjB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,uBAAuB,CAAC,WAE1B,kCA2EuB,CAAC"}
1
+ {"version":3,"file":"useRecommendedLessons.d.ts","sourceRoot":"","sources":["../../src/hooks/useRecommendedLessons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,kCAAkC,EAClC,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,6BAA6B,CAAC;AAqDrC,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnD,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,iCAAiC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,kCACf,SAAQ,iCAAiC;IACzC,qBAAqB,EAAE,CACrB,OAAO,CAAC,EAAE,8BAA8B,KACrC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,GAC1C,WAAW,MAAM,GAAG,IAAI,EACxB,sBAAsB,MAAM,KAC3B,6BAcF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,GAC/C,MAAM,2BAA2B,KAChC,yBA6BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,MAQjE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kCAAkC,GAC7C,8BAA8B,CAC5B,OAAO,CAAC,EAAE,8BAA8B,KACrC,OAAO,CAAC,kCAAkC,CAAC,WAErC,kCAqEZ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,iCA9EhB,CAC5B,OAAO,CAAC,EAAE,8BAA8B,KACrC,OAAO,CAAC,kCAAkC,CAAC,WAErC,kCA2EuB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Factory function to create a hook for RecommendedLessons, LessonDrafts, and LessonModels pages.
5
5
  * Contains all common state, memos, and callbacks.
6
6
  */
7
- import { type GoalHistoryFilters, type GoalsHistoryApiResponse, type GoalTableItem, type GoalModelFilters, type GoalModelsApiResponse, type GoalModelTableItem } from '../types/recommendedLessons';
7
+ import { type RecommendedClassHistoryFilters, type RecommendedClassHistoryApiResponse, type RecommendedClassTableItem, type RecommendedClassModelFilters, type RecommendedClassModelsApiResponse, type RecommendedClassModelTableItem } from '../types/recommendedLessons';
8
8
  import type { SendLessonFormData, CategoryConfig } from '../components/SendLessonModal/types';
9
9
  import { SubjectEnum } from '../enums/SubjectEnum';
10
10
  /**
@@ -79,12 +79,12 @@ export interface RecommendedLessonsPagePaths {
79
79
  * API endpoints configuration
80
80
  */
81
81
  export interface RecommendedLessonsPageEndpoints {
82
- /** Endpoint for fetching goals history */
83
- goalsHistory: string;
84
- /** Endpoint for fetching goal models/drafts */
85
- goalDrafts: string;
86
- /** Endpoint for submitting a goal */
87
- submitGoal: string;
82
+ /** Endpoint for fetching recommendedClass history */
83
+ recommendedClassHistory: string;
84
+ /** Endpoint for fetching recommendedClass models/drafts */
85
+ recommendedClassDrafts: string;
86
+ /** Endpoint for submitting a recommendedClass */
87
+ submitRecommendedClass: string;
88
88
  }
89
89
  /**
90
90
  * UI text configuration
@@ -125,19 +125,19 @@ export interface UseRecommendedLessonsPageConfig {
125
125
  export interface UseRecommendedLessonsPageReturn {
126
126
  /** Props for RecommendedLessonsHistory component */
127
127
  historyProps: {
128
- fetchGoalsHistory: (filters?: GoalHistoryFilters) => Promise<GoalsHistoryApiResponse>;
129
- fetchGoalModels: (filters?: GoalModelFilters) => Promise<GoalModelsApiResponse>;
130
- deleteGoalModel: (id: string) => Promise<void>;
128
+ fetchRecommendedClassHistory: (filters?: RecommendedClassHistoryFilters) => Promise<RecommendedClassHistoryApiResponse>;
129
+ fetchRecommendedClassModels: (filters?: RecommendedClassModelFilters) => Promise<RecommendedClassModelsApiResponse>;
130
+ deleteRecommendedClassModel: (id: string) => Promise<void>;
131
131
  onCreateLesson: () => void;
132
132
  onCreateModel: () => void;
133
- onRowClick: (row: GoalTableItem) => void;
134
- onEditGoal: (id: string) => void;
135
- onEditModel: (model: GoalModelTableItem) => void;
136
- onSendLesson: (model: GoalModelTableItem) => void;
137
- fetchGoalDrafts: (filters?: GoalModelFilters) => Promise<GoalModelsApiResponse>;
138
- deleteGoalDraft: (id: string) => Promise<void>;
139
- onSendDraft: (draft: GoalModelTableItem) => void;
140
- onEditDraft: (draft: GoalModelTableItem) => void;
133
+ onRowClick: (row: RecommendedClassTableItem) => void;
134
+ onEditRecommendedClass: (id: string) => void;
135
+ onEditModel: (model: RecommendedClassModelTableItem) => void;
136
+ onSendLesson: (model: RecommendedClassModelTableItem) => void;
137
+ fetchRecommendedClassDrafts: (filters?: RecommendedClassModelFilters) => Promise<RecommendedClassModelsApiResponse>;
138
+ deleteRecommendedClassDraft: (id: string) => Promise<void>;
139
+ onSendDraft: (draft: RecommendedClassModelTableItem) => void;
140
+ onEditDraft: (draft: RecommendedClassModelTableItem) => void;
141
141
  emptyStateImage: string;
142
142
  noSearchImage: string;
143
143
  mapSubjectNameToEnum: (subjectName: string) => SubjectEnum | null;
@@ -196,9 +196,9 @@ export interface UseRecommendedLessonsPageReturn {
196
196
  * editModel: '/criar-aula?mode=model&id=',
197
197
  * },
198
198
  * endpoints: {
199
- * goalsHistory: '/recommended-class/history',
200
- * goalDrafts: '/recommended-class/drafts',
201
- * submitGoal: '/goals',
199
+ * recommendedClassHistory: '/recommended-class/history',
200
+ * recommendedClassDrafts: '/recommended-class/drafts',
201
+ * submitRecommendedClass: '/recommendedClass',
202
202
  * },
203
203
  * texts: {
204
204
  * title: 'Histórico de aulas recomendadas',
@@ -1 +1 @@
1
- {"version":3,"file":"useRecommendedLessonsPage.d.ts","sourceRoot":"","sources":["../../src/hooks/useRecommendedLessonsPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRecommendedLessonsPage.d.ts","sourceRoot":"","sources":["../../src/hooks/useRecommendedLessonsPage.ts"],"names":[],"mappings":"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"}