feat: add absence notification and analytics features

- Implemented AbsenceNotifyView for notifying absence with session details.
- Created AnalyticsView for displaying group analytics and managing students at risk.
- Added ClassAttendanceView for marking attendance in classes.
- Defined new schemas for analytics and attendance in shared package.
This commit is contained in:
Jose Selesan
2026-09-23 16:24:45 -03:00
parent a363e9e8fc
commit 2e184845e1
59 changed files with 3854 additions and 23 deletions

View File

@@ -0,0 +1,24 @@
import type { TodayClassesQuery } from '@gruperly/shared';
import { TodayClassesQuerySchema } from '@gruperly/shared';
import { Hono } from 'hono';
import { problemJson, resultJson, unauthorizedProblem } from '@/http/problem-details';
import { validate } from '@/http/validate';
import { GetSessionStudents } from './use-case';
const route = new Hono();
route.get('/:sessionId/students', validate.query(TodayClassesQuerySchema), async (c) => {
const user = c.get('user');
if (!user) {
return problemJson(c, unauthorizedProblem(c.req.path));
}
const sessionId = c.req.param('sessionId');
const query = c.req.valid('query') as TodayClassesQuery;
const useCase = new GetSessionStudents();
const result = await useCase.execute(sessionId, user.id, query);
return resultJson(c, result);
});
export default route;