// src/Webshop.Application/Services/Public/ReviewService.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Webshop.Application.DTOs.Reviews; using Webshop.Domain.Interfaces; namespace Webshop.Application.Services.Public { public class ReviewService : IReviewService { private readonly IReviewRepository _reviewRepository; public ReviewService(IReviewRepository reviewRepository) { _reviewRepository = reviewRepository; } public async Task> GetApprovedReviewsByProductIdAsync(Guid productId) { var reviews = await _reviewRepository.GetApprovedByProductIdAsync(productId); return reviews.Select(r => new ReviewDto { // Mapping zu DTO, CustomerName wird für Anonymität oft gekürzt CustomerName = $"{r.Customer?.FirstName} {r.Customer?.LastName?.FirstOrDefault()}.", Rating = r.Rating, Title = r.Title, Comment = r.Comment, ReviewDate = r.ReviewDate }); } } }