import { Controller, Get, Query } from '@nestjs/common';
import { ApiOperation, ApiTags } from '@nestjs/swagger';
import { ApiOkStandard } from 'src/common/decorators/api-ok-response.decorator';
import { InventoryMonitoringService } from './inventory-monitoring.service';
import { InventoryMonitoringListQueryDto } from './dto/request';
import { InventoryMonitoringListResponseDto } from './dto/response';

@ApiTags('CP Inventory Monitoring')
@Controller('/api/monitoring/cp/inventory')
export class InventoryMonitoringController {
  constructor(private readonly inventoryService: InventoryMonitoringService) {}

  /**
   * GET /api/monitoring/cp/inventory
   * CP 재고 현황 조회
   *
   * Query params:
   * - from: 조회 시작일 (YYYY-MM-DD, 필수)
   * - to: 조회 종료일 (YYYY-MM-DD, 필수)
   */
  @Get()
  @ApiOperation({ summary: 'CP 재고 현황 조회' })
  @ApiOkStandard(InventoryMonitoringListResponseDto, {
    description: 'Inventory list grouped by class',
  })
  async findInventoryList(
    @Query() query: InventoryMonitoringListQueryDto,
  ): Promise<InventoryMonitoringListResponseDto> {
    return this.inventoryService.findInventoryList(query);
  }
}
