Class ListingService
- Namespace
- UsluzionicaServer.Services
- Assembly
- UsluzionicaServer.dll
public sealed class ListingService
- Inheritance
-
ListingService
- Inherited Members
Constructors
Methods
- CreateAsync(string, CreateListingDto)
Kreira listing. Korisnik mora imati ProviderProfile. Validira PriceMode logiku.
- DeleteAsync(int, string)
"Brisanje" = postavljanje Status = Archived. Fizičko brisanje se ne radi — čuvamo istoriju.
- GetByIdAsync(int, string?)
Vraća detalje listinga. ViewCount se uvećava samo ako gledalac NIJE vlasnik (anoniman ili drugi korisnik = pravi pregled).
- SearchAsync(ListingQueryParams)
Pretražuje aktivne oglase, tolerantno na dijakritiku, pismo i tipfelere.
Radi u slojevima, od najpreciznijeg ka najširem. Prelazi se na sledeći sloj samo ako prethodni vrati premalo rezultata — tako uobičajen upit nikad ne plati cenu fuzzy pretrage:
1a. Svi tokeni u naslovu / lokaciji / kategoriji → čist SQL, ~90% upita 1b. Isto + opis → skuplja, varchar(max) 2. Bar jedan token (OR), skorovano u memoriji 3. Fuzzy — pigeonhole prefilter u SQL-u + OSA rastojanje
Sortiranje unutar 1a/1b ostaje kao pre: boosted → BoostScore → datum. U slojevima 2 i 3 skor pretrage je primaran, pa boost kao razrešivač.
- UploadImageAsync(int, string, IFormFile)
Dodaje sliku na listing. Max 5 slika po listingu. Fajl se čuva u wwwroot/uploads/listings/{listingId}/.