import { Controller, Get, UseGuards } from '@nestjs/common';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { RolesGuard } from '../auth/guards/roles.guard';
import { Roles } from '../auth/decorators/roles.decorator';
import { Role } from '../enums/role.enum';
import { DashboardService } from '../services/dashboard.service';

@Controller('dashboard')
@UseGuards(JwtAuthGuard, RolesGuard)
export class DashboardController {
  constructor(private readonly dashboardService: DashboardService) {}

  @Get('stats')
  @Roles(Role.ADMIN, Role.MANAGER, Role.WORKER, Role.CUSTOMER)
  async getDashboardStats() {
    return this.dashboardService.getDashboardStats();
  }

  @Get('recent-orders')
  @Roles(Role.ADMIN, Role.MANAGER, Role.WORKER, Role.CUSTOMER)
  async getRecentOrders() {
    return this.dashboardService.getRecentOrders();
  }

  @Get('production-details')
  @Roles(Role.ADMIN, Role.MANAGER, Role.WORKER)
  async getProductionDetails() {
    return this.dashboardService.getProductionDetails();
  }
}
