Table of Contents

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.