Class ReviewService
- Namespace
- UsluzionicaServer.Services
- Assembly
- UsluzionicaServer.dll
Review modul — pisanje recenzija i kalkulacija proseka providera.
Pravila:
- Jedan autor = jedna recenzija po listingu (UNIQUE u bazi).
- BookingRequestId je opciono; ako je dat mora biti Completed i vlasništvo autora.
- Nakon svake nove recenzije recalculate ProviderProfile.AverageRating i TotalReviews.
public sealed class ReviewService
- Inheritance
-
ReviewService
- Inherited Members
Constructors
- ReviewService(AppDbContext, NotificationService, BlockService, ILogger<ReviewService>)
Review modul — pisanje recenzija i kalkulacija proseka providera.
Pravila:
- Jedan autor = jedna recenzija po listingu (UNIQUE u bazi).
- BookingRequestId je opciono; ako je dat mora biti Completed i vlasništvo autora.
- Nakon svake nove recenzije recalculate ProviderProfile.AverageRating i TotalReviews.
Methods
- CreateAsync(string, CreateReviewDto)
Klijent piše recenziju za listing. Vraća grešku ako je korisnik već ostavio recenziju za taj listing, ako pokušava da oceni sopstveni listing, ili ako prosleđeni BookingRequest nije validan.
- GetByListingAsync(int, int, int, string?)
Sve recenzije jednog oglasa, sortirane od najnovije. Javni endpoint — ne zahteva autentifikaciju.
- GetByProviderAsync(int, int, int, string?)
Sve recenzije svih oglasa jednog providera, sortirane od najnovije. Javni endpoint.
- GetSummaryAsync(int)
Agregirane statistike providera: prosek, ukupan broj, raspored po zvezdicama. Čita direktno iz ProviderProfile (live kalkulisane vrednosti). StarBreakdown se računa u memoriji iz Reviews tabele.