import { Controller, Get, Query, UseGuards } from '@nestjs/common'; import { HqAuthGuard } from '../../common/guards/hq-auth.guard'; import { HqPermissionGuard, RequireHqPermissions, } from '../../common/guards/hq-permission.guard'; import { SuperAdminGuard } from '../../common/guards/super-admin.guard'; import { CurrentUser } from '../../common/decorators/current-user.decorator'; import type { AuthUser } from '../../common/guards/jwt-auth.guard'; import { AdminDashboardService } from './admin-dashboard.service'; import { AdminDashboardAnalyticsQueryDto } from './dto/admin-query.dto'; @Controller('admin/dashboard') @UseGuards(HqAuthGuard, HqPermissionGuard) @RequireHqPermissions('dashboard') export class AdminDashboardController { constructor(private readonly dashboardService: AdminDashboardService) {} @Get('stats') stats(@CurrentUser() user: AuthUser) { return this.dashboardService.getStats(user.actorId); } @Get('analytics') analytics( @CurrentUser() user: AuthUser, @Query() query: AdminDashboardAnalyticsQueryDto, ) { return this.dashboardService.getAnalytics(user.actorId, query); } @Get('version') @UseGuards(SuperAdminGuard) version() { return this.dashboardService.getLatestVersion(); } }