# Saas (`Sas`) > Bu modülün ekranları wizard ile değil C# seeder (`ListFormSeeder_Sas`) 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/Sas.Menus.Menu.json`, yetkiler `data/Abp.Identity.Permissions.json` (`Modules = Sas`, yalnızca host bağlamında görünür). ## Tanımlamalar (`Sas.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ı | `Sas.Definitions.AiBot` | `data/Sas.Definitions.AiBot.json` (README §13.8) | | 2 | Genel Arama | `Sas.Definitions.GlobalSearch` | `data/Sas.Definitions.GlobalSearch.json` | | 3 | Hitaplar | `Sas.Definitions.ContactTitle` | `data/Sas.Definitions.ContactTitle.json` | | 4 | Para Birimleri | `Sas.Definitions.Currency` | `data/Sas.Definitions.Currency.json` | | 5 | Ülke Grupları | `Sas.Definitions.CountryGroup` | `data/Sas.Definitions.CountryGroup.json` | | 6 | Ülkeler | `Sas.Definitions.Country` | `data/Sas.Definitions.Country.json` | | 7 | Şehirler | `Sas.Definitions.City` | `data/Sas.Definitions.City.json` | | 8 | İlçeler | `Sas.Definitions.District` | `data/Sas.Definitions.District.json` | | 9 | Modüller | `Sas.Menus.Module` | `data/Sas.Menus.Module.json` (README §9) | | 10 | Uygulama Paketleri | `Sas.Definitions.ApplicationSuite` | `data/Sas.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 (`Sas.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 | `Sas.Orders.Products` | sepet/ödeme akışının ürün kataloğu | | 2 | Ödeme Yöntemleri | `Sas.Orders.PaymentMethods` | | | 3 | Taksit Seçenekleri | `Sas.Orders.InstallmentOptions` | | | 4 | Satış Siparişleri | `Sas.Orders.SalesOrders` | sipariş e-postası `PublicAppService` üretir; tarih/tutar `CultureFormat` ile aktif kültürde | | 5 | Blog Kategorileri | `Sas.BlogManagement.Category` | sitemap'e giren yayın kaynağı (`SeoAppService`) | | 6 | Blog Yazıları | `Sas.BlogManagement.Posts` | yayın tarihi `BlogPost.Publish(Clock.Now)` | | 7 | Demo Talepleri | `Sas.Demos` | public demo formunun kayıtları | ## Kiracılar (`AbpTenantManagement.Tenants`) ve Şubeler (`Sas.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 | `Sas.Branches` | `Sas_T_Branch`; host şubesi `PlatformConsts.Branches.BranchIdDefaultValue` | ## Ayar Tanımları (`Sas.SettingDefinitions`) Uygulama ayarlarının tanım listesi (`data/Sas.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ı `Adm.SiteManagement.Seo.*` (CLAUDE.md "SEO"). ## Diller (`Sas.Languages`) | Ekran | Kod | Seed verisi | | --- | --- | --- | | Diller | `Sas.Languages.Language` | `data/Sas.Languages.Language.json` | | Dil Metinleri | `Sas.Languages.LanguageText` | `data/Sas.Languages.LanguageText/{CultureName}.json` (gruplu klasör: her dil bir dosya, ad `CultureName` — `ar, de-DE, en, es, fi, fr, hi, hr, hu, it, pt-BR, ru, sk, sl, tr, zh-Hans`; yeni anahtar hepsine eklenir; `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`. Tarih/sayı biçimi aktif kültürü izler (`localeFormat.ts`, `CultureFormat`; README §18.3). ## Veri Kaynakları (`Sas.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 (`Sas.BackgroundWorkers`) | Ekran | Kod | Not | | --- | --- | --- | | Zamanlanmış İşler | `Sas.BackgroundWorkers.RecurringJobs` | `data/Sas.BackgroundWorkers.RecurringJobs.json`; `Scope` = Host / Tenant / Host ve Kiracılar (`WorkerScopeEnum`) | | İşler | `Sas.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 (`Sas.Menus`) | Ekran | Kod | Seed verisi | | --- | --- | --- | | Rotalar | `Sas.Menus.Routes` | `data/Sas.Menus.Routes.json` (yalnızca `Seo*` alanları çerçeve içinde düzenlenir) | | Menü | `Sas.Menus.Menu` | `data/Sas.Menus.Menu.json` | | Menü Yöneticisi | `Sas.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 (`Sas.DeveloperKit`) | Ekran | Kod | Not | | --- | --- | --- | | Geliştirme Talepleri | `Sas.DevRequests` | MCP talep döngüsü (CLAUDE.md "Talep analizi"); `data/Sas.DevRequests/` klasör modu | | SQL Query Manager | `Sas.SqlQueryManager` | `/admin/sqlQueryManager`; tablo tasarımcısı iki sağlayıcının scriptini üretir (`PostgreSqlTableScript`) | | Dosyalar | `Sas.Files` | `/admin/files` (README §16) | | Custom Endpoint'ler | `Sas.DeveloperKit.CustomEndpoints` | `crud/{Entity}.json` (`CrudEndpointSeedApplier`) | | Dynamic Service'ler | `Sas.DeveloperKit.DynamicServices` | runtime derleme (`DynamicAssemblyRegistrationService`) | | Custom Component'ler | `Sas.DeveloperKit.CustomComponents` | `data/Sas.DeveloperKit.CustomComponents/{Id}.json` (README §8.2) | | ListForm'lar | `Sas.Listforms.Listform` | ekran tanımları; kayıt wizard seed dosyasına geri yazılır (`WizardSeedSynchronizer`) | | Intranet Widget'ları | `Sas.DeveloperKit.IntranetWidgets` | `data/Sas.DeveloperKit.IntranetWidgets.json` | | MCP Sunucuları | `Sas.DeveloperKit.McpServers` | `AllowedTools` (README §13.9) | | Wizard Manager | `Sas.Listforms.WizardManager` | `/admin/listform/wizardManager`; deploy yalnızca seed dosyası yazar, kurulum DB Migrate'tedir (`lowcode.instructions.md` §4.0) | ## Forum Yönetimi (`Sas.ForumManagement`) | Ekran | Kod | | --- | --- | | Kategoriler | `Sas.ForumManagement.Categories` | | Konular | `Sas.ForumManagement.Topics` | | Gönderiler | `Sas.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.