Proje: Okul Platform · Hub: Okul Platform — Domain

LeadExecutor Nedir?

Lead oluşturma ve güncelleme işlemlerini orkestre eden service.

app/Services/Controllers/Admin/Lead/LeadExecutor.php

Handler Zinciri

create()

  1. UserHandler::handle() — Kullanıcı ilişkilendirme/oluşturma
  2. LeadRepository::create() — DB’ye kaydet
  3. SchoolInboundCallLogHandler::handle() — Gelen arama ise log bağla

update()

  1. Eski veriyi sakla (getAttributes())
  2. UserHandler::handle()
  3. LeadRepository::update()
  4. Değişen field’ları hesapla (getDiff())
  5. Değişiklik varsa → LeadUpdatedEvent::dispatch(lead, diffData)

getDiff() Mekanizması

Güncelleme öncesi ve sonrası değerleri karşılaştırır. diffData → Event’e geçilir → CIO B2BEventService → “önceki stage” gibi bilgiler iletilir.

Handlers

app/Services/Controllers/Admin/Lead/Handler/:

  • UserHandler — Lead’in bağlı kullanıcısını yönetir
  • SchoolInboundCallLogHandler — Gelen arama logu ile lead’i ilişkilendirir