sozsoft-platform/configs/seeds/docs/modules/Sas.md
2026-10-21 23:40:03 +03:00

130 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).
<!-- module-doc:section Sas.Definitions -->
## 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).
<!-- module-doc:section Sas.Public -->
## 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ı |
<!-- module-doc:section AbpTenantManagement.Tenants -->
## 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` |
<!-- module-doc:section Sas.SettingDefinitions -->
## 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").
<!-- module-doc:section Sas.Languages -->
## 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<PlatformResource>`. Tarih/sayı biçimi aktif kültürü izler (`localeFormat.ts`, `CultureFormat`; README §18.3).
<!-- module-doc:section Sas.DataSource -->
## 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).
<!-- module-doc:section Sas.BackgroundWorkers -->
## 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).
<!-- module-doc:section Sas.Menus -->
## 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).
<!-- module-doc:section Sas.DeveloperKit -->
## 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) |
<!-- module-doc:section Sas.ForumManagement -->
## 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.