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 { GetBannerListDto, GetBannerListResponseDto } from './banner.dto';
import { BannerService } from './banner.service';

@ApiTags('배너')
@UseGuards(JwtAuthGuard)
@Controller('banner')
export class BannerController {
  constructor(private bannerService: BannerService) {}

  @ApiOperation({
    summary: `배너목록`,
    description: `default 값 (bnnShow : 1)
                  default 정렬 (brdSort, brdCreatedAt desc)`,
  })
  @Get()
  @ApiOkResponse({ type: GetBannerListResponseDto })
  async getBannerList(@Query() query: GetBannerListDto) {
    const data = await this.bannerService.getBannerList(query, false);
    return plainToInstance(GetBannerListResponseDto, data, {
      excludeExtraneousValues: true,
    });
  }
}
