Proje: Okul Platform · Hub: Okul Platform — Conventions

Observer’lar (app/Observers/)

RevisionObserver (aktif)

Revision::observe(RevisionObserver::class) — EventServiceProvider’da kayıtlı.

  • Sadece action === 'updated' olan revision’larda çalışır
  • Revision’da sadece değişen field’ları tutar (old/new JSON)
  • Array değerleri JSON’a çevirir

LeadObserver (DEPRECATED - aktif değil)

@deprecated — Notlar artık Customer.io üzerinden gönderilecek. (Ege, 2025-12-09) AppServiceProvider’da comment’li: // Lead::observe(LeadObserver::class);

InflationRateObserver

Enflasyon oranı değiştiğinde müşteri sözleşmelerini günceller.

CustomerAgreementObserver

Sözleşme değişikliğinde yan etkiler.

ArticleObserver

Makale kayıt/güncelleme olayları.

SchoolReferralObserver

Okul yönlendirme değişikliklerini takip eder.

Revisionable Sistemi

sofa/revisionable paketi — Model değişiklik geçmişi.

Revisionable modeller: School, Lead, Customer, CustomerAgreement, Checkout, Media, Article, SchoolComment, CreditCardPayment, SchoolInteraction, SaleSchoolAppointment…

Her modelde: public string $revisionPresenter = Presenters\X::class;

Revision tablosu: revisions — revisionable_type, revisionable_id, user_id, action, table_name, old, new

İzinler: VIEW_REVISION — Revision geçmişini görebilmek için.

Token Adları (AccessTokenNameType)

Sanctum token’larına verilen isimler:

  • login — Normal email/password login
  • otp-code — OTP ile login
  • hash — Hash login (school → api aktarım)