import { Controller, Get, Query, Req, UseGuards } from "@nestjs/common"
import { DashboardService } from "./dashboard.service"
import { GetDashboardStatsDto } from "../dto/get-dashboard-stats.dto"
import { ApiBearerAuth, ApiTags } from "@nestjs/swagger"
import { AuthGuardMiddleware } from "src/middleware/auth-guard.middleware"

@ApiTags("Dashboard")
@UseGuards(AuthGuardMiddleware)
@ApiBearerAuth("access-token")
@Controller("dashboard")
export class DashboardController {
  constructor(private readonly dashboardService: DashboardService) {}

  @Get("/counts")
  findAll(@Req() request: any, @Query() query: GetDashboardStatsDto) {
    return this.dashboardService.findAll(
      request.headers["authorization"],
      query,
    )
  }
}
