Bildirim · Görev · SMS/OTP

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.

Aurora bildirim ve görev merkezi — canlı bildirim zili ve görev listesi
Neden önemli

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-kural-hedefleme-görev-push zinciri şeması
Üç kavram, net ayrım

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.

Firebase'siz Web Push mimarisi — VAPID ve Service Worker
Firebase'siz Web Push

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.
Gerçek operasyonel zincirler

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.

İşlemsel SMS & OTP

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).
NetGSM SMS ve OTP doğrulama akışı
SMS altyapısı

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.

SSS

Bildirim, 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.