Proje: Okul Platform · Hub: Okul Platform — Conventions

Presenter Nedir?

sofa/revisionable paketi için human-readable audit log gösterimi. app/Models/Presenters/ dizininde her model için bir presenter.

Presenter Yapısı

class School extends Presenter
{
    protected $labels = [
        'name' => 'Okul İsmi',         // Field → Türkçe label
        'school_type_id' => 'Okul Türü',
    ];
 
    protected $passThrough = [
        'school_type_id' => 'type.name',  // ID → İlişki adı
        'customer_id'    => 'customer.name',
    ];
}

Mevcut Presenter’lar (app/Models/Presenters/)

  • School — Okul değişiklikleri
  • Lead — Lead değişiklikleri
  • Article — Makale değişiklikleri
  • SchoolComment — Okul yorum değişiklikleri
  • SchoolNote — Okul notu değişiklikleri
  • Media — Medya değişiklikleri
  • CustomerScore — Müşteri skoru değişiklikleri
  • SchoolInteraction — Etkileşim değişiklikleri
  • SchoolFee — Ücret değişiklikleri
  • SchoolProductPrice — Okul ürün fiyatı
  • CreditCardPayment — Kredi kartı ödeme
  • UserDetail — Kullanıcı detay
  • SchoolFeatureName — Okul özellik adı
  • Location — Lokasyon

Model Tanımı

Her revisionable model’de:

public string $revisionPresenter = Presenters\School::class;

RevisionObserver

Değişiklik kaydedilirken sadece değişen field’lar saklanır (JSON). app/Models/Revision.php — Custom Revision modeli.