import { Controller, Get, Query, UseGuards } from '@nestjs/common'; import { DashboardService } from './dashboard.service'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { RequirePermission } from '../auth/decorators/permission.decorator'; @UseGuards(JwtAuthGuard) @RequirePermission('dashboard:view') @Controller('dashboard') export class DashboardController { constructor(private service: DashboardService) {} @Get('stats') getStats() { return this.service.getStats(); } @Get('gantt') getGanttData( @Query('periodStart') periodStart?: string, @Query('periodEnd') periodEnd?: string, @Query('building') building?: string, ) { return this.service.getGanttData({ periodStart, periodEnd, building }); } @Get('expense-stats') getExpenseStats( @Query('periodStart') periodStart?: string, @Query('periodEnd') periodEnd?: string, ) { return this.service.getExpenseStats(periodStart, periodEnd); } @Get('room-ranking') getRoomExpenseRanking( @Query('periodStart') periodStart?: string, @Query('periodEnd') periodEnd?: string, ) { return this.service.getRoomExpenseRanking(periodStart, periodEnd); } @Get('class-attendance-ranking') getClassAttendanceRanking() { return this.service.getClassAttendanceRanking(); } @Get('classroom-occupancy') getClassroomOccupancy() { return this.service.getClassroomOccupancy(); } }