Proje: Okul Platform · Hub: Okul Platform — Domain

SchoolFilterUpdateService

app/Services/Bases/SchoolFilterUpdateService.php

SchoolFilter tablosunu güncel tutar. Okul bilgileri değiştiğinde bu servis devreye girer.

Güncellenen Alanlar

SchoolFilter’da şu veriler:

  • Ücretler (fees, amount_yearly, amount_range)
  • Burs/erken kayıt sayıları (scholarship_count, early_registration_count)
  • İstatistikler (deal_open/won/lost, offer_form, comment)
  • Listeleme önceliği
  • Okul tipi, sektör, lokasyon
  • Ürün bayrakları (product_has_*)
  • Profil puanı (py_profile_point, py_about_quality, py_gallery_quality)
  • SchoolBadge bilgileri

Güncelleme Tetikleyicileri

  1. SchoolFilterJob — Queue job üzerinden async
  2. UpdateSchoolFiltersCommand — Artisan command ile manuel/toplu
  3. IndexUpdatedSchoolsCommand — Typesense reindex

SchoolFilterJob

app/Jobs/School/SchoolFilterJob.php — Okul güncellendiğinde dispatch edilir.

Bağımlılıklar

Çok sayıda repository kullanır:

  • SchoolFilterService, SchoolCommentRepository, LogRepository
  • OfferRepository, QARepository, SchoolBadgeRepository
  • SchoolActivityRepository, SchoolFacilityRepository, SchoolScholarshipRepository
  • SchoolServiceRepository, SchoolLearningLanguageRepository
  • HighSchoolTypeDepartmentRepository
  • SchoolFilterPortfolioService — Puan hesaplama