sozsoft-platform/configs/seeds/docs/modules/App.Saas.md
2026-10-17 21:51:10 +03:00

9.2 KiB
Raw Blame History

Saas (App.Saas)

Bu modülün ekranları wizard ile değil C# seeder (ListFormSeeder_Saas) ve data/*.json dosyalarıyla kurulur; bu yüzden dosya ve bölümler deploy tarafından değil elle yazılır (lowcode.instructions.md §0.13, "wizard dışı modülün bölümü elle yazılır"). Ekran sözleşmeleri alan alan lowcode-reference.instructions.md §12'de, çalışma şekli README.md'nin anılan bölümlerindedir; burada her dal için amaç, ekran listesi ve gerçeğin yaşadığı yer tutulur. Menü ağacı data/App.Menus.Menu.json, yetkiler data/Abp.Identity.Permissions.json (Modules = Sas, yalnızca host bağlamında görünür).

Tanımlamalar (App.Saas.Definitions)

1. Amaç ve kapsam

Bütün kiracıların ortak kullandığı host tanımları: AI botları, genel arama kaynakları, hitaplar, para birimleri, ülke grubu › ülke › şehir › ilçe zinciri, menü modülleri ve uygulama paketleri. Satırlar seed dosyasından gelir ve host yöneticisi tarafından düzenlenir; kiracı ekranları bu tanımları lookup olarak okur.

2. Menü ve ekranlar

Sıra Ekran Kod Seed verisi
1 AI Botları App.Definitions.AiBot data/App.Definitions.AiBot.json (README §13.8)
2 Genel Arama App.Definitions.GlobalSearch data/App.Definitions.GlobalSearch.json
3 Hitaplar App.Definitions.ContactTitle data/App.Definitions.ContactTitle.json
4 Para Birimleri App.Definitions.Currency data/App.Definitions.Currency.json
5 Ülke Grupları App.Definitions.CountryGroup data/App.Definitions.CountryGroup.json
6 Ülkeler App.Definitions.Country data/App.Definitions.Country.json
7 Şehirler App.Definitions.City data/App.Definitions.City.json
8 İlçeler App.Definitions.District data/App.Definitions.District.json
9 Modüller App.Menus.Module data/App.Menus.Module.json (README §9)
10 Uygulama Paketleri App.Definitions.ApplicationSuite data/App.Definitions.ApplicationSuite.json

3. Veri modeli ve kurallar

  • Tablolar Sas_H_* (host; TableNameResolver, TableNameEnum). Ülke grubu › ülke › şehir › ilçe dosyaları Order alanıyla bağımlılık sırasında uygulanır (CLAUDE.md "Menü ağacı ve yetkiler").
  • Para birimi lookup'ının anahtarı Name'dir ('TRY' gibi); ekranlardaki *CurrencyId varsayılanı tablo DEFAULT'undan gelir (standing default 18).
  • Adres zinciri (Ülke › Şehir › İlçe › Mahalle) Kiracılar ve Kontaklar ekranlarında CascadeParentFields ile kullanılır (lowcode-reference.instructions.md §12).

Public Site Yönetimi (App.Public)

1. Amaç ve kapsam

Ziyaretçiye açık sitenin arkasındaki yönetim ekranları: ürün/ödeme/taksit tanımları ve satış siparişleri (sepet akışı), blog kategorileri ve yazıları, demo talepleri. Sitenin sayfaları Custom Component, menüsü Pub modülüdür (README §10.4); buradaki ekranlar onların verisini yönetir.

2. Menü ve ekranlar

Sıra Ekran Kod Not
1 Ürünler App.Orders.Products sepet/ödeme akışının ürün kataloğu
2 Ödeme Yöntemleri App.Orders.PaymentMethods
3 Taksit Seçenekleri App.Orders.InstallmentOptions
4 Satış Siparişleri App.Orders.SalesOrders sipariş e-postası PublicAppService üretir; tarih/tutar CultureFormat ile aktif kültürde
5 Blog Kategorileri App.BlogManagement.Category sitemap'e giren yayın kaynağı (SeoAppService)
6 Blog Yazıları App.BlogManagement.Posts yayın tarihi BlogPost.Publish(Clock.Now)
7 Demo Talepleri App.Demos public demo formunun kayıtları

Kiracılar (AbpTenantManagement.Tenants) ve Şubeler (App.Branches)

1. Amaç ve kapsam

Kiracı kaydı (ABP TenantManagement; kendi veritabanı ya da host veritabanı paylaşımı), kiracı yöneticisinin ilk seed'i ve şube tanımı. Çalışma şekli README §12 (Çok Kiracılılık); seed kapsamı CLAUDE.md "Seed kapsamı" (SeedFileScope). Şube ekranı kullanıcıya atanmış aktif şubelerin kaynağıdır (Sas_T_BranchUsers, LookupQueryValues.UserBranchValues; standing default 1).

Ekran Kod Not
Kiracılar AbpTenantManagement.Tenants ABP yerleşik yetkileri (ManageConnectionStrings, ManageFeatures)
Şubeler App.Branches Sas_T_Branch; host şubesi PlatformConsts.Branches.BranchIdDefaultValue

Ayar Tanımları (App.SettingDefinitions)

Uygulama ayarlarının tanım listesi (data/App.SettingDefinitions.json, Sozsoft.Settings modülü); değerler Ayarlar ekranından host/kiracı/kullanıcı düzeyinde yazılır. Ayar anahtarları ve anlamları README §6.3 ve lowcode-reference.instructions.md'de; SEO varsayılanları App.SiteManagement.Seo.* (CLAUDE.md "SEO").

Diller (App.Languages)

Ekran Kod Seed verisi
Diller App.Languages.Language data/App.Languages.Language.json
Dil Metinleri App.Languages.LanguageText data/App.Languages.LanguageText.json (EN + TR, Id = Sas_H_LanguageText:{ResourceName}:{Key}:{CultureName} v5 GUID)

Kullanıcıya görünen her metin dil anahtarıyla gelir (standing default 4); UI çevirisi useLocalization/translateStatic, API çevirisi IStringLocalizer<PlatformResource>. Tarih/sayı biçimi aktif kültürü izler (localeFormat.ts, CultureFormat; README §18.3).

Veri Kaynakları (App.DataSource)

Ekranların bağlandığı bağlantı kayıtları (DataSourceManager); kiracı tablosunun satırları kiracı adıyla kayıtlı DataSource üzerinden gider (CLAUDE.md "Seed kapsamı"). Varsayılan veri kaynağını HostDataSeeder appsettings'teki bağlantı cümlesinden kurar. İki sağlayıcı (SQL Server / PostgreSQL) DataSourceTypeEnum ile ayrılır; SQL metinleri ANSI tırnaklı ya da sağlayıcıya göre dallanır (standing default 16).

Arka Plan İşleri (App.BackgroundWorkers)

Ekran Kod Not
Zamanlanmış İşler App.BackgroundWorkers.RecurringJobs data/App.BackgroundWorkers.RecurringJobs.json; Scope = Host / Tenant / Host ve Kiracılar (WorkerScopeEnum)
İşler App.BackgroundWorkers.Jobs Hangfire kuyruğu

Çalışma şekli README §14; BeforeSp/AfterSp yordam adları SqlIdentifier.IsSafe ile doğrulanıp sağlayıcıya göre EXEC/CALL ile çağrılır (SpRepository). Mail kuyruğu işi (MailQueueWorker) şablonunu Options.MailTemplate alanından PlatformTemplateDynamicStore ile okur (README §13.7, lowcode-reference.instructions.md §11).

Menüler (App.Menus)

Ekran Kod Seed verisi
Rotalar App.Menus.Routes data/App.Menus.Routes.json (yalnızca Seo* alanları çerçeve içinde düzenlenir)
Menü App.Menus.Menu data/App.Menus.Menu.json
Menü Yöneticisi App.Menus.Manager /admin/menuManager (çekirdek sayfa)

Menü/route/yetki modeli README §9; yetki ağacı menü ağacını izler (standing default 2).

Developer Kit (App.DeveloperKit)

Ekran Kod Not
Geliştirme Talepleri App.DevRequests MCP talep döngüsü (CLAUDE.md "Talep analizi"); data/App.DevRequests/ klasör modu
SQL Query Manager App.SqlQueryManager /admin/sqlQueryManager; tablo tasarımcısı iki sağlayıcının scriptini üretir (PostgreSqlTableScript)
Dosyalar App.Files /admin/files (README §16)
Custom Endpoint'ler App.DeveloperKit.CustomEndpoints crud/{Entity}.json (CrudEndpointSeedApplier)
Dynamic Service'ler App.DeveloperKit.DynamicServices runtime derleme (DynamicAssemblyRegistrationService)
Custom Component'ler App.DeveloperKit.CustomComponents data/App.DeveloperKit.CustomComponents/{Id}.json (README §8.2)
ListForm'lar App.Listforms.Listform ekran tanımları; kayıt wizard seed dosyasına geri yazılır (WizardSeedSynchronizer)
Intranet Widget'ları App.DeveloperKit.IntranetWidgets data/App.DeveloperKit.IntranetWidgets.json
MCP Sunucuları App.DeveloperKit.McpServers AllowedTools (README §13.9)
Wizard Manager App.Listforms.WizardManager /admin/listform/wizardManager; deploy yalnızca seed dosyası yazar, kurulum DB Migrate'tedir (lowcode.instructions.md §4.0)

Forum Yönetimi (App.ForumManagement)

Ekran Kod
Kategoriler App.ForumManagement.Categories
Konular App.ForumManagement.Topics
Gönderiler App.ForumManagement.Posts

Tablolar Sas_T_Forum* kiracı tablosudur (menü öneki ile tablo öneki örtüşmez; lowcode-reference.instructions.md "Tablo adlandırma"). Forum sayfaları kullanıcı tarafında views/forum altındadır.