130 lines
9.3 KiB
Markdown
130 lines
9.3 KiB
Markdown
# 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.
|