import { Controller, Get, Query } from '@nestjs/common';
import {
  ApiTags,
  ApiOperation,
  ApiBearerAuth,
  ApiQuery,
} from '@nestjs/swagger';
import { DashboardService } from '../../application/services/dashboard.service';

@ApiTags('Dashboard')
@ApiBearerAuth()
@Controller('dashboard')
export class DashboardController {
  constructor(private readonly dashboardService: DashboardService) {}

  @Get()
  @ApiOperation({ summary: '获取仪表盘统计数据' })
  async getStats() {
    return this.dashboardService.getDashboardStats();
  }

  @Get('stats')
  @ApiOperation({ summary: '获取仪表盘统计数据（别名）' })
  async getStatsAlias() {
    return this.dashboardService.getDashboardStats();
  }

  @Get('realtime')
  @ApiOperation({ summary: '获取实时数据' })
  async getRealtimeStats() {
    return this.dashboardService.getRealtimeStats();
  }

  @Get('reports')
  @ApiOperation({ summary: '获取每日报表' })
  @ApiQuery({ name: 'page', required: false, type: Number })
  @ApiQuery({ name: 'pageSize', required: false, type: Number })
  async getReports(
    @Query('page') page?: number,
    @Query('pageSize') pageSize?: number,
  ) {
    return this.dashboardService.getReports(page ?? 1, pageSize ?? 30);
  }
}
