Bildirim, Görev & SMS/OTP Merkezi — doğru kişiye, anında
Otelde olan biteni — yeni rezervasyon, check-in, oda kirlendi, arıza açıldı, ödeme geldi, kanal hatası — doğru kişiye ya da departmana anında ulaştıran, olay güdümlü bir merkez. Sadece "haber vermekle" kalmaz; sahibi, süresi ve tırmandırması olan görevler üretir. Firebase gerektirmeyen gerçek Web Push ile personel telefonuna bildirim düşer; işlemsel SMS ve OTP'li giriş ile iletişim ve güvenlik tek çatı altında toplanır.
Otelde bilgi, doğru kişiye ulaşmazsa iş kalır
Kirlenen oda resepsiyona ulaşmazsa misafir kapıda bekler; açılan arıza teknik servise düşmezse şikâyet büyür; ödeme geldiği finansa yansımazsa tahsilat karışır. Aurora bu zinciri olay güdümlü kurar: bir şey olur, tek satır çengel çağrılır, kural motoru değerlendirir, hedeflenen kişiye bildirim düşer ve gerekiyorsa sahibi olan bir görev açılır. Kritik tasarım kararı: tek giriş noktası (Notify::emit()) yalnızca ~15 ms sürer ve içinde hiçbir ağ çağrısı yoktur — kullanıcı asla bir push/e-posta ağ turunu beklemez.
Olay, bildirim ve görev — karışıklık kaynakta engellenir
Bu üçü mimari olarak ayrıdır. Sistemde ne olduğu, kullanıcıya düşen kopya ve sahibi olan iş birbirine karışmaz.
Olay (notif_events)
Sistemde ne olduğu; tekilleştirilmiş (dedup'lı). Aynı olay birden çok kod yolundan geçse bile tek kez üretilir.
Bildirim (notif_messages)
Kullanıcıya düşen kopya. Panelde canlı rozet, okundu işaretleme ve cihaz aboneliği yönetimiyle görünür.
Görev (notif_tasks)
Sahibi, son tarihi ve tırmandırması olan iş. Gerekliyse otomatik açılır; sorumlu belli, süre belli.
Çengel (Hook) & tek giriş
Modül tek satır çağırır (Hooks::xxx()); housekeeping, rezervasyon, finans, ön yüz, Stripe/Iyzico noktaları bağlı. Hepsi transaction sonrası, Hooks::safe() ile sarılı. Tüm olaylar tek kapıdan (Notify::emit()) geçer.
Kural motoru & tekilleştirme
RuleEngine koşullu kuralları değerlendirir ("yalnızca bugün girişi olan odalar", "yalnızca tutar > X ise"). Dedup ile tek bildirim/görev üretilir.
Görev üretimi & hedefleme
TaskService sahibi/son tarih/tırmandırma ile görev açar. Targeting rol/departman/kişi bazlı çözer; personel ve müşteri telefonu ayrı yollarla, RBAC entegre (yetkisiz role bildirim düşmez).
Render, kuyruk & gönderim
Mesaj çok dilli üretilir, iş kuyruğa yazılır; yanıt gönderildikten sonra (fastcgi_finish_request) + cron worker ile arka planda Web Push / e-posta / SMS gider.
Gerçek push, dış SDK yok — RFC 8291 + RFC 8292
Aurora Web Push'u saf PHP ile uygular: openssl ECDH + HKDF + AES-128-GCM şifreleme, RFC 8291 (mesaj şifreleme) ve RFC 8292 (VAPID) standartlarına göre. Hiçbir dış SDK yoktur; VAPID anahtarları sistemde, Service Worker kökte (/sw.js, kapsam /) çalışır. iOS'ta uygulama ana ekrandan açılınca push düşer. Böylece personel telefonuna bildirim göndermek için Firebase'e ya da üçüncü parti bir servise bağımlı kalmazsınız.
- PWA + bildirim zili: canlı rozet, okundu işareti, cihaz aboneliği yönetimi.
- 15 ekran + 11 tablo + 2 cron (dispatch her dakika, monitor 5 dakikada bir).
- Teşhis: hedefleme provası, uçtan uca test geri-alan, gerçek cihaza push atıp yanıtı yakalayan diagnostik.
Haber değil, sonuç üreten otomasyon
Oda hazır zinciri
Kat görevlisi temizliği bitirince resepsiyona otomatik "oda hazır" bildirimi düşer; check-in bekleyen misafir daha az bekler.
Arıza → teknik servis
Arıza açılınca teknik servise sahibi ve son tarihi olan görev üretilir; kapanana kadar tırmandırma zinciri izler.
Ödeme → finans
Stripe/Iyzico ödemesi gelince finansa bildirim düşer; tahsilat anında görünür, defterle tutarlı kalır.
NetGSM ile bilgilendirme SMS'i ve OTP'li güvenli giriş
Misafire ve personele işlemsel SMS (rezervasyon onayı, tahsilat, iptal/iade, etkinlik satın alma) ve SMS ile tek kullanımlık kod (OTP) doğrulamalı güvenli giriş. Kapsam bilinçle sıfır pazarlama kilitlidir → İYS onayı gerektirmez, yasal risk yoktur. İki yol karıştırılmaz: bilgilendirme SMS'i asenkron ve kuyruklu (Notify → Outbox omurgası), OTP ise senkron ve önceliklidir.
- 5 gateway × otel + etkinlik tam kapsam (Iyzico/Stripe/PayTR/ZiraatPay/VirtualPos); olay başına tek SMS (dedup + 15 dk pencere).
- OTP giriş: rate-limit (8/saat), deneme limiti (5), yeniden gönder (60 sn); kapalıysa/telefon yoksa/SMS gitmezse eski şifre akışına düşer — kimse kilitlenmez.
- Sağlayıcı-bağımsız mimari: Twilio/MessageBird/Vonage eklemek yeni bir driver sınıfından ibaret (global genişleme hazır).
Düzenlenebilir şablonlar, maliyet ve güvenlik
Panelden düzenlenebilir şablonlar
4 grup × 7 anahtar (reservation/event/otp/staff), placeholder'lı ({isim}, {pnr}, {tarih}, {tutar}) + [[ ]] opsiyonel blok. Tıklanınca imlece eklenen çipler, canlı karakter sayacı, "Varsayılana dön". Boş/bozuk şablon sessizce varsayılana düşer — SMS asla boş gitmez.
Maliyet optimizasyonu
ASCII normalize Türkçe karakterli mesajı 155→70 karaktere düşürür; encoding ayarı ve kota/limit panelden yönetilir (hiçbir sabit varsayım gömülü değil).
Güvenlik & RBAC
API şifresi düz saklanmaz (encrypter), ekranda gösterilmez; boş bırakılırsa mevcut korunur. Ayrı SMS log (maskeli telefon, OK/FAIL/kod/jobid). sms_settings bağımsız izni; ayar ekranları API Merkezi ile root-only kilitlenebilir.
Teşhis komutları
sms:test (ayar+bakiye), sms:test 05xx (gerçek bilgilendirme), sms:test 05xx --otp. NetGSM sürücüsü REST v2 Basic Auth + hata kodu 00-85 → Türkçe insanlaştırma.
İlgili modüller
Rezervasyon & Ön Büro
Check-in, oda hazır ve walk-in olayları bildirim zincirini tetikler; iş kimseyi beklemez.
İnceleYetkilendirme & Güvenlik
Hedefleme RBAC ile entegre; yetkisiz role bildirim düşmez. OTP ayarları root-only kilitlenir.
İnceleMisafir CRM
Müşteri telefonuna işlemsel SMS; onay, tahsilat ve iptal bildirimleri KVKK uyumlu iletilir.
İnceleBildirim, görev ve SMS/OTP hakkında sık sorulanlar
Hayır. Aurora gerçek Web Push'u RFC 8291 ve RFC 8292 standartlarını saf PHP ile uygular (openssl ECDH + HKDF + AES-128-GCM). Hiçbir dış SDK yoktur; VAPID anahtarları sistemde, Service Worker kökte çalışır. iOS'ta uygulama ana ekrandan açılınca push çalışır.
Üç kavram nettir: Olay sistemde ne olduğudur (tekilleştirilmiş), Bildirim kullanıcıya düşen kopyadır, Görev ise sahibi, son tarihi ve tırmandırması olan iştir. Bu üçü mimari olarak ayrıdır; karışıklık kaynakta engellenir. "Haber verildi ama iş yapılmadı" durumu görevle takip altına alınır.
İşlemsel SMS (rezervasyon onayı, tahsilat, iptal/iade, etkinlik) NetGSM üzerinden asenkron kuyruklu gider; OTP ise senkron ve önceliklidir. Sıfır pazarlama olduğu için İYS onayı gerekmez. OTP kapalıysa, telefon yoksa veya SMS gitmezse eski şifre akışına düşülür — kimse dışarıda kalmaz. Personel için opsiyonel iki faktörlü doğrulama bayrağı vardır.
Hayır. Tek giriş noktası (Notify::emit()) sayesinde yeni olay = tek satır çengel. emit() içinde ağ çağrısı olmadığı için sıfır gecikme sağlanır; gönderim arka planda cron worker ile yapılır. Tüm zincir uçtan uca test edilmiştir.
Ekibinize anında ulaşın, hiçbir iş boşlukta kalmasın
Firebase'siz Web Push, işlemsel SMS ve OTP'li güvenli giriş — hepsi tek merkezde.