import { Body, Controller, Get, Post, Query } from '@nestjs/common';
import { ApiOkResponse, ApiTags } from '@nestjs/swagger';
import { CreatePublicReviewDto } from './dto/create-public-review.dto';
import { ReviewsService } from './reviews.service';

@ApiTags('reviews')
@Controller('reviews/public')
export class PublicReviewsController {
  constructor(private readonly reviews: ReviewsService) {}

  @Get('context')
  @ApiOkResponse({ description: 'Public review page context for a shop/category' })
  context(@Query('shopId') shopId?: string, @Query('category') category?: string) {
    return this.reviews.getPublicContext(shopId ?? '', category ?? '');
  }

  @Post()
  @ApiOkResponse({ description: 'Submit a public review for a shop/category' })
  create(@Body() dto: CreatePublicReviewDto) {
    return this.reviews.createPublic(dto);
  }
}
