Tenant-Aware Aktif/Pasif Sistem - SettingsManagement Yaklaşımı
v1'de SettingsManagement'ın nasıl çalıştığını tam anlamamıştım.
Yanlış Düşündüklerim:
Konum: CENTRAL DB
Görev: Grup tanımları
Örnek: "Modül Ayarları"
Konum: CENTRAL DB
Görev: Setting tanımı + default
Örnek: subscription_enabled
Konum: TENANT DB
Görev: Tenant'a özel değer
Örnek: true/false
setting('subscription_enabled') çağrıldı
Helper function devreye girer
CENTRAL DB → settings tablosundan tanım bulunur
key='subscription_enabled', id=123
TENANT DB → settings_values tablosuna bakılır
setting_id=123 için değer var mı?
Değer bulundu → Tenant'ın değeri döner (true/false)
Bulunamazsa → default_value döner
CENTRAL DB (settings):
TENANT 1001 (Muzibu) - settings_values:
TENANT 2 (İxtif) - settings_values:
Kod:
SettingsManagement modülü tam olarak bu senaryolar için yapılmış. Tenant bazında ayar yönetimi = ana görevi!
settings_values TENANT DB'de olduğu için her tenant kendi değerini saklar. Birbirini etkilemez!
settings tablosu CENTRAL'da = Yeni modül eklemek → Tek yerde tanımla, tüm tenant'lar kullanabilir!
SettingsManagement zaten admin UI'a sahip. Toggle switch ekle, kullanıcı aktif/pasif etsin!
setting() helper zaten cache'li, N+1 problemi çözülmüş, optimize edilmiş!
Admin Panel → Settings → Groups → Yeni Grup
Admin Panel → Settings → Settings → Yeni Setting
Muzibu'ya giriş yap → Settings → Modül Ayarları
Tam olarak bu iş için tasarlanmış, optimize edilmiş, admin UI'ı hazır!
💡 Ek Modüller İçin:
Aynı "Modül Ayarları" grubuna yeni setting'ler ekle: