import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import { plainToInstance } from 'class-transformer';
import { JwtAuthGuard } from '../auth/user/jwt.guard';
import { GetPopupListDto, GetPopupListResponseDto } from './popup.dto';
import { PopupService } from './popup.service';

@ApiTags('팝업')
@UseGuards(JwtAuthGuard)
@Controller('popup')
export class PopupController {
  constructor(private popupService: PopupService) {}

  @ApiOperation({
    summary: `팝업목록`,
    description: `default 값 (popShow : 1)
                  default 정렬 (popSort : desc)`,
  })
  @Get()
  @ApiOkResponse({ type: GetPopupListResponseDto })
  async getBannerList(@Query() query: GetPopupListDto) {
    const data = await this.popupService.getPopupList(query, false);
    return plainToInstance(GetPopupListResponseDto, data, {
      excludeExtraneousValues: true,
    });
  }
}
