import { Controller, Get, UseGuards } from '@nestjs/common' import { JwtAuthGuard } from '../auth/jwt-auth.guard' import { Roles } from '../auth/roles.decorator' import { RolesGuard } from '../auth/roles.guard' import { UserRole } from '@mp-pilates/shared' import { PrismaService } from '../prisma/prisma.service' interface AdminStats { todayBookings: number totalOrders: number totalBookings: number } @Controller('admin') @UseGuards(JwtAuthGuard, RolesGuard) @Roles(UserRole.ADMIN) export class AdminController { constructor(private readonly prisma: PrismaService) {} @Get('stats') async getStats(): Promise { const today = new Date() today.setUTCHours(0, 0, 0, 0) const [todayBookings, totalOrders, totalBookings] = await Promise.all([ this.prisma.booking.count({ where: { timeSlot: { date: today }, }, }), this.prisma.order.count(), this.prisma.booking.count(), ]) return { todayBookings, totalOrders, totalBookings } } }