package com.tourguide.api.guide; import com.tourguide.common.api.ApiResponse; import com.tourguide.modules.review.dto.GuideRatingResponse; import com.tourguide.modules.review.service.OrderReviewService; import com.tourguide.security.AppUserPrincipal; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; @RestController @RequestMapping("/api/guide/ratings") public class GuideRatingController { private final OrderReviewService reviewService; public GuideRatingController(OrderReviewService reviewService) { this.reviewService = reviewService; } @GetMapping public ApiResponse list( @AuthenticationPrincipal AppUserPrincipal principal, @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, @RequestParam(defaultValue = "1") long pageNum, @RequestParam(defaultValue = "20") long pageSize) { return ApiResponse.success(reviewService.guideRatings(principal.getUserId(), date, pageNum, pageSize)); } }