From b6797950b2a362938cd2234bf44b17d5aed995f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Sat, 3 Oct 2026 02:11:39 +0300 Subject: [PATCH] =?UTF-8?q?Kullan=C4=B1c=C4=B1=20tan=C4=B1mlamalar=C4=B1?= =?UTF-8?q?=20geni=C5=9Fletildi=20ayr=C4=B1ca=20Intranet=20Hr=20ta=C5=9F?= =?UTF-8?q?=C4=B1nd=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lowcode-reference.instructions.md | 24 +- .github/instructions/lowcode.instructions.md | 20 +- README.md | 7 +- .../Identity/Dto/UserFinancialDto.cs | 17 + .../Identity/Dto/UserInfoViewModel.cs | 27 +- .../LookUpQueryValues.cs | 75 + .../Identity/IdentityMappers.cs | 54 +- .../Identity/PlatformIdentityAppService.cs | 68 +- .../UserInfoViewModelMappingExtensions.cs | 26 +- .../ListFormSeeder_Administration.cs | 5121 +++++++---------- .../Migrations/ListFormSeeder_Hr.cs | 3102 ++++++++++ .../Migrations/ListFormSeeder_Saas.cs | 140 + .../Migrations/PlatformIdentityDataSeeder.cs | 1 - .../Enums/TableNameEnum.cs | 10 +- .../Enums/WorkerTypeEnum.cs | 1 + .../PlatformConsts.cs | 47 +- .../TableNameResolver.cs | 52 +- .../PlatformBackgroundWorker.cs | 4 + .../ProbationReminderWorker.cs | 57 + .../Data/SeedConsts.cs | 11 +- .../Host/Definitions/TerminationReason.cs | 15 + .../{Intranet => }/IntranetWidget.cs | 0 .../Tenant/Administration/UserBenefit.cs | 23 + .../Tenant/Administration/UserCertificate.cs | 24 + .../Tenant/Administration/UserEducation.cs | 24 + .../Administration/UserEmergencyContact.cs | 20 + .../Tenant/Administration/UserFamilyMember.cs | 26 + .../Tenant/Administration/UserLanguage.cs | 21 + .../Tenant/Administration/UserSkill.cs | 21 + .../Intranet/Announcement.cs | 0 .../Intranet/AnnouncementComment.cs | 0 .../Intranet/AnnouncementLike.cs | 0 .../{Administration => Hr}/Intranet/Event.cs | 0 .../Intranet/EventCategory.cs | 0 .../Intranet/EventComment.cs | 0 .../Intranet/EventLike.cs | 0 .../Intranet/EventType.cs | 0 .../Intranet/SocialPost.cs | 0 .../{Administration => Hr}/Intranet/Survey.cs | 0 .../Extensions/AbpIdentityUserExtensions.cs | 321 +- .../EntityFrameworkCore/PlatformDbContext.cs | 130 + .../PlatformEfCoreEntityExtensionMappings.cs | 272 +- ....cs => 20261002230416_Initial.Designer.cs} | 728 ++- ...5_Initial.cs => 20261002230416_Initial.cs} | 1771 +++--- .../PlatformDbContextModelSnapshot.cs | 726 ++- .../Seeds/TenantIdentityDataSeeder.cs | 1 - .../host/data/Abp.Identity.Permissions.json | 2530 ++++---- .../App.BackgroundWorkers.RecurringJobs.json | 10 + .../App.Definitions.TerminationReason.json | 295 + .../App.DeveloperKit.IntranetWidgets.json | 12 +- ...json => App.Hr.Intranet.Announcement.json} | 2 +- ...json => App.Hr.Intranet.Events.Event.json} | 2 +- ...App.Hr.Intranet.Events.EventCategory.json} | 2 +- ... App.Hr.Intranet.Events.EventComment.json} | 2 +- ... => App.Hr.Intranet.Events.EventType.json} | 2 +- ...son => App.Hr.Intranet.SocialComment.json} | 2 +- ...e.json => App.Hr.Intranet.SocialLike.json} | 2 +- ....json => App.Hr.Intranet.SocialMedia.json} | 2 +- ... => App.Hr.Intranet.SocialPollOption.json} | 2 +- ...t.json => App.Hr.Intranet.SocialPost.json} | 2 +- ...urvey.json => App.Hr.Intranet.Survey.json} | 2 +- ...on => App.Hr.Intranet.SurveyQuestion.json} | 2 +- ...App.Hr.Intranet.SurveyQuestionOption.json} | 2 +- .../host/data/App.Languages.LanguageText.json | 2076 ++++++- configs/seeds/host/data/App.Menus.Menu.json | 265 +- configs/seeds/host/data/App.Menus.Routes.json | 2 +- .../App.Notifications.NotificationRules.json | 10 + .../App.Notifications.NotificationTypes.json | 5 + ui/src/components/template/MobileNav.tsx | 2 +- ui/src/proxy/admin/models.ts | 37 +- ui/src/services/identity.service.ts | 14 + .../admin/profile/components/General.tsx | 9 - .../views/admin/user-management/Details.tsx | 1488 +++-- .../user-management/EducationSkillsTab.tsx | 110 + .../user-management/FamilyEmergencyTab.tsx | 33 + .../admin/user-management/FinancialTab.tsx | 124 + .../user-management/useUserFieldLookup.ts | 39 + .../admin/user-management/userFormFields.tsx | 85 + .../intranet/documents/IntranetDocuments.tsx | 48 +- ui/src/views/intranet/widgets/Documents.tsx | 2 +- 80 files changed, 13752 insertions(+), 6457 deletions(-) create mode 100644 api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserFinancialDto.cs create mode 100644 api/src/Sozsoft.Platform.Domain/BackgroundWorkers/ProbationReminderWorker.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/TerminationReason.cs rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/{Intranet => }/IntranetWidget.cs (100%) create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserBenefit.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserCertificate.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEducation.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEmergencyContact.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserFamilyMember.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserLanguage.cs create mode 100644 api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserSkill.cs rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/Announcement.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/AnnouncementComment.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/AnnouncementLike.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/Event.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/EventCategory.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/EventComment.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/EventLike.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/EventType.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/SocialPost.cs (100%) rename api/src/Sozsoft.Platform.Domain/Entities/Tenant/{Administration => Hr}/Intranet/Survey.cs (100%) rename api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/{20261001063425_Initial.Designer.cs => 20261002230416_Initial.Designer.cs} (93%) rename api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/{20261001063425_Initial.cs => 20261002230416_Initial.cs} (91%) create mode 100644 configs/seeds/host/data/App.Definitions.TerminationReason.json rename configs/seeds/host/data/{App.Intranet.Announcement.json => App.Hr.Intranet.Announcement.json} (98%) rename configs/seeds/host/data/{App.Intranet.Events.Event.json => App.Hr.Intranet.Events.Event.json} (97%) rename configs/seeds/host/data/{App.Intranet.Events.EventCategory.json => App.Hr.Intranet.Events.EventCategory.json} (90%) rename configs/seeds/host/data/{App.Intranet.Events.EventComment.json => App.Hr.Intranet.Events.EventComment.json} (97%) rename configs/seeds/host/data/{App.Intranet.Events.EventType.json => App.Hr.Intranet.Events.EventType.json} (98%) rename configs/seeds/host/data/{App.Intranet.SocialComment.json => App.Hr.Intranet.SocialComment.json} (97%) rename configs/seeds/host/data/{App.Intranet.SocialLike.json => App.Hr.Intranet.SocialLike.json} (90%) rename configs/seeds/host/data/{App.Intranet.SocialMedia.json => App.Hr.Intranet.SocialMedia.json} (97%) rename configs/seeds/host/data/{App.Intranet.SocialPollOption.json => App.Hr.Intranet.SocialPollOption.json} (93%) rename configs/seeds/host/data/{App.Intranet.SocialPost.json => App.Hr.Intranet.SocialPost.json} (97%) rename configs/seeds/host/data/{App.Intranet.Survey.json => App.Hr.Intranet.Survey.json} (95%) rename configs/seeds/host/data/{App.Intranet.SurveyQuestion.json => App.Hr.Intranet.SurveyQuestion.json} (98%) rename configs/seeds/host/data/{App.Intranet.SurveyQuestionOption.json => App.Hr.Intranet.SurveyQuestionOption.json} (97%) create mode 100644 ui/src/views/admin/user-management/EducationSkillsTab.tsx create mode 100644 ui/src/views/admin/user-management/FamilyEmergencyTab.tsx create mode 100644 ui/src/views/admin/user-management/FinancialTab.tsx create mode 100644 ui/src/views/admin/user-management/useUserFieldLookup.ts create mode 100644 ui/src/views/admin/user-management/userFormFields.tsx diff --git a/.github/instructions/lowcode-reference.instructions.md b/.github/instructions/lowcode-reference.instructions.md index bb6830cd..904a5d4f 100644 --- a/.github/instructions/lowcode-reference.instructions.md +++ b/.github/instructions/lowcode-reference.instructions.md @@ -1168,7 +1168,7 @@ bir kez çalışır; açılış verisi çekme ve `refs` üzerinden ilk durumu ku `BackgroundWorker` kaydı (`Sas_H_BackgroundWorker`, ekran Saas › Background Workers › Recurring Jobs) `WorkerType: 1` (MailQueueWorker) ise gövde bu modüldür (`api/modules/Sozsoft.MailQueue`). Diğer tipler: `2` SqlWorker (`BeforeSp`/`AfterSp`) · `3` -NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker. `Scope`: `1` Host · `2` Tenant · +NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker · `6` ProbationReminderWorker. `Scope`: `1` Host · `2` Tenant · `3` All (host + her kiracı) — kiracı tablosuna dokunan iş `Host` olamaz (`README.md` §14). Hazır işler `data/App.BackgroundWorkers.RecurringJobs.json` ile gelir. @@ -1256,6 +1256,7 @@ soneklerini alır. | **Definitions › AiBot** | `App.Definitions.AiBot` | `Sas_H_AiBot` | host | Yapay zekâ asistanı tanımı (`Name`, `ApiUrl`, `Tenants`); `/admin/ai` bu kayıtları kullanır. | | **Definitions › Global Search** | `App.Definitions.GlobalSearch` | `Sas_T_GlobalSearch` | tenant | Üretilen ekranın üst aramada çıkması için kayıt: `System`, `Group`, `Term`, `Weight`, `Url`. | | **Definitions › Contact Title** | `App.Definitions.ContactTitle` | `Sas_H_ContactTitle` | host | Ünvan/hitap lookup'ı (`Title`, `Abbreviation`). | +| **Definitions › Termination Reasons** | `App.Definitions.TerminationReason` | `Sas_H_TerminationReason` | host | SGK işten çıkış kodları (`Code`, `Name`, `IsActive`); mevzuat kodu olduğu için bütün kiracılarda ortaktır. Seed `data/App.Definitions.TerminationReason.json` (06/07 mülga). Kullanıcının `TerminationReasonId` alanı `LookupQueryValues.TerminationReasonValues` ile buraya bağlanır. | | **Definitions › Currency** | `App.Definitions.Currency` | `Sas_H_Currency` | host | Para birimi + `Rate`. Tutar alanı olan ekranın kur lookup'ı ve `DbQuery` varsayılanı buradan beslenir. | | **Definitions › Country Group / Country / City / District** | `App.Definitions.CountryGroup` · `.Country` · `.City` · `.District` | `Sas_H_CountryGroup` · `Sas_H_Country` · `Sas_H_City` · `Sas_H_District` | host | Adres alanlarının hazır cascade zinciri (dört ayrı menü ve seed dosyası; `Order` sırası grup → ülke → il → ilçe). `Country` ayrıca `PhoneCode`, `PhoneNumberFormat`, `ZipRequired`, `StateRequired`, `TaxLabel` taşır — adres doğrulaması için kullan. | | **Public › Products / Payment Methods / Installment Options** | `App.Orders.Products` · `.PaymentMethods` · `.InstallmentOptions` | `Sas_H_Product` · `Sas_H_PaymentMethod` · `Sas_H_InstallmentOption` | host | Ürün, ödeme yöntemi (`Commission`), taksit — satış/abonelik ekranlarının ve public `/products` sayfasının kaynağı. | @@ -1304,19 +1305,17 @@ ekranları ABP tablolarıdır, Licence/Dev Request host tablolarını okur. | **Bildirimler › Bildirimler** | `App.Notifications.Notification` | `Adm_T_Notification` | Hem kuyruk günlüğü hem elle gönderim ekranı: liste kural motorunun ürettiklerini de gösterir, ekleme formu alıcı × kanal açılımını kuyruğa yazar (`InsertServiceAddress = list-form-dynamic-api/notification-insert`; `dxTagBox` çoklu alıcı/kanal). Tip her zaman `Manuel`, güncelleme kapalı. Ayrı bir manuel gönderim tablosu yoktur. Ayrıntı: `README.md` §13.5.1. | | **Agenda** | `App.Agenda` | `Adm_T_Agenda` | **Takvim (Scheduler) düzeninin** referansı (`DefaultLayout: scheduler`): `StartDate`, `EndDate`, `AllDay`, `RecurrenceRule`, `RecurrenceException`. Tekrarlayan randevu isteği kod gerektirmez. | | **Settings** | `App.Setting` · `/admin/settings` | — | `SettingDefinition` kayıtlarından üretilen ayar ekranı; değerler burada girilir. | -| **Intranet › Announcement** | `App.Intranet.Announcement` (alt formlar Like/Comment) | `Adm_T_Announcement` · `Adm_T_AnnouncementLike` · `Adm_T_AnnouncementComment` | Duyuru + beğeni + yorum: **ana kayıt / alt etkileşim** kalıbının hazır örneği. | -| **Intranet › Survey** | `App.Intranet.Survey` (alt form Question → Option; Response → Answer) | `Adm_T_Survey` · `Adm_T_SurveyQuestion` · `Adm_T_SurveyQuestionOption` · `Adm_T_SurveyResponse` · `Adm_T_SurveyAnswer` | Anket motoru; soru–seçenek–yanıt zinciri **iki seviyeli alt form** ihtiyacının referansıdır. | -| **Intranet › Social Post** | `App.Intranet.SocialPost` | `Adm_T_SocialPost` · `Adm_T_SocialComment` · `Adm_T_SocialLike` (+ `SocialPollOption`, `SocialMedia`, `SocialLocation`) | Kurum içi akış; `IsLiked`, `IsOwnPost` gibi hesaplanmış kolonların view içinde üretilmesine örnek. Alt formlar: `App.Intranet.SocialMedia`, `SocialComment`, `SocialLike` (`Id` → `SocialPostId`); anket seçenekleri (`App.Intranet.SocialPollOption`) medyaya bağlı olduğu için `SocialMedia` ekranının alt formudur (`Id` → `SocialMediaId`). | -| **Intranet › Event Type / Category / Event** | `App.Intranet.Events.EventType` · `.EventCategory` · `.Event` | `Adm_T_EventType` · `Adm_T_EventCategory` · `Adm_T_Event` · `Adm_T_EventPhoto` · `Adm_T_EventLike` · `Adm_T_EventComment` | Etkinlik yönetimi; foto ve katılımcı sayacı olan kayıt kalıbı. `EventLike`/`EventComment` alt formdur, `EventPhoto` menüde yer almaz; yetkileri `App.Intranet.Events.Event` altındadır. `Adm_T_EventPhoto` tablosu `sql/object/Adm_T_EventPhoto.sql` ile oluşturulur. | -| **Intranet › Documents** | `App.Intranet.Document` · `/admin/intranet-documents` | Dosya yöneticisi (`intranet` / `intranet\|_passive` klasörleri) | Kurum içi doküman paylaşımı — aktif/pasif klasör, yükleme, taşıma, toplu silme. Doküman listesi isteği yeni tablo gerektirmez. | | **Restrictions › Work Hour** | `App.Restrictions.WorkHour` | `Adm_T_WorkHour` | Gün bazlı çalışma saati (`Monday`…`Sunday`, `StartTime`, `EndTime`); kullanıcıya `AbpUsers.WorkHour` ile bağlanır. "Sadece mesai saatinde girilebilsin" burada çözülür. | | **Restrictions › IP Restrictions** | `App.Restrictions.IpRestrictions` | `Adm_T_IpRestriction` | `ResourceType` + `ResourceId` + `IP` — kullanıcı/rol bazlı IP kısıtı. | | **Identity › Permission Groups / Permissions** | `Abp.Identity.PermissionGroups` · `Abp.Identity.Permissions` | `AbpPermissionGroups` · `AbpPermissions` | Yetki ağacı (tree düzeni). Yeni ekranın yetkileri burada görünür; `Modules` kolonu yetkiyi modüllere bağlar (pipe ile çoklu), `Order` kardeşler arası sıradır. Seed: `data/Abp.Identity.Permission{Groups,s}.json`. | | **Identity › Claim Type** | `App.IdentityManagement.ClaimType` | `AbpClaimTypes` | Kullanıcıya ek alan (claim) tanımı: `ValueType`, `Regex`, `Required`, `IsStatic`. | | **Identity › Roles** | `AbpIdentity.Roles` | `AbpRoles` | Rol yönetimi + `RolesPermission` diyaloğu; yeni ekranın yetkisi role buradan verilir. Yazma `list-form-dynamic-api/role-*`. | -| **Identity › Users** | `AbpIdentity.Users` · detay `/admin/users/detail/:userId` | `AbpUsers` | Kullanıcı yönetimi + `UsersPermission` diyaloğu, **KPI widget'ları** ve `list-form-dynamic-api/user-*` ile devredilen yazma. Kullanıcı `WorkHour`, `DepartmentId`, `JobPositionId`, `Gender` (`Male`/`Female`, `App.StaticLookup.*`) ve `HomeAddress` alanlarını liste ve formda taşır; kişisel ve kimlik bilgileri (`IdentityNumber`, `BirthDate`, `EducationLevel`, `Nationality`, `SskNo`…) detay ekranındadır. Detaydaki **Sağlık Kartı** sekmesi `BloodType` ile soy geçmişini (`{Mother,Father,Sibling,Child}HealthStatus` — `Alive`/`Deceased`, `App.StaticLookup.*` — ve `…HealthNote`) ve öz geçmişini (`ChronicDisease`, `TetanusVaccination`, `HepatitisVaccination`, `OtherVaccination`) taşır; sekme dört gruptur (Soy/Öz Geçmişi, Laboratuvar - Fizik Muayene `Lab*`/`Exam*`, Anamnez `Complaint*`/`Diagnosis*` + 3-10. sorular, Sonuç `FitForWork*`/`ShiftWorkFit`/`NightWorkFit`). Sonuçtaki hekim (`FitnessDoctorId`, `ShiftNightDoctorId`) wizard tablosu `Hr_T_Doctor`'dan `LookupQueryValues.TenantDoctorValues` ile seçilir; diploma ve işyeri hekimliği belgesi hekimden gösterilir, kullanıcıya yazılmaz. Bu alanların hepsi listede gizli alandır; arayüz `user-management/HealthCardTab.tsx`. Kullanıcı seçen her lookup bu bilgileri `AbpUsers`'tan okur ve kopya kolon aynı ad/tip/değer kümesiyle açılır (`lowcode.instructions.md` §0.12 madde 5). Yeni bir kullanıcı alanı = `PlatformConsts.AbpIdentity.User` + `AbpIdentityUserExtensions` + EF eşlemesi ve migration + `UserInfoViewModel` (detay/profil) + `CreateUpdateUserInput` ve `user-insert`/`user-update` (liste) + `ListFormSeeder_Administration` alanı. | +| **Identity › Users** | `AbpIdentity.Users` · detay `/admin/users/detail/:userId` | `AbpUsers` | Kullanıcı yönetimi + `UsersPermission` diyaloğu, **KPI widget'ları** ve `list-form-dynamic-api/user-*` ile devredilen yazma. Kullanıcı `WorkHour`, `DepartmentId`, `JobPositionId`, `Gender` (`Male`/`Female`, `App.StaticLookup.*`) ve `HomeAddress` alanlarını liste ve formda taşır; kişisel ve kimlik bilgileri (`IdentityNumber`, `BirthDate`, `EducationLevel`, `Nationality`, `SskNo`…) detay ekranındadır. Detay sekmeleri karışmasın diye gruplanmıştır: **General** (iletişim + ikinci e-posta/telefon, ek bilgi, avatar, askerlik `MilitaryStatus`/`MilitaryPostponeEndDate`, engellilik `IsDisabled`/`DisabilityRate`/`DisabilityReport` — rapor base64, 5 MB), **Identity** (nüfus cüzdanı, doğum ve aile, uyruk Türkiye değilse yabancı uyruk `Passport*`/`WorkPermit*`), **Work** (organizasyon `RegistrationNo`/`SskNo`/`ShiftId`/`PdksCardNo`, sözleşme `EmploymentType`/`ContractType`/`ContractEndDate`/`ProbationEndDate`/`SeniorityStartDate`, çıkış `TerminationDate`/`TerminationReasonId`/`TerminationNote`, sürücü belgesi `DrivingLicense*` — sınıflar `|` ile, iletişim kanalları; altında iş deneyimi), **Education & Skills** (en yüksek `EducationLevel` + eğitim/dil/yetenek/belge alt listeleri), **Family / Emergency**, **Financial** (`BankName`, `Iban`, `SalaryType`, `GrossSalary`, `SalaryCurrency` + yan haklar), Health, Permissions, Lockout, Claims. Deneme süresi işe girişten en fazla dört ay sonra biter (`UpdateUserAsync` ve ekran doğrular). Ücret alanları `UserInfoViewModel`'de taşınmaz — o model intranet doğum günü listesine de akar; `GET {id}/financial` / `PUT financial` uçlarından okunur, yetki detayınkiyle aynıdır (`AbpIdentity.Users.Update`). Aynı sebeple `DisabilityReport` yalnızca `GetByIdAsync`'te doldurulur. `ShiftId`, `TerminationReasonId`, `SalaryCurrency` seçenekleri ekranda `list-form-select/lookup` ile bu ListForm'un alan lookup'larından okunur (`useUserFieldLookup`). Detaydaki **Sağlık Kartı** sekmesi `BloodType` ile soy geçmişini (`{Mother,Father,Sibling,Child}HealthStatus` — `Alive`/`Deceased`, `App.StaticLookup.*` — ve `…HealthNote`) ve öz geçmişini (`ChronicDisease`, `TetanusVaccination`, `HepatitisVaccination`, `OtherVaccination`) taşır; sekme dört gruptur (Soy/Öz Geçmişi, Laboratuvar - Fizik Muayene `Lab*`/`Exam*`, Anamnez `Complaint*`/`Diagnosis*` + 3-10. sorular, Sonuç `FitForWork*`/`ShiftWorkFit`/`NightWorkFit`). Sonuçtaki hekim (`FitnessDoctorId`, `ShiftNightDoctorId`) wizard tablosu `Hr_T_Doctor`'dan `LookupQueryValues.TenantDoctorValues` ile seçilir; diploma ve işyeri hekimliği belgesi hekimden gösterilir, kullanıcıya yazılmaz. Bu alanların hepsi listede gizli alandır; arayüz `user-management/HealthCardTab.tsx`. Kullanıcı seçen her lookup bu bilgileri `AbpUsers`'tan okur ve kopya kolon aynı ad/tip/değer kümesiyle açılır (`lowcode.instructions.md` §0.12 madde 5). Yeni bir kullanıcı alanı = `PlatformConsts.AbpIdentity.User` + `AbpIdentityUserExtensions` + EF eşlemesi ve migration + `UserInfoViewModel` (detay/profil) + `CreateUpdateUserInput` ve `user-insert`/`user-update` (liste) + `ListFormSeeder_Administration` alanı. | | **Identity › Users › Work Experience** | `App.IdentityManagement.UserWorkExperience` (menüsüz alt liste) | `Adm_T_UserWorkExperience` | Kullanıcının daha önce çalıştığı yerler: `CompanyName`, `SectorId` (Sektörler lookup'ı, `LookupQueryValues.TenantSectorValues`), `StartDate`, `EndDate`, `JobDescription` (HtmlEditor). Entity `IMultiTenant`; kullanıcı detayının Work sekmesinde `PlatformViewHost` ile `UserId` filtresiyle gömülüdür, yeni satır `UserId`'yi filtreden alır. Kendi yetkisi yoktur: okuma `AbpIdentity.Users`, ekleme/güncelleme/silme detay sayfasının yetkisi `AbpIdentity.Users.Update`. | | **Identity › Users › Health Card lists** | `App.IdentityManagement.UserPeriodicExamination` · `.UserPatientProtocol` · `.UserSickLeave` (menüsüz alt listeler) | `Adm_T_UserPeriodicExamination` · `Adm_T_UserPatientProtocol` · `Adm_T_UserSickLeave` | Periyodik muayene (hekim `Hr_T_Doctor`'dan, diploma no seçimde `EditorScript.Copy` ile kopyalanır), hasta protokol defteri (`ProtocolType`/`ProtocolResult` statik lookup) ve istirahat listesi (`Days` tarihlerden `EditorScript.Days` ile hesaplanır). Entity'ler `IMultiTenant`; Sağlık Kartı sekmesinde (`HealthCardTab.tsx`) `UserId` filtresiyle gömülüdür. Yetki Work Experience ile aynıdır: okuma `AbpIdentity.Users`, ekleme/güncelleme/silme `AbpIdentity.Users.Update`. | +| **Identity › Users › Education & Skills lists** | `App.IdentityManagement.UserEducation` · `.UserLanguage` · `.UserSkill` · `.UserCertificate` (menüsüz alt listeler) | `Adm_T_UserEducation` · `Adm_T_UserLanguage` · `Adm_T_UserSkill` · `Adm_T_UserCertificate` | Eğitim geçmişi (`EducationLevel` kullanıcınınkiyle aynı değerler, `SchoolName`, `Department`, `StartDate`, `EndDate`, `IsGraduated`), yabancı dil (`SkillId` → `Languages` tipindeki `Hr_T_Skill`, `SkillLevelId` dilin tipine ait `Hr_T_SkillLevel`, cascade), yetenek (`SkillId` → `Languages` dışındaki tipler, `Level` 1-5 statik lookup, check constraint) ve yeterlilik belgesi (`CertificateId` → wizard tablosu `Hr_T_Certificate`, EF ilişkisi yok; `CertificateNo`, `IssuedBy`, `IssueDate`, `ExpiryDate`). Lookup'lar `LookupQueryValues.Tenant{LanguageSkill,SkillLevelBySkill,NonLanguageSkill,Certificate}Values`. `EducationSkillsTab.tsx`; yetki Work Experience ile aynıdır. | +| **Identity › Users › Family / Emergency lists** | `App.IdentityManagement.UserFamilyMember` · `.UserEmergencyContact` | `Adm_T_UserFamilyMember` · `Adm_T_UserEmergencyContact` | Eş ve çocuklar (`Relationship` `Spouse`/`Child`, ad, TC, doğum tarihi, `EmploymentStatus`, `IsInsuranceCovered`, `IsBenefitCovered`) ve acil durum kişileri (ad, `Relationship`, telefon). `FamilyEmergencyTab.tsx`; yetki Work Experience ile aynıdır. | +| **Identity › Users › Benefits** | `App.IdentityManagement.UserBenefit` | `Adm_T_UserBenefit` | Yan haklar (`BenefitType` statik lookup `App.StaticLookup.Benefit*`, `Amount`, `StartDate`, `EndDate`, `Note`); Financial sekmesinde (`FinancialTab.tsx`). Yetki Work Experience ile aynıdır. | | **Identity › Organization Units** | `Abp.Identity.OrganizationUnits` · `/admin/ous` | ABP OU tabloları | Birim ağacı. Ekranı `IsOrganizationUnit = true` yaparsan veri bu ağaca göre süzülür; bildirim alıcısı da OU olabilir. | | **Identity › Audit Logs** | `App.IdentityManagement.AuditLogs` | `AbpAuditLogs` | İstek denetim kaydı + `AuditLogDetail` diyaloğu. "Kim ne zaman ne yaptı" isteği yeni tablo gerektirmez. | | **Identity › Sessions** | `App.IdentityManagement.Sessions` | `AbpSessions` | Açık oturumlar; `UiEvalService.ApiKickUser` ile oturum düşürme (`lowcode` §9.13). | @@ -1353,6 +1352,10 @@ ListForm kodu / menü kodu / yetki adı / dil anahtarı `App.Hr.*`, seed dosyas seeder `ListFormSeeder_Hr.cs` (`SeedConsts.AppCodes.Hr`, `PlatformConsts.AppCodes.Hr`), entity klasörü `Entities/Tenant/Hr/Definitions`. Tanımlar alt menüsü `App.Hr.Definitions`'tır (`App.Platform.Definitions` başlığı); Organizasyon Şeması doğrudan `App.Hr` altındadır. +Intranet de bu moduldedir: menü `App.Hr.Intranet`, ekran/yetki kodları `App.Hr.Intranet.*` +(`SeedConsts.AppCodes.Intranet`), tablolar `Hr_T_{Announcement,Survey*,Social*,Event*}` ve mesajlaşma +`Hr_T_MessengerConversation*`, entity klasörü `Entities/Tenant/Hr/Intranet`. `Sas_T_IntranetWidget` +(Developer Kit › Intranet Widgets) Saas'ta kalır; kayıtlarının `PermissionName` değerleri `App.Hr.Intranet.*.Widget`'tır. İK yetkilerinin `Modules` değeri `Sas|Hr`'dir: host (`Sas`) her zaman görür, kiracı yalnızca modül listesinde `Hr` varsa görür (modül listesi boş kiracıda süzme yoktur — `MenuAppService`, @@ -1367,6 +1370,11 @@ listesinde `Hr` varsa görür (modül listesi boş kiracıda süzme yoktur — ` | **Definitions › Department** | `App.Hr.Department` | `Hr_T_Department` | tenant | **Şube bazlı** departman ağacı: ilk sütun `BranchId` (Şube Adı; `LookupQueryValues.TenantBranchValues`, zorunlu), `ParentId` lookup'ı seçili şubenin departmanlarına süzülür (`BranchDepartmentValues`, cascade `BranchId`). `ParentId` ile **ağaç (TreeList) düzeninin** referansı; personel/onay ekranlarının departman lookup'ı. Tekil indeks `TenantId + BranchId + Name`. Seed `data/App.Hr.Department.json`. | | **Definitions › Job Position** | `App.Hr.JobPosition` | `Hr_T_JobPosition` | tenant | Ünvan ağacı. Form sırası `BranchId` → `DepartmentId` (şubeye göre süzülür) → `Name` → `ParentId` (departmana göre süzülür); şube değişince departman ve üst görev temizlenir (`CascadeEmptyFields`). **İki kademeli cascade** örneği. Seed `data/App.Hr.JobPosition.json`. | | **Org Chart** | `App.Hr.OrgChart` · `/admin/organization` | `Hr_T_Department` · `Hr_T_JobPosition` | tenant | Departman/ünvan verisinin organizasyon şeması görünümü (özel React sayfası `hr/OrgChart`, veri `api/app/org-chart`). Menü ve route aynı yetkiyi ister. | +| **Intranet › Announcement** | `App.Hr.Intranet.Announcement` (alt formlar Like/Comment) | `Hr_T_Announcement` · `Hr_T_AnnouncementLike` · `Hr_T_AnnouncementComment` | tenant | Duyuru + beğeni + yorum: **ana kayıt / alt etkileşim** kalıbının hazır örneği. | +| **Intranet › Survey** | `App.Hr.Intranet.Survey` (alt form Question → Option; Response → Answer) | `Hr_T_Survey` · `Hr_T_SurveyQuestion` · `Hr_T_SurveyQuestionOption` · `Hr_T_SurveyResponse` · `Hr_T_SurveyAnswer` | tenant | Anket motoru; soru–seçenek–yanıt zinciri **iki seviyeli alt form** ihtiyacının referansıdır. | +| **Intranet › Social Post** | `App.Hr.Intranet.SocialPost` | `Hr_T_SocialPost` · `Hr_T_SocialComment` · `Hr_T_SocialLike` (+ `SocialPollOption`, `SocialMedia`, `SocialLocation`) | tenant | Kurum içi akış; `IsLiked`, `IsOwnPost` gibi hesaplanmış kolonların view içinde üretilmesine örnek. Alt formlar: `App.Hr.Intranet.SocialMedia`, `SocialComment`, `SocialLike` (`Id` → `SocialPostId`); anket seçenekleri (`App.Hr.Intranet.SocialPollOption`) medyaya bağlı olduğu için `SocialMedia` ekranının alt formudur (`Id` → `SocialMediaId`). | +| **Intranet › Event Type / Category / Event** | `App.Hr.Intranet.Events.EventType` · `.EventCategory` · `.Event` | `Hr_T_EventType` · `Hr_T_EventCategory` · `Hr_T_Event` · `Hr_T_EventPhoto` · `Hr_T_EventLike` · `Hr_T_EventComment` | tenant | Etkinlik yönetimi; foto ve katılımcı sayacı olan kayıt kalıbı. `EventLike`/`EventComment` alt formdur, `EventPhoto` menüde yer almaz; yetkileri `App.Hr.Intranet.Events.Event` altındadır. `Hr_T_EventPhoto` tablosu `sql/object/Hr_T_EventPhoto.sql` ile oluşturulur. | +| **Intranet › Documents** | `App.Hr.Intranet.Document` · `/admin/intranet-documents` | Dosya yöneticisi (`intranet` / `intranet\|_passive` klasörleri) | tenant | Kurum içi doküman paylaşımı — aktif/pasif klasör, yükleme, taşıma, toplu silme. Doküman listesi isteği yeni tablo gerektirmez. | **Şube bilgisi:** `Department.BranchId` ve `JobPosition.BranchId` (`Guid`, **zorunlu** — kolon `NOT NULL`, formda zorunlu alan; değer `Sas_T_Branch.Id`) şubeyi taşır; ekranlar `IsBranch = false`'tur (satırlar kullanıcının şube atamasına göre süzülmez, şube @@ -1410,7 +1418,7 @@ görünürlük `checkPermission` ile bileşen içinde kurulur (`lowcode` §7.5). | `/admin/reports/:report/{view,design}/:id?/:listFormCode?` | `DevexpressReportViewer` · `DevexpressReportDesigner` | — | | `/admin/settings` | `settings/Settings` | `App.Setting` | | `/admin/files` | `admin/files/FileManager` | `App.Files` | -| `/admin/intranet-documents` | `intranet/documents/IntranetDocuments` | `App.Intranet.Document` | +| `/admin/intranet-documents` | `intranet/documents/IntranetDocuments` | `App.Hr.Intranet.Document` | | `/admin/ous` · `/admin/organization` | `organization-unit/OrganizationUnits` · `hr/OrgChart` | `Abp.Identity.OrganizationUnits` · `App.Hr.OrgChart` (menü ile aynı — §12.4) | | `/admin/forum` | `forum/Forum` | `App.ForumManagement.Publish` | | `/admin/videoroom/{dashboard,list,room/:id}` | `admin/videoroom/{Dashboard,RoomList,RoomDetail}` | `App.Videoroom{,.List,.Detail}` | diff --git a/.github/instructions/lowcode.instructions.md b/.github/instructions/lowcode.instructions.md index a42bff65..a6e1e999 100644 --- a/.github/instructions/lowcode.instructions.md +++ b/.github/instructions/lowcode.instructions.md @@ -746,11 +746,20 @@ Kısa ve karar odaklı yaz; talebi tekrar anlatma. (`dxTextArea`, `dxHtmlEditor`) de `nvarchar(MAX)`'tir. **Kullanıcı (çalışan) bilgisi `AbpUsers`'tan okunur.** Kullanıcıya ait her bilgi kullanıcı kaydında durur: `IdentityNumber` (TC), `BirthDate`, `BirthPlace`, `Gender` (`Male`/`Female`), - `HomeAddress`, `EducationLevel`, `GraduationSchool`, `BloodType`, sağlık kartı alanları + `HomeAddress`, `EducationLevel`, `BloodType`, sağlık kartı alanları (`{Mother,Father,Sibling,Child}HealthStatus`/`…HealthNote`, `ChronicDisease`, `…Vaccination`, `Lab*`, `Exam*`, `Complaint*`, `Diagnosis*`, anamnez soruları, `FitForWork*`, `ShiftWorkFit`, `NightWorkFit`, `*DoctorId`), `Nationality`, `MaritalStatus`, `SskNo`, `HireDate`, `DepartmentId`, `JobPositionId`, `WorkHour`, kimlik kartı alanları - (`SerialNo`, `Province`, `District`, `FatherName`, `MotherName`…). Kullanıcı seçen bir lookup bu + (`SerialNo`, `Province`, `District`, `FatherName`, `MotherName`…), yabancı uyruk alanları + (`PassportNo`, `PassportExpiryDate`, `WorkPermitNo`, `WorkPermitEndDate`), askerlik ve engellilik + (`MilitaryStatus` — `Done`/`Exempt`/`Postponed`/`NotDone`, `MilitaryPostponeEndDate`, `IsDisabled`, + `DisabilityRate`), çalışma bilgisi (`RegistrationNo` sicil no, `EmploymentType` — `FullTime`/`PartTime`, + `ContractType` — `Indefinite`/`Definite`, `ContractEndDate`, `ProbationEndDate`, `SeniorityStartDate`, + `TerminationDate`, `TerminationReasonId` → `Sas_H_TerminationReason`, `ShiftId` → `Hr_T_Shift`, + `PdksCardNo`, `DrivingLicense*`). Birden çok satırlı bilgiler kullanıcının alt tablolarındadır: + eğitim geçmişi `Adm_T_UserEducation` (tek `GraduationSchool` alanı kaldırıldı), yabancı dil + `Adm_T_UserLanguage`, yetenek `Adm_T_UserSkill`, yeterlilik belgesi `Adm_T_UserCertificate`, eş/çocuk + `Adm_T_UserFamilyMember`, acil durum kişisi `Adm_T_UserEmergencyContact`, yan hak `Adm_T_UserBenefit`. Kullanıcı seçen bir lookup bu kolonları doğrudan `u.` ile seçer; başka bir ekranın tablosundaki son kayıttan (`OUTER APPLY (SELECT TOP 1 …)`, `COALESCE(önceki kayıt…)`) türetmez — o tablolar kullanıcıyı değil kendi kaydını tutar. Ekranın tablosu bu bilginin kopyasını tutacaksa kolon **aynı ad, aynı tip/boy ve @@ -885,7 +894,7 @@ Query'de üretilmez (kaynak tablo adı değildir), gerekiyorsa elle yazılır. `required` `numeric` `range` `stringLength` `custom` `compare` `pattern` `email` `async` (§4.3.6) **`WorkerType`** (`WorkerTypeEnum`) — `1` MailQueueWorker · `2` SqlWorker · -`3` NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker (§9.10) +`3` NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker · `6` ProbationReminderWorker (§9.10) **`Scope`** (`WorkerScopeEnum`) — `1` Host · `2` Tenant · `3` All (önce host, sonra her kiracı) (§9.10) @@ -4159,7 +4168,7 @@ Ekranlar: `App.BackgroundWorkers.RecurringJobs` (tanımlar) ve `App.BackgroundWo | --- | --- | | `Name` | Benzersiz ad; dağıtık kilit (`DistributedLock`) bu adla alınır — aynı iş iki sunucuda aynı anda çalışmaz | | `Cron` | Cron ifadesi (`*/5 * * * *`, `0 3 * * *`) | -| `WorkerType` | `1` MailQueueWorker · `2` SqlWorker · `3` NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker | +| `WorkerType` | `1` MailQueueWorker · `2` SqlWorker · `3` NotificationWorker · `4` SessionCleanupWorker · `5` BackupWorker · `6` ProbationReminderWorker | | `Scope` | `1` Host (varsayılan) · `2` Tenant · `3` All — aşağıda **Kapsam** | | `DataSourceCode` | `BeforeSp` / `AfterSp` hangi bağlantıda çalışacak | | `BeforeSp` / `AfterSp` | İş gövdesinden **önce ve sonra** çağrılan stored procedure adları | @@ -4218,6 +4227,7 @@ kurulur, kod yazılmaz: | Zamanlanmış e-posta (rapor maili, hatırlatma) | `WorkerType: 1` + `Options` (Mail şablonu + `TableName`) + kuyruğa satır yazan `BeforeSp` | | Olay bazlı bildirimlerin dağıtımı | `WorkerType: 3` + `Scope: 3` (kuyruğu host ve her kiracı için boşaltır) + Notification Type/Rule kayıtları (§9.11) | | Oturum temizliği / yedekleme | `WorkerType: 4` / `5` (+ `App:BackupPath`) | +| Deneme süresi bitiş hatırlatması | `WorkerType: 6` + `Scope: 3`; bildirim tipi `DenemeSuresiBitiyor`, alıcı/kanal tipin kurallarından | **Zamanlanmış e-posta (`MailQueueWorker`)** — "her sabah geciken siparişler listesi şu kişilere mail atılsın" isteğinin yolu budur. Worker'ın `Options` alanı bir `MailQueueWorkerOptions` @@ -4355,7 +4365,7 @@ kullanılacağı** `lowcode-reference.instructions.md` §12'dedir. | "Belirli saatlerde/IP'lerden girilsin" | Work Hours · IP Restrictions | `/admin/list/App.Restrictions.WorkHour` | | "Dosya yükleme/yönetme" | File Manager | `/admin/files` | | "Global aramada çıksın" | Global Search kayıtları (`System`, `Group`, `Term`, `Weight`, `Url`) | `/admin/list/App.Definitions.GlobalSearch` | -| "Duyuru, anket, sosyal akış, etkinlik" | Intranet ekranları | `/admin/list/App.Intranet.*` | +| "Duyuru, anket, sosyal akış, etkinlik" | İK › Intranet ekranları | `/admin/list/App.Hr.Intranet.*` | | "Para birimi, ülke/il/ilçe, birim, sektör…" | Definitions ekranları | `/admin/list/App.Definitions.*` | | "Departman, pozisyon/ünvan, yetkinlik, organizasyon şeması" | İK › Definitions · Org Chart (şube bazlı departman/pozisyon) | `/admin/list/App.Hr.*` · `/admin/organization` | | "Menü düzeni" | Menu Manager (§9.7) | `/admin/menuManager` | diff --git a/README.md b/README.md index 78243eb6..42d910ff 100644 --- a/README.md +++ b/README.md @@ -933,8 +933,8 @@ kimlikle kurulur (`PlatformConsts.Branches.BranchIdDefaultValue`) ve **Yetki kodları** `PlatformConsts.AppCodes` içinde merkezî olarak tanımlıdır ve `configs/seeds/host/data/Abp.Identity.Permissions.json` ile seed edilir (gruplar: `Abp.Identity.PermissionGroups.json` — `App.Saas` (1), `App.Administration` (2), `App.Hr` (3)). -Ana yetki kökleri: `App.Saas`, `App.Branches`, `App.Intranet.*`, -`App.Definitions.*`, `App.Hr.*`, `App.Restrictions.*`, `App.Languages.*`, `App.Listforms.*`, +Ana yetki kökleri: `App.Saas`, `App.Branches`, +`App.Definitions.*`, `App.Hr.*` (Intranet dahil, `App.Hr.Intranet.*`), `App.Restrictions.*`, `App.Languages.*`, `App.Listforms.*`, `App.Notifications.*`, `App.BackgroundWorkers.*`, `App.Menus.*`, `App.DeveloperKit.*`, `App.SqlQueryManager.*`, `App.Orders.*`, `App.BlogManagement.*`, `App.IdentityManagement.*`, `App.Reports.*`, @@ -1699,6 +1699,7 @@ ekranlarından yapılır; yetkiler `App.BackgroundWorkers.RecurringJobs` ve `.Jo | `NotificationWorker` | Bildirim kurallarını değerlendirir ve gönderir. | | `SessionCleanupWorker` | Süresi dolmuş oturumları temizler. | | `BackupWorker` | Veritabanı yedeği alır ve eski yedekleri temizler. | +| `ProbationReminderWorker` | Deneme süresinin bitmesine 15 gün kalan çalışanlar için `DenemeSuresiBitiyor` bildirim tipinin kurallarını işletir (`Scope: All`, her gün 08:00). | **Kapsam (`Scope`).** İş kaydı her zaman host tablosundadır (`Sas_H_BackgroundWorker`); işin **gövdesinin** hangi kiracı bağlamında kaç kez çalışacağını `Scope` belirler @@ -2031,7 +2032,7 @@ configs/seeds/ │ │ # App.Menus.{Routes,Module,Menu}.json — route/modül/menü ağacı │ │ # Abp.Identity.Permission{Groups,s}.json — yetki tanımları │ │ # App.Definitions.{CountryGroup,Country,City,District}.json — adres zinciri -│ │ # App.Definitions.{Currency,ContactTitle,AiBot}.json — para birimi, hitap, AI bot +│ │ # App.Definitions.{Currency,ContactTitle,AiBot,TerminationReason}.json — para birimi, hitap, AI bot, SGK çıkış kodu │ │ # App.Hr.{SkillType,SkillLevel,Skill}.json — İK yetkinlik tanımları │ │ # App.Hr.{Department,JobPosition}.json — İK departman → pozisyon (BranchId ile şubeye bağlı) │ │ # App.Notifications.Notification{Templates,Types,Rules}.json — bildirim şablonu, tipi → kuralı diff --git a/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserFinancialDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserFinancialDto.cs new file mode 100644 index 00000000..7d58d646 --- /dev/null +++ b/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserFinancialDto.cs @@ -0,0 +1,17 @@ +using System; + +namespace Sozsoft.Platform.Identity.Dto; + +/// +/// Kullanicinin banka ve ucret bilgisi. intranet listelerine de +/// aktigi icin bu alanlar orada tasinmaz; kullanici detayinin ayri ucundan okunup yazilir. +/// +public class UserFinancialDto +{ + public Guid Id { get; set; } + public string BankName { get; set; } + public string Iban { get; set; } + public string SalaryType { get; set; } + public decimal? GrossSalary { get; set; } + public string SalaryCurrency { get; set; } +} diff --git a/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserInfoViewModel.cs b/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserInfoViewModel.cs index fbe75bd7..5cf803c5 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserInfoViewModel.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/Identity/Dto/UserInfoViewModel.cs @@ -67,7 +67,6 @@ public class UserInfoViewModel : ExtensibleObject public DateTime? MarriageDate { get; set; } public string HomeAddress { get; set; } public string EducationLevel { get; set; } - public string GraduationSchool { get; set; } public string BloodType { get; set; } public string MotherHealthStatus { get; set; } public string MotherHealthNote { get; set; } @@ -145,4 +144,30 @@ public class UserInfoViewModel : ExtensibleObject public bool? ShiftWorkFit { get; set; } public bool? NightWorkFit { get; set; } public Guid? ShiftNightDoctorId { get; set; } + public string SecondaryEmail { get; set; } + public string SecondaryPhoneNumber { get; set; } + public string MilitaryStatus { get; set; } + public DateTime? MilitaryPostponeEndDate { get; set; } + public bool IsDisabled { get; set; } + public int? DisabilityRate { get; set; } + public string DisabilityReport { get; set; } + public string DisabilityReportFileName { get; set; } + public string PassportNo { get; set; } + public DateTime? PassportExpiryDate { get; set; } + public string WorkPermitNo { get; set; } + public DateTime? WorkPermitEndDate { get; set; } + public string RegistrationNo { get; set; } + public string EmploymentType { get; set; } + public string ContractType { get; set; } + public DateTime? ContractEndDate { get; set; } + public DateTime? ProbationEndDate { get; set; } + public DateTime? SeniorityStartDate { get; set; } + public Guid? TerminationReasonId { get; set; } + public string TerminationNote { get; set; } + public Guid? ShiftId { get; set; } + public string PdksCardNo { get; set; } + public string DrivingLicenseClass { get; set; } + public string DrivingLicenseNo { get; set; } + public DateTime? DrivingLicenseIssueDate { get; set; } + public DateTime? DrivingLicenseExpiryDate { get; set; } } diff --git a/api/src/Sozsoft.Platform.Application.Contracts/LookUpQueryValues.cs b/api/src/Sozsoft.Platform.Application.Contracts/LookUpQueryValues.cs index 99022508..7ed0eead 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/LookUpQueryValues.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/LookUpQueryValues.cs @@ -368,6 +368,81 @@ public static class LookupQueryValues $"WHERE \"IsDeleted\" = 'false' " + $"ORDER BY \"QuestionText\";"; + /// Hr_T_Shift wizard ile uretilen bir tablodur (entity'si yoktur); kullanici bir vardiyaya baglanir. + public static string TenantShiftValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" + ' (' + \"StartTime\" + '-' + \"EndTime\" + ')' AS \"Name\" " + + $"FROM \"Hr_T_Shift\" " + + $"WHERE " + + $"\"IsDeleted\" = 'false' " + + $"AND \"IsActive\" = 'true' " + + $"AND \"TenantId\" = '@TENANTID' " + + $"ORDER BY \"StartTime\";"; + + /// SGK cikis kodlari host tanimidir; kiraci filtresi yoktur, kod adla birlikte gosterilir. + public static string TerminationReasonValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Code\" + ' - ' + \"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.TerminationReason)}\" " + + $"WHERE " + + $"\"IsDeleted\" = 'false' " + + $"AND \"IsActive\" = 'true' " + + $"ORDER BY \"Code\";"; + + /// Hr_T_Certificate wizard ile uretilen bir tablodur; kullanicinin belgesi buradaki tanima baglanir. + public static string TenantCertificateValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"Hr_T_Certificate\" " + + $"WHERE " + + $"\"IsDeleted\" = 'false' " + + $"AND \"IsActive\" = 'true' " + + $"AND \"TenantId\" = '@TENANTID' " + + $"ORDER BY \"Name\";"; + + // Diller de bir yetenek tipidir (Languages); dil listesi o tipe, yetenek listesi diger tiplere suzulur. + private const string LanguageSkillTypeName = "Languages"; + + public static string TenantLanguageSkillValues = + $"SELECT " + + $"s.\"Id\" AS \"Key\", " + + $"s.\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.Skill)}\" s " + + $"INNER JOIN \"{FullNameTable(TableNameEnum.SkillType)}\" t ON t.\"Id\" = s.\"SkillTypeId\" " + + $"WHERE " + + $"s.\"IsDeleted\" = 'false' " + + $"AND t.\"Name\" = '{LanguageSkillTypeName}' " + + $"AND s.\"TenantId\" = '@TENANTID' " + + $"ORDER BY s.\"Name\";"; + + /// Secilen dilin tipine ait seviyeler (A1-C2); @param0 dilin SkillId'sidir. + public static string TenantSkillLevelBySkillValues = + $"SELECT " + + $"l.\"Id\" AS \"Key\", " + + $"l.\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.SkillLevel)}\" l " + + $"INNER JOIN \"{FullNameTable(TableNameEnum.Skill)}\" s ON s.\"SkillTypeId\" = l.\"SkillTypeId\" " + + $"WHERE " + + $"(s.\"Id\" = @param0 OR @param0 IS NULL) " + + $"AND l.\"IsDeleted\" = 'false' " + + $"AND l.\"TenantId\" = '@TENANTID' " + + $"ORDER BY l.\"Progress\";"; + + public static string TenantNonLanguageSkillValues = + $"SELECT " + + $"s.\"Id\" AS \"Key\", " + + $"t.\"Name\" + ' - ' + s.\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.Skill)}\" s " + + $"INNER JOIN \"{FullNameTable(TableNameEnum.SkillType)}\" t ON t.\"Id\" = s.\"SkillTypeId\" " + + $"WHERE " + + $"s.\"IsDeleted\" = 'false' " + + $"AND t.\"Name\" <> '{LanguageSkillTypeName}' " + + $"AND s.\"TenantId\" = '@TENANTID' " + + $"ORDER BY t.\"Name\", s.\"Name\";"; + public static string TechnicalSkillsValues = $"SELECT " + $"\"Name\" AS \"Key\", " + diff --git a/api/src/Sozsoft.Platform.Application/Identity/IdentityMappers.cs b/api/src/Sozsoft.Platform.Application/Identity/IdentityMappers.cs index 7c688959..ae4adf8b 100644 --- a/api/src/Sozsoft.Platform.Application/Identity/IdentityMappers.cs +++ b/api/src/Sozsoft.Platform.Application/Identity/IdentityMappers.cs @@ -66,7 +66,6 @@ public partial class IdentityUserToUserInfoViewModelMapper : MapperBase UserInfo.HireDate.Value.AddMonths(4))) + { + throw new UserFriendlyException(L["Abp.Identity.User.ProbationPeriodInvalid"]); + } + var user = await UserManager.GetByIdAsync(UserInfo.Id); user.Name = UserInfo.Name; @@ -287,7 +298,6 @@ public class PlatformIdentityAppService : ApplicationService user.SetMarriageDate(UserInfo.MarriageDate); user.SetHomeAddress(UserInfo.HomeAddress); user.SetEducationLevel(UserInfo.EducationLevel); - user.SetGraduationSchool(UserInfo.GraduationSchool); user.SetBloodType(UserInfo.BloodType); user.SetMotherHealthStatus(UserInfo.MotherHealthStatus); user.SetMotherHealthNote(UserInfo.MotherHealthNote); @@ -365,12 +375,68 @@ public class PlatformIdentityAppService : ApplicationService user.SetShiftWorkFit(UserInfo.ShiftWorkFit); user.SetNightWorkFit(UserInfo.NightWorkFit); user.SetShiftNightDoctorId(UserInfo.ShiftNightDoctorId); + user.SetSecondaryEmail(UserInfo.SecondaryEmail); + user.SetSecondaryPhoneNumber(UserInfo.SecondaryPhoneNumber); + user.SetMilitaryStatus(UserInfo.MilitaryStatus); + user.SetMilitaryPostponeEndDate(UserInfo.MilitaryPostponeEndDate); + user.SetIsDisabled(UserInfo.IsDisabled); + user.SetDisabilityRate(UserInfo.DisabilityRate); + user.SetDisabilityReport(UserInfo.DisabilityReport); + user.SetDisabilityReportFileName(UserInfo.DisabilityReportFileName); + user.SetPassportNo(UserInfo.PassportNo); + user.SetPassportExpiryDate(UserInfo.PassportExpiryDate); + user.SetWorkPermitNo(UserInfo.WorkPermitNo); + user.SetWorkPermitEndDate(UserInfo.WorkPermitEndDate); + user.SetRegistrationNo(UserInfo.RegistrationNo); + user.SetEmploymentType(UserInfo.EmploymentType); + user.SetContractType(UserInfo.ContractType); + user.SetContractEndDate(UserInfo.ContractEndDate); + user.SetProbationEndDate(UserInfo.ProbationEndDate); + user.SetSeniorityStartDate(UserInfo.SeniorityStartDate); + user.SetTerminationReasonId(UserInfo.TerminationReasonId); + user.SetTerminationNote(UserInfo.TerminationNote); + user.SetShiftId(UserInfo.ShiftId); + user.SetPdksCardNo(UserInfo.PdksCardNo); + user.SetDrivingLicenseClass(UserInfo.DrivingLicenseClass); + user.SetDrivingLicenseNo(UserInfo.DrivingLicenseNo); + user.SetDrivingLicenseIssueDate(UserInfo.DrivingLicenseIssueDate); + user.SetDrivingLicenseExpiryDate(UserInfo.DrivingLicenseExpiryDate); user.SetAvatar(UserInfo.Avatar); user.SetUserType(UserInfo.UserType); (await UserManager.UpdateAsync(user)).CheckErrors(); } + [Authorize(IdentityPermissions.Users.Update)] + public async Task GetFinancialAsync(Guid id) + { + var user = await UserManager.GetByIdAsync(id); + + return new UserFinancialDto + { + Id = user.Id, + BankName = user.GetBankName(), + Iban = user.GetIban(), + SalaryType = user.GetSalaryType(), + GrossSalary = user.GetGrossSalary(), + SalaryCurrency = user.GetSalaryCurrency(), + }; + } + + [Authorize(IdentityPermissions.Users.Update)] + public async Task UpdateFinancialAsync(UserFinancialDto input) + { + var user = await UserManager.GetByIdAsync(input.Id); + + user.SetBankName(input.BankName); + user.SetIban(input.Iban?.Replace(" ", string.Empty).ToUpperInvariant()); + user.SetSalaryType(input.SalaryType); + user.SetGrossSalary(input.GrossSalary); + user.SetSalaryCurrency(input.SalaryCurrency); + + (await UserManager.UpdateAsync(user)).CheckErrors(); + } + [Authorize(IdentityPermissions.Users.Update)] public async Task UpdateAvatarAsync([FromForm] UserAvatarUpdateInput input) { diff --git a/api/src/Sozsoft.Platform.Application/Identity/UserInfoViewModelMappingExtensions.cs b/api/src/Sozsoft.Platform.Application/Identity/UserInfoViewModelMappingExtensions.cs index a4e543e1..75a9673c 100644 --- a/api/src/Sozsoft.Platform.Application/Identity/UserInfoViewModelMappingExtensions.cs +++ b/api/src/Sozsoft.Platform.Application/Identity/UserInfoViewModelMappingExtensions.cs @@ -43,7 +43,6 @@ public static class UserInfoViewModelMappingExtensions userInfoViewModel.MarriageDate = user.GetMarriageDate(); userInfoViewModel.HomeAddress = user.GetHomeAddress(); userInfoViewModel.EducationLevel = user.GetEducationLevel(); - userInfoViewModel.GraduationSchool = user.GetGraduationSchool(); userInfoViewModel.BloodType = user.GetBloodType(); userInfoViewModel.MotherHealthStatus = user.GetMotherHealthStatus(); userInfoViewModel.MotherHealthNote = user.GetMotherHealthNote(); @@ -121,6 +120,31 @@ public static class UserInfoViewModelMappingExtensions userInfoViewModel.ShiftWorkFit = user.GetShiftWorkFit(); userInfoViewModel.NightWorkFit = user.GetNightWorkFit(); userInfoViewModel.ShiftNightDoctorId = user.GetShiftNightDoctorId(); + userInfoViewModel.SecondaryEmail = user.GetSecondaryEmail(); + userInfoViewModel.SecondaryPhoneNumber = user.GetSecondaryPhoneNumber(); + userInfoViewModel.MilitaryStatus = user.GetMilitaryStatus(); + userInfoViewModel.MilitaryPostponeEndDate = user.GetMilitaryPostponeEndDate(); + userInfoViewModel.IsDisabled = user.GetIsDisabled(); + userInfoViewModel.DisabilityRate = user.GetDisabilityRate(); + userInfoViewModel.DisabilityReportFileName = user.GetDisabilityReportFileName(); + userInfoViewModel.PassportNo = user.GetPassportNo(); + userInfoViewModel.PassportExpiryDate = user.GetPassportExpiryDate(); + userInfoViewModel.WorkPermitNo = user.GetWorkPermitNo(); + userInfoViewModel.WorkPermitEndDate = user.GetWorkPermitEndDate(); + userInfoViewModel.RegistrationNo = user.GetRegistrationNo(); + userInfoViewModel.EmploymentType = user.GetEmploymentType(); + userInfoViewModel.ContractType = user.GetContractType(); + userInfoViewModel.ContractEndDate = user.GetContractEndDate(); + userInfoViewModel.ProbationEndDate = user.GetProbationEndDate(); + userInfoViewModel.SeniorityStartDate = user.GetSeniorityStartDate(); + userInfoViewModel.TerminationReasonId = user.GetTerminationReasonId(); + userInfoViewModel.TerminationNote = user.GetTerminationNote(); + userInfoViewModel.ShiftId = user.GetShiftId(); + userInfoViewModel.PdksCardNo = user.GetPdksCardNo(); + userInfoViewModel.DrivingLicenseClass = user.GetDrivingLicenseClass(); + userInfoViewModel.DrivingLicenseNo = user.GetDrivingLicenseNo(); + userInfoViewModel.DrivingLicenseIssueDate = user.GetDrivingLicenseIssueDate(); + userInfoViewModel.DrivingLicenseExpiryDate = user.GetDrivingLicenseExpiryDate(); return userInfoViewModel; } diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs index 136e1f04..e6800350 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs @@ -1455,24 +1455,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), PivotSettingsJson = DefaultPivotSettingsJson }, - new ListFormField { - ListFormCode = listForm.ListFormCode, - RoleId = null, - UserId = null, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "GraduationSchool", - CaptionName = "Abp.Account.GraduationSchool", - Width = 0, - ListOrderNo = 21, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), - PivotSettingsJson = DefaultPivotSettingsJson - }, new ListFormField { ListFormCode = listForm.ListFormCode, RoleId = null, @@ -2997,6 +2979,587 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), PivotSettingsJson = DefaultPivotSettingsJson }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SecondaryEmail", + CaptionName = "Abp.Identity.User.UserInformation.SecondaryEmail", + Width = 0, + ListOrderNo = 106, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SecondaryPhoneNumber", + CaptionName = "Abp.Identity.User.UserInformation.SecondaryPhoneNumber", + Width = 0, + ListOrderNo = 107, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "MilitaryStatus", + CaptionName = "Abp.Identity.User.UserInformation.MilitaryStatus", + Width = 0, + ListOrderNo = 108, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Done", Name="App.StaticLookup.MilitaryDone" }, + new() { Key="Exempt", Name="App.StaticLookup.MilitaryExempt" }, + new() { Key="Postponed", Name="App.StaticLookup.MilitaryPostponed" }, + new() { Key="NotDone", Name="App.StaticLookup.MilitaryNotDone" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "MilitaryPostponeEndDate", + CaptionName = "Abp.Identity.User.UserInformation.MilitaryPostponeEndDate", + Width = 0, + ListOrderNo = 109, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsDisabled", + CaptionName = "Abp.Identity.User.UserInformation.IsDisabled", + Width = 0, + ListOrderNo = 110, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "DisabilityRate", + CaptionName = "Abp.Identity.User.UserInformation.DisabilityRate", + Width = 0, + ListOrderNo = 111, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DisabilityReportFileName", + CaptionName = "Abp.Identity.User.UserInformation.DisabilityReport", + Width = 0, + ListOrderNo = 112, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PassportNo", + CaptionName = "Abp.Identity.User.UserInformation.PassportNo", + Width = 0, + ListOrderNo = 113, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "PassportExpiryDate", + CaptionName = "Abp.Identity.User.UserInformation.PassportExpiryDate", + Width = 0, + ListOrderNo = 114, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "WorkPermitNo", + CaptionName = "Abp.Identity.User.UserInformation.WorkPermitNo", + Width = 0, + ListOrderNo = 115, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "WorkPermitEndDate", + CaptionName = "Abp.Identity.User.UserInformation.WorkPermitEndDate", + Width = 0, + ListOrderNo = 116, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RegistrationNo", + CaptionName = "Abp.Identity.User.UserInformation.RegistrationNo", + Width = 0, + ListOrderNo = 117, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "EmploymentType", + CaptionName = "Abp.Identity.User.UserInformation.EmploymentType", + Width = 0, + ListOrderNo = 118, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="FullTime", Name="App.StaticLookup.FullTime" }, + new() { Key="PartTime", Name="App.StaticLookup.PartTime" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ContractType", + CaptionName = "Abp.Identity.User.UserInformation.ContractType", + Width = 0, + ListOrderNo = 119, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Indefinite", Name="App.StaticLookup.Indefinite" }, + new() { Key="Definite", Name="App.StaticLookup.Definite" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "ContractEndDate", + CaptionName = "Abp.Identity.User.UserInformation.ContractEndDate", + Width = 0, + ListOrderNo = 120, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "ProbationEndDate", + CaptionName = "Abp.Identity.User.UserInformation.ProbationEndDate", + Width = 0, + ListOrderNo = 121, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "SeniorityStartDate", + CaptionName = "Abp.Identity.User.UserInformation.SeniorityStartDate", + Width = 0, + ListOrderNo = 122, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "TerminationReasonId", + CaptionName = "Abp.Identity.User.UserInformation.TerminationReasonId", + Width = 0, + ListOrderNo = 123, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TerminationReasonValues, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TerminationNote", + CaptionName = "Abp.Identity.User.UserInformation.TerminationNote", + Width = 0, + ListOrderNo = 124, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "ShiftId", + CaptionName = "Abp.Identity.User.UserInformation.ShiftId", + Width = 0, + ListOrderNo = 125, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantShiftValues, + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PdksCardNo", + CaptionName = "Abp.Identity.User.UserInformation.PdksCardNo", + Width = 0, + ListOrderNo = 126, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DrivingLicenseClass", + CaptionName = "Abp.Identity.User.UserInformation.DrivingLicenseClass", + Width = 0, + ListOrderNo = 127, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "DrivingLicenseNo", + CaptionName = "Abp.Identity.User.UserInformation.DrivingLicenseNo", + Width = 0, + ListOrderNo = 128, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "DrivingLicenseIssueDate", + CaptionName = "Abp.Identity.User.UserInformation.DrivingLicenseIssueDate", + Width = 0, + ListOrderNo = 129, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "DrivingLicenseExpiryDate", + CaptionName = "Abp.Identity.User.UserInformation.DrivingLicenseExpiryDate", + Width = 0, + ListOrderNo = 130, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BankName", + CaptionName = "App.Listform.ListformField.BankName", + Width = 0, + ListOrderNo = 131, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Iban", + CaptionName = "App.Listform.ListformField.Iban", + Width = 0, + ListOrderNo = 132, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SalaryType", + CaptionName = "Abp.Identity.User.UserInformation.SalaryType", + Width = 0, + ListOrderNo = 133, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Monthly", Name="App.StaticLookup.Monthly" }, + new() { Key="Daily", Name="App.StaticLookup.Daily" }, + new() { Key="Hourly", Name="App.StaticLookup.Hourly" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "GrossSalary", + CaptionName = "Abp.Identity.User.UserInformation.GrossSalary", + Width = 0, + ListOrderNo = 134, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField { + ListFormCode = listForm.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SalaryCurrency", + CaptionName = "App.Listform.ListformField.Currency", + Width = 0, + ListOrderNo = 135, + Visible = false, + IsActive = true, + + AllowSearch = true, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false), + PivotSettingsJson = DefaultPivotSettingsJson + }, ]); #endregion } @@ -5862,3108 +6425,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep } #endregion - #region Announcement - listFormName = AppCodes.Intranet.Announcement; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Announcement)), - WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Announcement)), listFormName, true, - new("App.Widget.Active", "green", "FaBullhorn", "(\"ExpiryDate\" IS NULL OR \"ExpiryDate\" >= CURRENT_TIMESTAMP)"), - new("App.Widget.Pinned", "purple", "FaThumbtack", "\"IsPinned\" = 'true'"), - new("App.Widget.Expired", "gray", "FaCalendarTimes", "\"ExpiryDate\" < CURRENT_TIMESTAMP"), - new("App.Widget.TotalViews", "blue", "FaEye", Value: "COALESCE(SUM(\"ViewCount\"), 0)")), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Announcement)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 750, 700, true, true, true, true, false, true), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "IsPinned", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "PublishDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.AnnouncementLike, - Code = AppCodes.Intranet.AnnouncementLike, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "AnnouncementId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.AnnouncementComment, - Code = AppCodes.Intranet.AnnouncementComment, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "AnnouncementId" - } - } - } - }) - } - ); - - #region Announcement Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Excerpt", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Excerpt", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Category", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Category", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "general", Name= "Abp.Account.General" }, - new () { Key= "event", Name= "App.StaticLookup.Event" }, - new () { Key= "urgent", Name= "App.Listform.ListformField.IsUrgent" }, - new () { Key= "announcement", Name= "App.StaticLookup.Announcement" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "PublishDate", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PublishDate", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "ExpiryDate", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ExpiryDate", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Likes", - CaptionName = "App.Listform.ListformField.Likes", - Width = 0, - Alignment = "right", - ListOrderNo = 11, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsPinned", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsPinned", - Width = 0, - ListOrderNo = 9, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "ImageUrl", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxImageUpload, - ColSpan = 1, - EditorOptions = EditorOptions.ImageUpload(), - CaptionName = "App.Listform.ListformField.ImageUrl", - Width = 0, - ListOrderNo = 10, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region AnnouncementLike - listFormName = AppCodes.Intranet.AnnouncementLike; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AnnouncementLike)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.AnnouncementLike)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region AnnouncementLike Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "AnnouncementId", - CaptionName = "App.Listform.ListformField.AnnouncementId", - Width = 0, - ListOrderNo = 3, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - }); - #endregion - } - #endregion - - #region AnnouncementComment - listFormName = AppCodes.Intranet.AnnouncementComment; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AnnouncementComment)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.AnnouncementComment)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region AnnouncementComment Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "AnnouncementId", - CaptionName = "App.Listform.ListformField.AnnouncementId", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - }); - #endregion - } - #endregion - - #region Survey - listFormName = AppCodes.Intranet.Survey; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Survey)), - WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Survey)), listFormName, true, - new("App.Widget.Active", "green", "FaCheckCircle", "\"Status\" = 'active'"), - new("App.Widget.Passive", "gray", "FaTimesCircle", "\"Status\" = 'passive'"), - new("App.Widget.TotalResponses", "purple", "FaPollH", Value: "COALESCE(SUM(\"Responses\"), 0)")), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Survey)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 500, true, true, true, true, false, true), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=3, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "IsAnonymous", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "Status", FieldDbType = DbType.String, Value = "active", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SurveyQuestion, - Code = AppCodes.Intranet.SurveyQuestion, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SurveyId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SurveyResponse, - Code = AppCodes.Intranet.SurveyResponse, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SurveyId" - } - } - } - }) - }, autoSave: true - ); - - #region Survey Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Title", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 3, - CaptionName = "App.Listform.ListformField.Title", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Date, - FieldName = "Deadline", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Deadline", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Responses", - CaptionName = "App.Listform.ListformField.Responses", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Status", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Status", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "active", Name= "App.Listform.ListformField.IsActive" }, - new () { Key= "passive", Name= "App.Platform.Passive" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 3, - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsAnonymous", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsAnonymous", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Survey Question - listFormName = AppCodes.Intranet.SurveyQuestion; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestion)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyQuestion)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 400, true, true, true, true, false, true), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=3, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "IsRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SurveyQuestionOption, - Code = AppCodes.Intranet.SurveyQuestionOption, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "QuestionId" - } - } - } - }) - }, autoSave: true - ); - - #region Survey Question Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Order", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "QuestionText", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 3, - CaptionName = "App.Listform.ListformField.QuestionText", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Type", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Type", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key= "rating", Name= "App.StaticLookup.Rating" }, - new () { Key= "multiple-choice", Name= "App.StaticLookup.MultipleChoice" }, - new () { Key= "text", Name= "App.Listform.ListformField.Text" }, - new () { Key= "textarea", Name= "App.StaticLookup.Textarea" }, - new () { Key= "yes-no", Name= "App.StaticLookup.YesNo" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsRequired", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Required", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SurveyId", - CaptionName = "App.Listform.ListformField.SurveyId", - Width = 0, - ListOrderNo = 14, - Visible = false, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Survey Question Option - listFormName = AppCodes.Intranet.SurveyQuestionOption; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestionOption)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyQuestionOption)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, false), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - }, autoSave: true - ); - - #region Survey Question Option Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Order", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Order", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Text", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Text", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "QuestionId", - CaptionName = "App.Listform.ListformField.QuestionId", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Survey Response - listFormName = AppCodes.Intranet.SurveyResponse; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyResponse)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyResponse)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, true), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SurveyAnswer, - Code = AppCodes.Intranet.SurveyAnswer, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "ResponseId" - } - } - } - }), - }, autoSave: true - ); - - #region Survey Response Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "SubmissionTime", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.SubmissionTime", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SurveyId", - CaptionName = "App.Listform.ListformField.SurveyId", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - - #endregion - - #region Survey Answer - listFormName = AppCodes.Intranet.SurveyAnswer; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyAnswer)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyAnswer)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, false), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - }, autoSave: true - ); - - #region Survey Answer Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "QuestionId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.QuestionId", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.SurveyQuestionValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Value", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Value", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "ResponseId", - CaptionName = "App.Listform.ListformField.ResponseId", - Width = 0, - ListOrderNo = 4, - Visible = false, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - - #region Social Post - listFormName = AppCodes.Intranet.SocialPost; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPost)), - WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPost)), listFormName, true, - new("App.Widget.Total", "blue", "FaComments"), - new("App.Widget.Today", "green", "FaCalendarDay", "CAST(\"CreationTime\" AS DATE) = CAST(CURRENT_TIMESTAMP AS DATE)"), - new("App.Widget.TotalLikes", "pink", "FaHeart", Value: "COALESCE(SUM(\"LikeCount\"), 0)")), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialPost)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 600, true, true, true, true, false, true), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order=1, ColCount=2, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] - { - new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsLiked", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "IsOwnPost", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SocialComment, - Code = AppCodes.Intranet.SocialComment, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SocialPostId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SocialMedia, - Code = AppCodes.Intranet.SocialMedia, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SocialPostId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SocialLike, - Code = AppCodes.Intranet.SocialLike, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SocialPostId" - } - } - } - }) - } - ); - - #region Social Post Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxHtmlEditor, - ColSpan = 2, - EditorOptions = EditorOptions.Html(), - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "LikeCount", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.LikeCount", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsLiked", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsLiked", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsOwnPost", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsOwnPost", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ]); - #endregion - } - #endregion - - #region SocialMedia - listFormName = AppCodes.Intranet.SocialMedia; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialMedia)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialMedia)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 550, true, true, true, true, false, true), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Type", FieldDbType = DbType.String, Value = "image", CustomValueType = FieldCustomValueTypeEnum.Value }, - new() { FieldName = "PollTotalVotes", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.SocialPollOption, - Code = AppCodes.Intranet.SocialPollOption, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "SocialMediaId" - } - } - } - }) - }); - - #region SocialMedia Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SocialPostId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.SocialPost", - Width = 0, - ListOrderNo = 2, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SocialPost), "Id", "Content"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Type", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Type", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key = "image", Name = "App.StaticLookup.Image" }, - new () { Key = "video", Name = "App.StaticLookup.Video" }, - new () { Key = "poll", Name = "App.StaticLookup.Poll" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PollQuestion", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PollQuestion", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "PollTotalVotes", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PollTotalVotes", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.DateTime, - FieldName = "PollEndsAt", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PollEndsAt", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "PollUserVoteId", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.PollUserVoteId", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Urls", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.Urls", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region SocialPollOption - listFormName = AppCodes.Intranet.SocialPollOption; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPollOption)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialPollOption)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 320, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Votes", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - UpdateFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "LastModifierId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, - new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } - }) - }); - - #region SocialPollOption Fields - await _listFormFieldRepository.InsertManyAsync([ - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SocialMediaId", - CaptionName = "App.Listform.ListformField.SocialMedia", - Width = 0, - ListOrderNo = 2, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SocialMedia), "Id", "PollQuestion"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Text", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Text", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Votes", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Votes", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - ]); - #endregion - } - #endregion - - #region Social Comment - listFormName = AppCodes.Intranet.SocialComment; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialComment)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialComment)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region Social Comment Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SocialPostId", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.SocialPostId", - Width = 0, - ListOrderNo = 3, - Visible = false, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - ]); - #endregion - } - #endregion - - #region Social Like - listFormName = AppCodes.Intranet.SocialLike; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialLike)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialLike)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region Social Like Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SocialPostId", - CaptionName = "App.Listform.ListformField.SocialPostId", - Width = 0, - ListOrderNo = 3, - Visible = false, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - ]); - #endregion - } - #endregion - - #region EventType - listFormName = AppCodes.Intranet.EventType; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventType)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventType)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region EventType Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - }); - #endregion - } - #endregion - - #region EventCategory - listFormName = AppCodes.Intranet.EventCategory; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventCategory)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventCategory)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1,ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region EventCategory Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - }); - #endregion - } - #endregion - - #region Event - listFormName = AppCodes.Intranet.Event; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Event)), - WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Event)), listFormName, true, - new("App.Widget.Upcoming", "blue", "FaCalendarAlt", "\"Date\" >= CURRENT_TIMESTAMP"), - new("App.StaticLookup.Published", "green", "FaCheckCircle", "\"Status\" = 'published'"), - new("App.StaticLookup.Draft", "gray", "FaPencilAlt", "\"Status\" = 'draft'"), - new("App.StaticLookup.Cancelled", "red", "FaBan", "\"Status\" = 'cancelled'")), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Event)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 500, true, true, true, true, false, true), - EditingFormJson = JsonSerializer.Serialize(new List() - { - new() { - Order = 1, ColCount = 3, ColSpan = 1, ItemType = "group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "Status", FieldDbType = DbType.String, Value = "draft", CustomValueType = FieldCustomValueTypeEnum.Value }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.EventLike, - Code = AppCodes.Intranet.EventLike, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "EventId" - } - } - }, - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Intranet.EventComment, - Code = AppCodes.Intranet.EventComment, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.Guid, - ChildFieldName = "EventId" - } - } - } - }) - } - ); - - #region Event Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] - { - // Id - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // CategoryId - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "CategoryId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Category", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventCategory), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // TypeId - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "TypeId", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Type", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventType), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - //Date - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Date, - FieldName = "Date", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxDateBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Date", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // Name - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // Place - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Place", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Place", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // Description - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Description", - EditGroupOrderNo = 1, - EditOrderNo = 9, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 2, - CaptionName = "App.Listform.ListformField.Description", - Width = 0, - ListOrderNo = 7, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // OrganizerId - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 6, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 8, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // ParticipantsCount - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "ParticipantsCount", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.ParticipantsCount", - Width = 0, - Alignment = "right", - ListOrderNo = 9, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // ParticipantsCount - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Likes", - CaptionName = "App.Listform.ListformField.Likes", - Width = 0, - Alignment = "right", - ListOrderNo = 10, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // Status - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Status", - EditGroupOrderNo = 1, - EditOrderNo = 7, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Status", - Width = 0, - ListOrderNo = 11, - Visible = true, - IsActive = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="published",Name="App.StaticLookup.Published" }, - new () { Key="draft",Name="App.StaticLookup.Draft" }, - new () { Key="cancelled",Name="App.StaticLookup.Cancelled" }, - }), - }), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "isPublished", - EditGroupOrderNo = 1, - EditOrderNo = 8, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsPublished", - Width = 0, - ListOrderNo = 12, - Visible = true, - IsActive = true, - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - // Photos - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Photos", - EditGroupOrderNo = 1, - EditOrderNo = 10, - EditorType2 = EditorTypes.dxImageUpload, - ColSpan = 1, - EditorOptions = EditorOptions.ImageUpload(), - CaptionName = "App.Listform.ListformField.Photos", - Width = 0, - ListOrderNo = 12, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } - }); - #endregion - } - #endregion - - #region EventLike - listFormName = AppCodes.Intranet.EventLike; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventLike)), - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventLike)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region EventLike Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "EventId", - CaptionName = "App.Listform.ListformField.EventId", - Width = 0, - ListOrderNo = 3, - Visible = false, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - }); - #endregion - } - #endregion - - #region EventComment - listFormName = AppCodes.Intranet.EventComment; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = true, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventComment)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.Guid, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventComment)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - } - ); - - #region EventComment Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UserId", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - CaptionName = "Abp.Mailing.Smtp.UserName", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UserValues - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Content", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxTextArea, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Content", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "EventId", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Event", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Event), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Int32, - FieldName = "Likes", - CaptionName = "App.Listform.ListformField.Likes", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - }); - #endregion - } - #endregion - #region Licence listFormName = AppCodes.Licence; if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) @@ -10976,5 +8437,1425 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep #endregion } #endregion + #region User Education + listFormName = AppCodes.IdentityManagement.UserEducation; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserEducation)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserEducation)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsGraduated", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Education Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "EducationLevel", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.EducationLevel", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="İlkokul", Name="App.EducationLevel.Primary" }, + new() { Key="Ortaokul", Name="App.EducationLevel.MiddleSchool" }, + new() { Key="Lise", Name="App.EducationLevel.HighSchool" }, + new() { Key="Ön Lisans", Name="App.EducationLevel.Associate" }, + new() { Key="Lisans", Name="App.EducationLevel.Bachelor" }, + new() { Key="Yüksek Lisans", Name="App.EducationLevel.Master" }, + new() { Key="Doktora", Name="App.EducationLevel.PhD" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "SchoolName", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.SchoolName", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Department", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.StudyField", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "StartDate", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.StartDate", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "EndDate", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.GraduationDate", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderDesc, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsGraduated", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsGraduated", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Language + listFormName = AppCodes.IdentityManagement.UserLanguage; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserLanguage)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserLanguage)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Language Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SkillId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Language", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantLanguageSkillValues, + CascadeEmptyFields = "SkillLevelId" + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SkillLevelId", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Level", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantSkillLevelBySkillValues, + CascadeRelationField = "SkillId", + CascadeFilterOperator = "=", + CascadeParentFields = "SkillId", + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Note", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Note", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Skill + listFormName = AppCodes.IdentityManagement.UserSkill; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserSkill)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserSkill)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Level", FieldDbType = DbType.Int32, Value = "3", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Skill Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SkillId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Skill", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantNonLanguageSkillValues, + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Level", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Level", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key=1, Name="App.StaticLookup.SkillLevel1" }, + new() { Key=2, Name="App.StaticLookup.SkillLevel2" }, + new() { Key=3, Name="App.StaticLookup.SkillLevel3" }, + new() { Key=4, Name="App.StaticLookup.SkillLevel4" }, + new() { Key=5, Name="App.StaticLookup.SkillLevel5" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Note", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Note", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Certificate + listFormName = AppCodes.IdentityManagement.UserCertificate; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserCertificate)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserCertificate)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Certificate Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CertificateId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Certificate", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.TenantCertificateValues, + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "CertificateNo", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.CertificateNo", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "IssuedBy", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IssuedBy", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "IssueDate", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.IssueDate", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "ExpiryDate", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.ExpiryDate", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Note", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Note", + Width = 0, + ListOrderNo = 8, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Family Member + listFormName = AppCodes.IdentityManagement.UserFamilyMember; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserFamilyMember)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserFamilyMember)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Family Member Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Relationship", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Relationship", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Spouse", Name="App.StaticLookup.Spouse" }, + new() { Key="Child", Name="App.StaticLookup.Child" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Surname", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Surname", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "IdentityNumber", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IdentityNumber", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "BirthDate", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.BirthDate", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "EmploymentStatus", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.EmploymentStatus", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Working", Name="App.StaticLookup.Working" }, + new() { Key="NotWorking", Name="App.StaticLookup.NotWorking" }, + new() { Key="Student", Name="App.StaticLookup.Student" }, + new() { Key="Retired", Name="App.StaticLookup.Retired" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsInsuranceCovered", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsInsuranceCovered", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsBenefitCovered", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsBenefitCovered", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Emergency Contact + listFormName = AppCodes.IdentityManagement.UserEmergencyContact; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserEmergencyContact)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserEmergencyContact)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Emergency Contact Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.FullName", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Relationship", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Relationship", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Spouse", Name="App.StaticLookup.Spouse" }, + new() { Key="Parent", Name="App.StaticLookup.Parent" }, + new() { Key="Sibling", Name="App.StaticLookup.Sibling" }, + new() { Key="Child", Name="App.StaticLookup.Child" }, + new() { Key="Relative", Name="App.StaticLookup.Relative" }, + new() { Key="Friend", Name="App.StaticLookup.Friend" }, + new() { Key="Other", Name="App.StaticLookup.Other" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PhoneNumber", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + EditorOptions = EditorOptions.Phone(), + CaptionName = "App.Listform.ListformField.PhoneNumber", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region User Benefit + listFormName = AppCodes.IdentityManagement.UserBenefit; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserBenefit)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + // Ayri yetki yok: liste kullanici detayinin parcasidir; C/U/D detay sayfasinin istedigi Users.Update'e baglanir. + PermissionJson = DefaultPermissionJson(PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Update, PlatformConsts.IdentityPermissions.Users.Export, PlatformConsts.IdentityPermissions.Users.Import, PlatformConsts.IdentityPermissions.Users.Note), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UserBenefit)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 650, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + }, autoSave: true + ); + + #region User Benefit Fields + var fieldPermissionJson = DefaultFieldPermissionJson(PlatformConsts.IdentityPermissions.Users.Create, PlatformConsts.IdentityPermissions.Users.Default, PlatformConsts.IdentityPermissions.Users.Update, true, true, false); + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Kullanici detayi listeyi UserId filtresiyle acar; yeni satir degerini o filtreden alir. + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + CaptionName = "App.Listform.ListformField.UserId", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BenefitType", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.BenefitType", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Meal", Name="App.StaticLookup.BenefitMeal" }, + new() { Key="Transportation", Name="App.StaticLookup.BenefitTransportation" }, + new() { Key="PrivateHealthInsurance", Name="App.StaticLookup.BenefitPrivateHealthInsurance" }, + new() { Key="PrivatePension", Name="App.StaticLookup.BenefitPrivatePension" }, + new() { Key="Housing", Name="App.StaticLookup.BenefitHousing" }, + new() { Key="Vehicle", Name="App.StaticLookup.BenefitVehicle" }, + new() { Key="Phone", Name="App.StaticLookup.BenefitPhone" }, + new() { Key="Other", Name="App.StaticLookup.BenefitOther" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Amount", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + EditorOptions = EditorOptions.Number(2), + CaptionName = "App.Listform.ListformField.Amount", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "StartDate", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.StartDate", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "EndDate", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.EndDate", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Note", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Note", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = fieldPermissionJson, + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion } } diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Hr.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Hr.cs index 5ea0e394..93c50300 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Hr.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Hr.cs @@ -765,5 +765,3107 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency #endregion } #endregion + + #region Announcement + listFormName = AppCodes.Intranet.Announcement; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Announcement)), + WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Announcement)), listFormName, true, + new("App.Widget.Active", "green", "FaBullhorn", "(\"ExpiryDate\" IS NULL OR \"ExpiryDate\" >= CURRENT_TIMESTAMP)"), + new("App.Widget.Pinned", "purple", "FaThumbtack", "\"IsPinned\" = 'true'"), + new("App.Widget.Expired", "gray", "FaCalendarTimes", "\"ExpiryDate\" < CURRENT_TIMESTAMP"), + new("App.Widget.TotalViews", "blue", "FaEye", Value: "COALESCE(SUM(\"ViewCount\"), 0)")), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Announcement)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 750, 700, true, true, true, true, false, true), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "IsPinned", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "PublishDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.AnnouncementLike, + Code = AppCodes.Intranet.AnnouncementLike, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "AnnouncementId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.AnnouncementComment, + Code = AppCodes.Intranet.AnnouncementComment, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "AnnouncementId" + } + } + } + }) + } + ); + + #region Announcement Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Excerpt", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Excerpt", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Content", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + CaptionName = "App.Listform.ListformField.Content", + Width = 0, + ListOrderNo = 4, + Visible = false, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Category", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Category", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "general", Name= "Abp.Account.General" }, + new () { Key= "event", Name= "App.StaticLookup.Event" }, + new () { Key= "urgent", Name= "App.Listform.ListformField.IsUrgent" }, + new () { Key= "announcement", Name= "App.StaticLookup.Announcement" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "PublishDate", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PublishDate", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "ExpiryDate", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ExpiryDate", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Likes", + CaptionName = "App.Listform.ListformField.Likes", + Width = 0, + Alignment = "right", + ListOrderNo = 11, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsPinned", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsPinned", + Width = 0, + ListOrderNo = 9, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "ImageUrl", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxImageUpload, + ColSpan = 1, + EditorOptions = EditorOptions.ImageUpload(), + CaptionName = "App.Listform.ListformField.ImageUrl", + Width = 0, + ListOrderNo = 10, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region AnnouncementLike + listFormName = AppCodes.Intranet.AnnouncementLike; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AnnouncementLike)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.AnnouncementLike)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region AnnouncementLike Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "AnnouncementId", + CaptionName = "App.Listform.ListformField.AnnouncementId", + Width = 0, + ListOrderNo = 3, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + }); + #endregion + } + #endregion + + #region AnnouncementComment + listFormName = AppCodes.Intranet.AnnouncementComment; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AnnouncementComment)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.AnnouncementComment)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region AnnouncementComment Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Content", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Content", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "AnnouncementId", + CaptionName = "App.Listform.ListformField.AnnouncementId", + Width = 0, + ListOrderNo = 4, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + }); + #endregion + } + #endregion + + #region Survey + listFormName = AppCodes.Intranet.Survey; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Survey)), + WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Survey)), listFormName, true, + new("App.Widget.Active", "green", "FaCheckCircle", "\"Status\" = 'active'"), + new("App.Widget.Passive", "gray", "FaTimesCircle", "\"Status\" = 'passive'"), + new("App.Widget.TotalResponses", "purple", "FaPollH", Value: "COALESCE(SUM(\"Responses\"), 0)")), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Survey)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 500, true, true, true, true, false, true), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=3, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "IsAnonymous", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "Status", FieldDbType = DbType.String, Value = "active", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SurveyQuestion, + Code = AppCodes.Intranet.SurveyQuestion, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SurveyId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SurveyResponse, + Code = AppCodes.Intranet.SurveyResponse, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SurveyId" + } + } + } + }) + }, autoSave: true + ); + + #region Survey Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Title", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 3, + CaptionName = "App.Listform.ListformField.Title", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "Deadline", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Deadline", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Responses", + CaptionName = "App.Listform.ListformField.Responses", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Status", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Status", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "active", Name= "App.Listform.ListformField.IsActive" }, + new () { Key= "passive", Name= "App.Platform.Passive" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 3, + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 7, + Visible = false, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsAnonymous", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsAnonymous", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Survey Question + listFormName = AppCodes.Intranet.SurveyQuestion; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestion)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyQuestion)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 400, true, true, true, true, false, true), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=3, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "IsRequired", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SurveyQuestionOption, + Code = AppCodes.Intranet.SurveyQuestionOption, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "QuestionId" + } + } + } + }) + }, autoSave: true + ); + + #region Survey Question Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Order", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "QuestionText", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 3, + CaptionName = "App.Listform.ListformField.QuestionText", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Type", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Type", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "rating", Name= "App.StaticLookup.Rating" }, + new () { Key= "multiple-choice", Name= "App.StaticLookup.MultipleChoice" }, + new () { Key= "text", Name= "App.Listform.ListformField.Text" }, + new () { Key= "textarea", Name= "App.StaticLookup.Textarea" }, + new () { Key= "yes-no", Name= "App.StaticLookup.YesNo" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsRequired", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Required", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SurveyId", + CaptionName = "App.Listform.ListformField.SurveyId", + Width = 0, + ListOrderNo = 14, + Visible = false, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Survey Question Option + listFormName = AppCodes.Intranet.SurveyQuestionOption; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestionOption)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyQuestionOption)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, false), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + }, autoSave: true + ); + + #region Survey Question Option Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Order", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Order", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Text", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Text", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "QuestionId", + CaptionName = "App.Listform.ListformField.QuestionId", + Width = 0, + ListOrderNo = 4, + Visible = false, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Survey Response + listFormName = AppCodes.Intranet.SurveyResponse; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyResponse)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyResponse)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, true), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SurveyAnswer, + Code = AppCodes.Intranet.SurveyAnswer, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "ResponseId" + } + } + } + }), + }, autoSave: true + ); + + #region Survey Response Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "SubmissionTime", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.SubmissionTime", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SurveyId", + CaptionName = "App.Listform.ListformField.SurveyId", + Width = 0, + ListOrderNo = 4, + Visible = false, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + + #endregion + + #region Survey Answer + listFormName = AppCodes.Intranet.SurveyAnswer; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyAnswer)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SurveyAnswer)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 400, true, true, true, true, false, false), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + }, autoSave: true + ); + + #region Survey Answer Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "QuestionId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.QuestionId", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.SurveyQuestionValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Value", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Value", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "ResponseId", + CaptionName = "App.Listform.ListformField.ResponseId", + Width = 0, + ListOrderNo = 4, + Visible = false, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + + #region Social Post + listFormName = AppCodes.Intranet.SocialPost; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPost)), + WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPost)), listFormName, true, + new("App.Widget.Total", "blue", "FaComments"), + new("App.Widget.Today", "green", "FaCalendarDay", "CAST(\"CreationTime\" AS DATE) = CAST(CURRENT_TIMESTAMP AS DATE)"), + new("App.Widget.TotalLikes", "pink", "FaHeart", Value: "COALESCE(SUM(\"LikeCount\"), 0)")), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialPost)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 600, true, true, true, true, false, true), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=2, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "LikeCount", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsLiked", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsOwnPost", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SocialComment, + Code = AppCodes.Intranet.SocialComment, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SocialPostId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SocialMedia, + Code = AppCodes.Intranet.SocialMedia, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SocialPostId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SocialLike, + Code = AppCodes.Intranet.SocialLike, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SocialPostId" + } + } + } + }) + } + ); + + #region Social Post Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Content", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxHtmlEditor, + ColSpan = 2, + EditorOptions = EditorOptions.Html(), + CaptionName = "App.Listform.ListformField.Content", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "LikeCount", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.LikeCount", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsLiked", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsLiked", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsOwnPost", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsOwnPost", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + + #region SocialMedia + listFormName = AppCodes.Intranet.SocialMedia; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialMedia)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialMedia)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 700, 550, true, true, true, true, false, true), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 2, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Type", FieldDbType = DbType.String, Value = "image", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "PollTotalVotes", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.SocialPollOption, + Code = AppCodes.Intranet.SocialPollOption, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "SocialMediaId" + } + } + } + }) + }); + + #region SocialMedia Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SocialPostId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.SocialPost", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SocialPost), "Id", "Content"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Type", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Type", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key = "image", Name = "App.StaticLookup.Image" }, + new () { Key = "video", Name = "App.StaticLookup.Video" }, + new () { Key = "poll", Name = "App.StaticLookup.Poll" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PollQuestion", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PollQuestion", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "PollTotalVotes", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PollTotalVotes", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.DateTime, + FieldName = "PollEndsAt", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PollEndsAt", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "PollUserVoteId", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.PollUserVoteId", + Width = 0, + ListOrderNo = 7, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Urls", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Urls", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region SocialPollOption + listFormName = AppCodes.Intranet.SocialPollOption; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialPollOption)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialPollOption)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 320, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "CreationTime", FieldDbType = DbType.DateTimeOffset, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "CreatorId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@NEWID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Votes", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + UpdateFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "LastModifierId", FieldDbType = DbType.Guid, Value = "@USERID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { FieldName = "Id", FieldDbType = DbType.Guid, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }) + }); + + #region SocialPollOption Fields + await _listFormFieldRepository.InsertManyAsync([ + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SocialMediaId", + CaptionName = "App.Listform.ListformField.SocialMedia", + Width = 0, + ListOrderNo = 2, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SocialMedia), "Id", "PollQuestion"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Text", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Text", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Votes", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Votes", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + ]); + #endregion + } + #endregion + + #region Social Comment + listFormName = AppCodes.Intranet.SocialComment; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialComment)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialComment)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region Social Comment Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Content", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Content", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SocialPostId", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.SocialPostId", + Width = 0, + ListOrderNo = 3, + Visible = false, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + ]); + #endregion + } + #endregion + + #region Social Like + listFormName = AppCodes.Intranet.SocialLike; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.SocialLike)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.SocialLike)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region Social Like Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "SocialPostId", + CaptionName = "App.Listform.ListformField.SocialPostId", + Width = 0, + ListOrderNo = 3, + Visible = false, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + ]); + #endregion + } + #endregion + + #region EventType + listFormName = AppCodes.Intranet.EventType; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventType)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventType)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region EventType Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + }); + #endregion + } + #endregion + + #region EventCategory + listFormName = AppCodes.Intranet.EventCategory; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventCategory)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventCategory)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1,ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region EventCategory Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + }); + #endregion + } + #endregion + + #region Event + listFormName = AppCodes.Intranet.Event; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = true, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Event)), + WidgetsJson = DefaultWidgetsJson(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Event)), listFormName, true, + new("App.Widget.Upcoming", "blue", "FaCalendarAlt", "\"Date\" >= CURRENT_TIMESTAMP"), + new("App.StaticLookup.Published", "green", "FaCheckCircle", "\"Status\" = 'published'"), + new("App.StaticLookup.Draft", "gray", "FaPencilAlt", "\"Status\" = 'draft'"), + new("App.StaticLookup.Cancelled", "red", "FaBan", "\"Status\" = 'cancelled'")), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Event)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 500, true, true, true, true, false, true), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order = 1, ColCount = 3, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "Status", FieldDbType = DbType.String, Value = "draft", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.EventLike, + Code = AppCodes.Intranet.EventLike, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "EventId" + } + } + }, + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Intranet.EventComment, + Code = AppCodes.Intranet.EventComment, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.Guid, + ChildFieldName = "EventId" + } + } + } + }) + } + ); + + #region Event Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] + { + // Id + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // CategoryId + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CategoryId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Category", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventCategory), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // TypeId + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "TypeId", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Type", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventType), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + //Date + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Date, + FieldName = "Date", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxDateBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Date", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Name + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Place + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Place", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Place", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Description + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + EditGroupOrderNo = 1, + EditOrderNo = 9, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 2, + CaptionName = "App.Listform.ListformField.Description", + Width = 0, + ListOrderNo = 7, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // OrganizerId + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 6, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 8, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // ParticipantsCount + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "ParticipantsCount", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.ParticipantsCount", + Width = 0, + Alignment = "right", + ListOrderNo = 9, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // ParticipantsCount + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Likes", + CaptionName = "App.Listform.ListformField.Likes", + Width = 0, + Alignment = "right", + ListOrderNo = 10, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Status + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Status", + EditGroupOrderNo = 1, + EditOrderNo = 7, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Status", + Width = 0, + ListOrderNo = 11, + Visible = true, + IsActive = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="published",Name="App.StaticLookup.Published" }, + new () { Key="draft",Name="App.StaticLookup.Draft" }, + new () { Key="cancelled",Name="App.StaticLookup.Cancelled" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "isPublished", + EditGroupOrderNo = 1, + EditOrderNo = 8, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsPublished", + Width = 0, + ListOrderNo = 12, + Visible = true, + IsActive = true, + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + // Photos + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Photos", + EditGroupOrderNo = 1, + EditOrderNo = 10, + EditorType2 = EditorTypes.dxImageUpload, + ColSpan = 1, + EditorOptions = EditorOptions.ImageUpload(), + CaptionName = "App.Listform.ListformField.Photos", + Width = 0, + ListOrderNo = 12, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + } + }); + #endregion + } + #endregion + + #region EventLike + listFormName = AppCodes.Intranet.EventLike; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventLike)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventLike)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region EventLike Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "EventId", + CaptionName = "App.Listform.ListformField.EventId", + Width = 0, + ListOrderNo = 3, + Visible = false, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + }); + #endregion + } + #endregion + + #region EventComment + listFormName = AppCodes.Intranet.EventComment; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EventComment)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.EventComment)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 450, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + } + ); + + #region EventComment Fields + await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UserId", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + CaptionName = "Abp.Mailing.Smtp.UserName", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "Name", + ValueExpr = "Key", + LookupQuery = LookupQueryValues.UserValues + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Content", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextArea, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Content", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "EventId", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Event", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Event), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Int32, + FieldName = "Likes", + CaptionName = "App.Listform.ListformField.Likes", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + }); + #endregion + } + #endregion } } diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs index 1df17881..e2cdf305 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs @@ -1622,6 +1622,145 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency } #endregion + #region TerminationReason + listFormName = AppCodes.Definitions.TerminationReason; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = false, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = false, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.TerminationReason)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.TerminationReason)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }, + }), + }); + + #region TerminationReason Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Code", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + #endregion + } + #endregion + #region Currency listFormName = AppCodes.Definitions.Currency; if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) @@ -4377,6 +4516,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency new() { Key=3, Name="App.StaticLookup.NotificationWorker" }, new() { Key=4, Name="App.StaticLookup.SessionCleanupWorker" }, new() { Key=5, Name="App.StaticLookup.BackupWorker" }, + new() { Key=6, Name="App.StaticLookup.ProbationReminderWorker" }, }), }), ValidationRuleJson = DefaultValidationRuleRequiredJson, diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/PlatformIdentityDataSeeder.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/PlatformIdentityDataSeeder.cs index d0c00cd5..44a45891 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/PlatformIdentityDataSeeder.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/PlatformIdentityDataSeeder.cs @@ -150,7 +150,6 @@ public class PlatformIdentityDataSeeder : IdentityDataSeeder adminUser.SetNationality(PlatformConsts.AbpIdentity.User.AdminNationalityDefaultValue); adminUser.SetBloodType(PlatformConsts.AbpIdentity.User.AdminBloodTypeDefaultValue); adminUser.SetEducationLevel(PlatformConsts.AbpIdentity.User.AdminEducationLevelDefaultValue); - adminUser.SetGraduationSchool(PlatformConsts.AbpIdentity.User.AdminGraduationSchoolDefaultValue); adminUser.SetHomeAddress(PlatformConsts.AbpIdentity.User.AdminHomeAddressDefaultValue); adminUser.SetBirthDate(PlatformConsts.AbpIdentity.User.AdminBirthDateDefaultValue); adminUser.SetBirthPlace(PlatformConsts.AbpIdentity.User.AdminBirthPlaceDefaultValue); diff --git a/api/src/Sozsoft.Platform.Domain.Shared/Enums/TableNameEnum.cs b/api/src/Sozsoft.Platform.Domain.Shared/Enums/TableNameEnum.cs index 0f31a1bd..ac5d114f 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/Enums/TableNameEnum.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/Enums/TableNameEnum.cs @@ -101,5 +101,13 @@ public enum TableNameEnum UserWorkExperience, UserPeriodicExamination, UserPatientProtocol, - UserSickLeave + UserSickLeave, + UserEducation, + UserLanguage, + UserSkill, + UserCertificate, + UserFamilyMember, + UserEmergencyContact, + UserBenefit, + TerminationReason } diff --git a/api/src/Sozsoft.Platform.Domain.Shared/Enums/WorkerTypeEnum.cs b/api/src/Sozsoft.Platform.Domain.Shared/Enums/WorkerTypeEnum.cs index 94b5ae8e..5a759f48 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/Enums/WorkerTypeEnum.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/Enums/WorkerTypeEnum.cs @@ -7,5 +7,6 @@ public enum WorkerTypeEnum NotificationWorker = 3, SessionCleanupWorker = 4, BackupWorker = 5, + ProbationReminderWorker = 6, } diff --git a/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs index 70fb2383..8efd67f3 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs @@ -116,7 +116,6 @@ public static class PlatformConsts public const string TelegramChatId = "TelegramChatId"; public const string HomeAddress = "HomeAddress"; public const string EducationLevel = "EducationLevel"; - public const string GraduationSchool = "GraduationSchool"; public const string BloodType = "BloodType"; public const string MotherHealthStatus = "MotherHealthStatus"; public const string MotherHealthNote = "MotherHealthNote"; @@ -221,6 +220,40 @@ public static class PlatformConsts public const string MaritalStatus = "MaritalStatus"; public const string MarriageDate = "MarriageDate"; + public const string SecondaryEmail = "SecondaryEmail"; + public const string SecondaryPhoneNumber = "SecondaryPhoneNumber"; + public const string MilitaryStatus = "MilitaryStatus"; + public const string MilitaryPostponeEndDate = "MilitaryPostponeEndDate"; + public const string IsDisabled = "IsDisabled"; + public const string DisabilityRate = "DisabilityRate"; + public const string DisabilityReport = "DisabilityReport"; + public const string DisabilityReportFileName = "DisabilityReportFileName"; + public const string PassportNo = "PassportNo"; + public const string PassportExpiryDate = "PassportExpiryDate"; + public const string WorkPermitNo = "WorkPermitNo"; + public const string WorkPermitEndDate = "WorkPermitEndDate"; + + public const string RegistrationNo = "RegistrationNo"; + public const string EmploymentType = "EmploymentType"; + public const string ContractType = "ContractType"; + public const string ContractEndDate = "ContractEndDate"; + public const string ProbationEndDate = "ProbationEndDate"; + public const string SeniorityStartDate = "SeniorityStartDate"; + public const string TerminationReasonId = "TerminationReasonId"; + public const string TerminationNote = "TerminationNote"; + public const string ShiftId = "ShiftId"; + public const string PdksCardNo = "PdksCardNo"; + public const string DrivingLicenseClass = "DrivingLicenseClass"; + public const string DrivingLicenseNo = "DrivingLicenseNo"; + public const string DrivingLicenseIssueDate = "DrivingLicenseIssueDate"; + public const string DrivingLicenseExpiryDate = "DrivingLicenseExpiryDate"; + + public const string BankName = "BankName"; + public const string Iban = "Iban"; + public const string SalaryType = "SalaryType"; + public const string GrossSalary = "GrossSalary"; + public const string SalaryCurrency = "SalaryCurrency"; + public const string UserLockedOutMessage = GroupName + ".UserLockedOutMessage"; public const string InvalidUserNameOrPassword = GroupName + ".InvalidUserNameOrPassword"; public const string ResendEmailConfirmedError = GroupName + ".ResendEmailConfirmedError"; @@ -252,7 +285,6 @@ public static class PlatformConsts public const string AdminNationalityDefaultValue = "Türkiye"; public const string AdminBloodTypeDefaultValue = "B Rh+"; public const string AdminEducationLevelDefaultValue = "Yüksek Lisans"; - public const string AdminGraduationSchoolDefaultValue = "Boğaziçi Üniversitesi"; public const string AdminHomeAddressDefaultValue = "İstanbul, Türkiye"; public static readonly DateTime AdminBirthDateDefaultValue = new(1981, 8, 27); public const string AdminBirthPlaceDefaultValue = "Kadıköy, İstanbul"; @@ -473,7 +505,8 @@ public static class PlatformConsts public static class Intranet { - public const string Default = Prefix.App + ".Intranet"; + // Intranet Hr modulundedir; kod modul kokunu tasir (tablo Hr_T_*, yetki App.Hr grubu). + public const string Default = Prefix.App + ".Hr.Intranet"; public const string Announcement = Default + ".Announcement"; @@ -503,6 +536,7 @@ public static class PlatformConsts public const string Country = Default + ".Country"; public const string City = Default + ".City"; public const string District = Default + ".District"; + public const string TerminationReason = Default + ".TerminationReason"; public const string Sector = Default + ".Sector"; public const string UomCategory = Default + ".UomCategory"; @@ -704,6 +738,13 @@ public static class PlatformConsts public const string UserPeriodicExamination = Default + ".UserPeriodicExamination"; public const string UserPatientProtocol = Default + ".UserPatientProtocol"; public const string UserSickLeave = Default + ".UserSickLeave"; + public const string UserEducation = Default + ".UserEducation"; + public const string UserLanguage = Default + ".UserLanguage"; + public const string UserSkill = Default + ".UserSkill"; + public const string UserCertificate = Default + ".UserCertificate"; + public const string UserFamilyMember = Default + ".UserFamilyMember"; + public const string UserEmergencyContact = Default + ".UserEmergencyContact"; + public const string UserBenefit = Default + ".UserBenefit"; } public static class Reports diff --git a/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs b/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs index 9f4641f7..8571c056 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs @@ -23,6 +23,7 @@ public static class TableNameResolver { nameof(TableNameEnum.Country), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.City), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.District), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, + { nameof(TableNameEnum.TerminationReason), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.Branch), (TablePrefix.TenantByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.BranchUsers), (TablePrefix.TenantByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.SettingDefinition), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, @@ -87,6 +88,13 @@ public static class TableNameResolver { nameof(TableNameEnum.UserPeriodicExamination), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.UserPatientProtocol), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.UserSickLeave), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserEducation), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserLanguage), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserSkill), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserCertificate), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserFamilyMember), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserEmergencyContact), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UserBenefit), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.NotificationTemplate), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.NotificationType), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.NotificationRule), (TablePrefix.TenantByName, MenuPrefix.Administration) }, @@ -94,28 +102,28 @@ public static class TableNameResolver // 🔹 INTRANET TABLOLARI { nameof(TableNameEnum.IntranetWidget), (TablePrefix.TenantByName, MenuPrefix.Sas) }, - { nameof(TableNameEnum.Announcement), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.AnnouncementComment), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.AnnouncementLike), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.Survey), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SurveyQuestion), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SurveyQuestionOption), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SurveyResponse), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SurveyAnswer), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialPost), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialLocation), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialMedia), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialPollOption), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialComment), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.SocialLike), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.EventLike), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.EventCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.EventType), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.Event), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.EventPhoto), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.EventComment), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.MessengerConversation), (TablePrefix.TenantByName, MenuPrefix.Administration) }, - { nameof(TableNameEnum.MessengerConversationMessage), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.Announcement), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.AnnouncementComment), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.AnnouncementLike), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.Survey), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SurveyQuestion), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SurveyQuestionOption), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SurveyResponse), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SurveyAnswer), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialPost), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialLocation), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialMedia), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialPollOption), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialComment), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.SocialLike), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EventLike), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EventCategory), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EventType), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.Event), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EventPhoto), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EventComment), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.MessengerConversation), (TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.MessengerConversationMessage), (TablePrefix.TenantByName, MenuPrefix.Hr) }, }; diff --git a/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/PlatformBackgroundWorker.cs b/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/PlatformBackgroundWorker.cs index 1d5a43f2..4b8f8f88 100644 --- a/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/PlatformBackgroundWorker.cs +++ b/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/PlatformBackgroundWorker.cs @@ -133,6 +133,10 @@ public class PlatformBackgroundWorker : PlatformDomainService, IPlatformBackgrou { await LazyServiceProvider.GetRequiredService().StartAsync(cancellationToken); } + else if (Worker.WorkerType == WorkerTypeEnum.ProbationReminderWorker) + { + await LazyServiceProvider.GetRequiredService().StartAsync(cancellationToken); + } // Call AfterSp if (!Worker.AfterSp.IsNullOrWhiteSpace()) diff --git a/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/ProbationReminderWorker.cs b/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/ProbationReminderWorker.cs new file mode 100644 index 00000000..b3634467 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/BackgroundWorkers/ProbationReminderWorker.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Logging; +using Sozsoft.Notifications.Domain; +using Sozsoft.Notifications.Entities; +using Sozsoft.Platform.Extensions; +using Sozsoft.Platform.Localization; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Identity; +using Volo.Abp.Timing; + +namespace Sozsoft.Platform.BackgroundWorkers; + +/// +/// Deneme suresi biten calisanlar icin hatirlatma. Gunluk calisir ve bitisine tam +/// gun kalan her calisan icin bildirim tipinin kurallarini isletir; +/// alici ve kanal kuraldan gelir, boylece kimin haberdar olacagi ekrandan degistirilir. +/// Gun esitligi aranir, aralik degil: is gunde bir kez calistigi icin ayni calisan icin tek +/// bildirim uretilir. +/// +public class ProbationReminderWorker( + IReadOnlyRepository userRepository, + IReadOnlyRepository notificationTypeRepository, + INotificationManager notificationManager, + IStringLocalizer localizer, + IClock clock, + ILogger logger) : ITransientDependency +{ + public const string NotificationTypeName = "DenemeSuresiBitiyor"; + public const int ReminderDays = 15; + + public async Task StartAsync(CancellationToken cancellationToken = default) + { + var notificationType = await notificationTypeRepository.FirstOrDefaultAsync( + a => a.Name == NotificationTypeName, cancellationToken); + + // Tip kiraciya aittir; silinmis ya da hic kopyalanmamissa hatirlatma kapatilmis sayilir. + if (notificationType is null) + { + logger.LogInformation("Notification type {Name} not found, probation reminder skipped.", NotificationTypeName); + return; + } + + var targetDate = clock.Now.Date.AddDays(ReminderDays); + var users = await userRepository.GetListAsync(a => a.IsActive, cancellationToken: cancellationToken); + + foreach (var user in users.Where(u => u.GetProbationEndDate()?.Date == targetDate && u.GetTerminationDate() is null)) + { + var message = localizer["App.Notifications.ProbationEnding", $"{user.Name} {user.Surname}".Trim(), targetDate.ToString("dd.MM.yyyy")]; + await notificationManager.SendNotificationAsync(notificationType.Id, message); + } + } +} diff --git a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs index b318c92e..bec74065 100644 --- a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs @@ -325,7 +325,8 @@ public static class SeedConsts public static class Intranet { - public const string Default = Prefix.App + ".Intranet"; + // Intranet Hr modulundedir; kod modul kokunu tasir (tablo Hr_T_*, yetki App.Hr grubu). + public const string Default = Prefix.App + ".Hr.Intranet"; public const string Announcement = Default + ".Announcement"; public const string AnnouncementLike = Announcement + ".AnnouncementLike"; @@ -364,6 +365,7 @@ public static class SeedConsts public const string Country = Default + ".Country"; public const string City = Default + ".City"; public const string District = Default + ".District"; + public const string TerminationReason = Default + ".TerminationReason"; public const string Sector = Default + ".Sector"; public const string UomCategory = Default + ".UomCategory"; @@ -498,6 +500,13 @@ public static class SeedConsts public const string UserPeriodicExamination = Default + ".UserPeriodicExamination"; public const string UserPatientProtocol = Default + ".UserPatientProtocol"; public const string UserSickLeave = Default + ".UserSickLeave"; + public const string UserEducation = Default + ".UserEducation"; + public const string UserLanguage = Default + ".UserLanguage"; + public const string UserSkill = Default + ".UserSkill"; + public const string UserCertificate = Default + ".UserCertificate"; + public const string UserFamilyMember = Default + ".UserFamilyMember"; + public const string UserEmergencyContact = Default + ".UserEmergencyContact"; + public const string UserBenefit = Default + ".UserBenefit"; } diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/TerminationReason.cs b/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/TerminationReason.cs new file mode 100644 index 00000000..30c73409 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/TerminationReason.cs @@ -0,0 +1,15 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; + +namespace Sozsoft.Platform.Entities; + +/// +/// SGK isten cikis kodlari. Kodlar mevzuatla belirlendigi ve butun kiracilarda ayni oldugu icin +/// tanim host tablosundadir; kullanicinin TerminationReasonId alani buraya baglanir. +/// +public class TerminationReason : FullAuditedEntity +{ + public string Code { get; set; } + public string Name { get; set; } + public bool IsActive { get; set; } +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/IntranetWidget.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/IntranetWidget.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/IntranetWidget.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/IntranetWidget.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserBenefit.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserBenefit.cs new file mode 100644 index 00000000..d6c1372f --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserBenefit.cs @@ -0,0 +1,23 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullaniciya taninan yan haklar (yemek, yol, ozel saglik sigortasi...). Financial sekmesinde +/// ucret bilgisinin altinda listelenir. +/// +public class UserBenefit : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public string BenefitType { get; set; } + public decimal? Amount { get; set; } + public DateTime? StartDate { get; set; } + public DateTime? EndDate { get; set; } + public string Note { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserCertificate.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserCertificate.cs new file mode 100644 index 00000000..0a854c29 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserCertificate.cs @@ -0,0 +1,24 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullanicinin mesleki yeterlilik belgeleri. Belge adi Hr_T_Certificate tanimindan gelir; o tablo +/// low-code oldugu icin EF iliskisi kurulmaz, baglanti ekran lookup'iyla saglanir. +/// +public class UserCertificate : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public Guid CertificateId { get; set; } + public string CertificateNo { get; set; } + public string IssuedBy { get; set; } + public DateTime? IssueDate { get; set; } + public DateTime? ExpiryDate { get; set; } + public string Note { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEducation.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEducation.cs new file mode 100644 index 00000000..2dab4777 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEducation.cs @@ -0,0 +1,24 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullanicinin okudugu okullar. Tek bir mezuniyet alani birden cok okulu tasiyamadigi icin +/// egitim gecmisi ayri tabloda tutulur; kullanici detayindaki Education & Skills sekmesinde listelenir. +/// +public class UserEducation : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public string EducationLevel { get; set; } + public string SchoolName { get; set; } + public string Department { get; set; } + public DateTime? StartDate { get; set; } + public DateTime? EndDate { get; set; } + public bool IsGraduated { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEmergencyContact.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEmergencyContact.cs new file mode 100644 index 00000000..5486dbbd --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserEmergencyContact.cs @@ -0,0 +1,20 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Acil durumda aranacak kisiler. Aile uyesi olmak zorunda olmadigi icin aile tablosundan ayridir. +/// +public class UserEmergencyContact : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public string Name { get; set; } + public string Relationship { get; set; } + public string PhoneNumber { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserFamilyMember.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserFamilyMember.cs new file mode 100644 index 00000000..92839366 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserFamilyMember.cs @@ -0,0 +1,26 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullanicinin esi ve cocuklari. Sigorta ve yan hak kapsami kisi bazinda isaretlenir; bordro ve +/// ozel saglik sigortasi listeleri bu bayraklardan uretilir. +/// +public class UserFamilyMember : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public string Relationship { get; set; } + public string Name { get; set; } + public string Surname { get; set; } + public string IdentityNumber { get; set; } + public DateTime? BirthDate { get; set; } + public string EmploymentStatus { get; set; } + public bool IsInsuranceCovered { get; set; } + public bool IsBenefitCovered { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserLanguage.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserLanguage.cs new file mode 100644 index 00000000..b65e276b --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserLanguage.cs @@ -0,0 +1,21 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullanicinin bildigi yabanci diller. Dil tanimindan, seviye o dilin yetenek +/// tipine ait kayitlarindan (A1-C2) secilir. +/// +public class UserLanguage : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public Guid SkillId { get; set; } + public Guid? SkillLevelId { get; set; } + public string Note { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserSkill.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserSkill.cs new file mode 100644 index 00000000..f12af1c6 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/UserSkill.cs @@ -0,0 +1,21 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +/// +/// Kullanicinin yetenekleri. Yetenek tanimindan secilir; seviye tipten bagimsiz +/// 1-5 olcegindedir, boylece farkli tipteki yetenekler ayni olcekte karsilastirilir. +/// +public class UserSkill : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public Guid UserId { get; set; } + public Guid SkillId { get; set; } + public int Level { get; set; } + public string Note { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Announcement.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Announcement.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Announcement.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Announcement.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/AnnouncementComment.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/AnnouncementComment.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/AnnouncementComment.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/AnnouncementComment.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/AnnouncementLike.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/AnnouncementLike.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/AnnouncementLike.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/AnnouncementLike.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Event.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Event.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Event.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Event.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventCategory.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventCategory.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventCategory.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventCategory.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventComment.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventComment.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventComment.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventComment.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventLike.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventLike.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventLike.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventLike.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventType.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventType.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/EventType.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/EventType.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/SocialPost.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/SocialPost.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/SocialPost.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/SocialPost.cs diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Survey.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Survey.cs similarity index 100% rename from api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Intranet/Survey.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Hr/Intranet/Survey.cs diff --git a/api/src/Sozsoft.Platform.Domain/Extensions/AbpIdentityUserExtensions.cs b/api/src/Sozsoft.Platform.Domain/Extensions/AbpIdentityUserExtensions.cs index 86d1c669..e556384b 100644 --- a/api/src/Sozsoft.Platform.Domain/Extensions/AbpIdentityUserExtensions.cs +++ b/api/src/Sozsoft.Platform.Domain/Extensions/AbpIdentityUserExtensions.cs @@ -331,16 +331,6 @@ public static class AbpIdentityUserExtensions return user.GetProperty(PlatformConsts.AbpIdentity.User.EducationLevel); } - //GraduationSchool - public static void SetGraduationSchool(this IdentityUser user, string value) - { - user.SetProperty(PlatformConsts.AbpIdentity.User.GraduationSchool, value); - } - public static string GetGraduationSchool(this IdentityUser user) - { - return user.GetProperty(PlatformConsts.AbpIdentity.User.GraduationSchool); - } - //BloodType public static void SetBloodType(this IdentityUser user, string value) { @@ -1110,5 +1100,314 @@ public static class AbpIdentityUserExtensions { return user.GetProperty(PlatformConsts.AbpIdentity.User.ShiftNightDoctorId); } -} + //SecondaryEmail + public static void SetSecondaryEmail(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.SecondaryEmail, value); + } + public static string GetSecondaryEmail(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.SecondaryEmail); + } + + //SecondaryPhoneNumber + public static void SetSecondaryPhoneNumber(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.SecondaryPhoneNumber, value); + } + public static string GetSecondaryPhoneNumber(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.SecondaryPhoneNumber); + } + + //MilitaryStatus + public static void SetMilitaryStatus(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.MilitaryStatus, value); + } + public static string GetMilitaryStatus(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.MilitaryStatus); + } + + //MilitaryPostponeEndDate + public static void SetMilitaryPostponeEndDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.MilitaryPostponeEndDate, value); + } + public static DateTime? GetMilitaryPostponeEndDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.MilitaryPostponeEndDate); + } + + //IsDisabled + public static void SetIsDisabled(this IdentityUser user, bool value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.IsDisabled, value); + } + public static bool GetIsDisabled(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.IsDisabled); + } + + //DisabilityRate + public static void SetDisabilityRate(this IdentityUser user, int? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DisabilityRate, value); + } + public static int? GetDisabilityRate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DisabilityRate); + } + + //DisabilityReport + public static void SetDisabilityReport(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DisabilityReport, value); + } + public static string GetDisabilityReport(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DisabilityReport); + } + + //DisabilityReportFileName + public static void SetDisabilityReportFileName(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DisabilityReportFileName, value); + } + public static string GetDisabilityReportFileName(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DisabilityReportFileName); + } + + //PassportNo + public static void SetPassportNo(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.PassportNo, value); + } + public static string GetPassportNo(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.PassportNo); + } + + //PassportExpiryDate + public static void SetPassportExpiryDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.PassportExpiryDate, value); + } + public static DateTime? GetPassportExpiryDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.PassportExpiryDate); + } + + //WorkPermitNo + public static void SetWorkPermitNo(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.WorkPermitNo, value); + } + public static string GetWorkPermitNo(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.WorkPermitNo); + } + + //WorkPermitEndDate + public static void SetWorkPermitEndDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.WorkPermitEndDate, value); + } + public static DateTime? GetWorkPermitEndDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.WorkPermitEndDate); + } + + //RegistrationNo + public static void SetRegistrationNo(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.RegistrationNo, value); + } + public static string GetRegistrationNo(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.RegistrationNo); + } + + //EmploymentType + public static void SetEmploymentType(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.EmploymentType, value); + } + public static string GetEmploymentType(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.EmploymentType); + } + + //ContractType + public static void SetContractType(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.ContractType, value); + } + public static string GetContractType(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.ContractType); + } + + //ContractEndDate + public static void SetContractEndDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.ContractEndDate, value); + } + public static DateTime? GetContractEndDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.ContractEndDate); + } + + //ProbationEndDate + public static void SetProbationEndDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.ProbationEndDate, value); + } + public static DateTime? GetProbationEndDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.ProbationEndDate); + } + + //SeniorityStartDate + public static void SetSeniorityStartDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.SeniorityStartDate, value); + } + public static DateTime? GetSeniorityStartDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.SeniorityStartDate); + } + + //TerminationReasonId + public static void SetTerminationReasonId(this IdentityUser user, Guid? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.TerminationReasonId, value); + } + public static Guid? GetTerminationReasonId(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.TerminationReasonId); + } + + //TerminationNote + public static void SetTerminationNote(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.TerminationNote, value); + } + public static string GetTerminationNote(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.TerminationNote); + } + + //ShiftId + public static void SetShiftId(this IdentityUser user, Guid? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.ShiftId, value); + } + public static Guid? GetShiftId(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.ShiftId); + } + + //PdksCardNo + public static void SetPdksCardNo(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.PdksCardNo, value); + } + public static string GetPdksCardNo(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.PdksCardNo); + } + + //DrivingLicenseClass + public static void SetDrivingLicenseClass(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseClass, value); + } + public static string GetDrivingLicenseClass(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseClass); + } + + //DrivingLicenseNo + public static void SetDrivingLicenseNo(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseNo, value); + } + public static string GetDrivingLicenseNo(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseNo); + } + + //DrivingLicenseIssueDate + public static void SetDrivingLicenseIssueDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseIssueDate, value); + } + public static DateTime? GetDrivingLicenseIssueDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseIssueDate); + } + + //DrivingLicenseExpiryDate + public static void SetDrivingLicenseExpiryDate(this IdentityUser user, DateTime? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseExpiryDate, value); + } + public static DateTime? GetDrivingLicenseExpiryDate(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.DrivingLicenseExpiryDate); + } + + //BankName + public static void SetBankName(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.BankName, value); + } + public static string GetBankName(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.BankName); + } + + //Iban + public static void SetIban(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.Iban, value); + } + public static string GetIban(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.Iban); + } + + //SalaryType + public static void SetSalaryType(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.SalaryType, value); + } + public static string GetSalaryType(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.SalaryType); + } + + //GrossSalary + public static void SetGrossSalary(this IdentityUser user, decimal? value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.GrossSalary, value); + } + public static decimal? GetGrossSalary(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.GrossSalary); + } + + //SalaryCurrency + public static void SetSalaryCurrency(this IdentityUser user, string value) + { + user.SetProperty(PlatformConsts.AbpIdentity.User.SalaryCurrency, value); + } + public static string GetSalaryCurrency(this IdentityUser user) + { + return user.GetProperty(PlatformConsts.AbpIdentity.User.SalaryCurrency); + } +} diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 58659b1c..a87984aa 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -73,6 +73,7 @@ public class PlatformDbContext : public DbSet Activities { get; set; } public DbSet IpRestrictions { get; set; } public DbSet ContactTitles { get; set; } + public DbSet TerminationReasons { get; set; } public DbSet Currencies { get; set; } public DbSet CountryGroups { get; set; } public DbSet Countries { get; set; } @@ -103,6 +104,13 @@ public class PlatformDbContext : public DbSet UserPeriodicExaminations { get; set; } public DbSet UserPatientProtocols { get; set; } public DbSet UserSickLeaves { get; set; } + public DbSet UserEducations { get; set; } + public DbSet UserLanguages { get; set; } + public DbSet UserSkills { get; set; } + public DbSet UserCertificates { get; set; } + public DbSet UserFamilyMembers { get; set; } + public DbSet UserEmergencyContacts { get; set; } + public DbSet UserBenefits { get; set; } public DbSet SkillTypes { get; set; } public DbSet DevRequests { get; set; } public DbSet Agendas { get; set; } @@ -833,6 +841,116 @@ public class PlatformDbContext : b.HasIndex(x => new { x.TenantId, x.UserId }); }); + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserEducation)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.EducationLevel).IsRequired().HasMaxLength(32); + b.Property(x => x.SchoolName).IsRequired().HasMaxLength(256); + b.Property(x => x.Department).IsRequired(false).HasMaxLength(256); + b.Property(x => x.IsGraduated).HasDefaultValue(true); + + b.HasIndex(x => new { x.TenantId, x.UserId }); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserLanguage)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.SkillId).IsRequired(); + b.Property(x => x.Note).IsRequired(false).HasMaxLength(512); + + b.HasIndex(x => new { x.TenantId, x.UserId, x.SkillId }).IsUnique().HasFilter("[IsDeleted] = 0"); + + b.HasOne() + .WithMany() + .HasForeignKey(x => x.SkillId) + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne() + .WithMany() + .HasForeignKey(x => x.SkillLevelId) + .OnDelete(DeleteBehavior.Restrict); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserSkill)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.SkillId).IsRequired(); + b.Property(x => x.Level).IsRequired(); + b.Property(x => x.Note).IsRequired(false).HasMaxLength(512); + + b.HasIndex(x => new { x.TenantId, x.UserId, x.SkillId }).IsUnique().HasFilter("[IsDeleted] = 0"); + b.ToTable(t => t.HasCheckConstraint("CK_UserSkill_Level", "[Level] BETWEEN 1 AND 5")); + + b.HasOne() + .WithMany() + .HasForeignKey(x => x.SkillId) + .OnDelete(DeleteBehavior.Restrict); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserCertificate)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.CertificateId).IsRequired(); + b.Property(x => x.CertificateNo).IsRequired(false).HasMaxLength(64); + b.Property(x => x.IssuedBy).IsRequired(false).HasMaxLength(256); + b.Property(x => x.Note).IsRequired(false).HasMaxLength(512); + + b.HasIndex(x => new { x.TenantId, x.UserId }); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserFamilyMember)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.Relationship).IsRequired().HasMaxLength(16); + b.Property(x => x.Name).IsRequired().HasMaxLength(128); + b.Property(x => x.Surname).IsRequired(false).HasMaxLength(128); + b.Property(x => x.IdentityNumber).IsRequired(false).HasMaxLength(15); + b.Property(x => x.EmploymentStatus).IsRequired(false).HasMaxLength(16); + + b.HasIndex(x => new { x.TenantId, x.UserId }); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserEmergencyContact)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.Name).IsRequired().HasMaxLength(256); + b.Property(x => x.Relationship).IsRequired().HasMaxLength(16); + b.Property(x => x.PhoneNumber).IsRequired().HasMaxLength(32); + + b.HasIndex(x => new { x.TenantId, x.UserId }); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.UserBenefit)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.UserId).IsRequired(); + b.Property(x => x.BenefitType).IsRequired().HasMaxLength(32); + b.Property(x => x.Amount).HasPrecision(18, 2); + b.Property(x => x.Note).IsRequired(false).HasMaxLength(512); + + b.HasIndex(x => new { x.TenantId, x.UserId }); + }); + // Definitions builder.Entity(b => { @@ -855,6 +973,18 @@ public class PlatformDbContext : b.HasIndex(x => new { x.Title }).IsUnique().HasFilter("[IsDeleted] = 0"); }); + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.TerminationReason)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Code).IsRequired().HasMaxLength(8); + b.Property(x => x.Name).IsRequired().HasMaxLength(256); + b.Property(x => x.IsActive).HasDefaultValue(true); + + b.HasIndex(x => new { x.Code }).IsUnique().HasFilter("[IsDeleted] = 0"); + }); + builder.Entity(b => { b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Currency)), Prefix.DbSchema); diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEfCoreEntityExtensionMappings.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEfCoreEntityExtensionMappings.cs index d6688d38..06f8519e 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEfCoreEntityExtensionMappings.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformEfCoreEntityExtensionMappings.cs @@ -310,13 +310,283 @@ public static class PlatformEfCoreEntityExtensionMappings ObjectExtensionManager.Instance .MapEfCoreProperty( - PlatformConsts.AbpIdentity.User.GraduationSchool, + PlatformConsts.AbpIdentity.User.SecondaryEmail, (entityBuilder, propertyBuilder) => { propertyBuilder.HasMaxLength(256).HasDefaultValue(null); } ); + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.SecondaryPhoneNumber, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(32).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.MilitaryStatus, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(16).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.MilitaryPostponeEndDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.IsDisabled, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.IsRequired().HasDefaultValue(false); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DisabilityRate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DisabilityReport, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DisabilityReportFileName, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(256).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.PassportNo, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(32).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.PassportExpiryDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.WorkPermitNo, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(64).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.WorkPermitEndDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.RegistrationNo, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(32).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.EmploymentType, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(16).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.ContractType, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(16).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.ContractEndDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.ProbationEndDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.SeniorityStartDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.TerminationReasonId, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.TerminationNote, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(512).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.ShiftId, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.PdksCardNo, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(64).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DrivingLicenseClass, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(64).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DrivingLicenseNo, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(32).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DrivingLicenseIssueDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.DrivingLicenseExpiryDate, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.BankName, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(128).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.Iban, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(34).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.SalaryType, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(16).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.GrossSalary, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasPrecision(18, 2).HasDefaultValue(null); + } + ); + + ObjectExtensionManager.Instance + .MapEfCoreProperty( + PlatformConsts.AbpIdentity.User.SalaryCurrency, + (entityBuilder, propertyBuilder) => + { + propertyBuilder.HasMaxLength(8).HasDefaultValue(null); + } + ); + ObjectExtensionManager.Instance .MapEfCoreProperty( PlatformConsts.AbpIdentity.User.BloodType, diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.Designer.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.Designer.cs similarity index 93% rename from api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.Designer.cs rename to api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.Designer.cs index 0e8b20c4..84462462 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.Designer.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Sozsoft.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20261001063425_Initial")] + [Migration("20261002230416_Initial")] partial class Initial { /// @@ -930,7 +930,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Announcement", (string)null); + b.ToTable("Hr_T_Announcement", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.AnnouncementComment", b => @@ -992,7 +992,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("AnnouncementId"); - b.ToTable("Adm_T_AnnouncementComment", (string)null); + b.ToTable("Hr_T_AnnouncementComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.AnnouncementLike", b => @@ -1046,7 +1046,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_AnnouncementLike", (string)null); + b.ToTable("Hr_T_AnnouncementLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.BackgroundWorker", b => @@ -2727,7 +2727,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Event", (string)null); + b.ToTable("Hr_T_Event", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventCategory", b => @@ -2780,7 +2780,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventCategory", (string)null); + b.ToTable("Hr_T_EventCategory", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventComment", b => @@ -2841,7 +2841,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("EventId"); - b.ToTable("Adm_T_EventComment", (string)null); + b.ToTable("Hr_T_EventComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventLike", b => @@ -2895,7 +2895,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventLike", (string)null); + b.ToTable("Hr_T_EventLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventType", b => @@ -2948,7 +2948,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventType", (string)null); + b.ToTable("Hr_T_EventType", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.GlobalSearch", b => @@ -4205,7 +4205,7 @@ namespace Sozsoft.Platform.Migrations b.HasKey("Id"); - b.ToTable("Adm_T_MessengerConversation", (string)null); + b.ToTable("Hr_T_MessengerConversation", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.MessengerConversationMessage", b => @@ -4284,7 +4284,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("TenantId", "ConversationId", "SentAt"); - b.ToTable("Adm_T_MessengerConversationMessage", (string)null); + b.ToTable("Hr_T_MessengerConversationMessage", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Module", b => @@ -5378,7 +5378,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId"); - b.ToTable("Adm_T_SocialComment", (string)null); + b.ToTable("Hr_T_SocialComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialLike", b => @@ -5432,7 +5432,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_SocialLike", (string)null); + b.ToTable("Hr_T_SocialLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialLocation", b => @@ -5501,7 +5501,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId") .IsUnique(); - b.ToTable("Adm_T_SocialLocation", (string)null); + b.ToTable("Hr_T_SocialLocation", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialMedia", b => @@ -5573,7 +5573,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId") .IsUnique(); - b.ToTable("Adm_T_SocialMedia", (string)null); + b.ToTable("Hr_T_SocialMedia", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialPollOption", b => @@ -5630,7 +5630,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialMediaId"); - b.ToTable("Adm_T_SocialPollOption", (string)null); + b.ToTable("Hr_T_SocialPollOption", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialPost", b => @@ -5696,7 +5696,7 @@ namespace Sozsoft.Platform.Migrations b.HasKey("Id"); - b.ToTable("Adm_T_SocialPost", (string)null); + b.ToTable("Hr_T_SocialPost", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Survey", b => @@ -5769,7 +5769,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Survey", (string)null); + b.ToTable("Hr_T_Survey", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyAnswer", b => @@ -5833,7 +5833,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("ResponseId"); - b.ToTable("Adm_T_SurveyAnswer", (string)null); + b.ToTable("Hr_T_SurveyAnswer", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyQuestion", b => @@ -5898,7 +5898,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SurveyId"); - b.ToTable("Adm_T_SurveyQuestion", (string)null); + b.ToTable("Hr_T_SurveyQuestion", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyQuestionOption", b => @@ -5955,7 +5955,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("QuestionId"); - b.ToTable("Adm_T_SurveyQuestionOption", (string)null); + b.ToTable("Hr_T_SurveyQuestionOption", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyResponse", b => @@ -6010,7 +6010,66 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SurveyId"); - b.ToTable("Adm_T_SurveyResponse", (string)null); + b.ToTable("Hr_T_SurveyResponse", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.TerminationReason", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("Code") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Sas_H_TerminationReason", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Uom", b => @@ -6144,6 +6203,427 @@ namespace Sozsoft.Platform.Migrations b.ToTable("Adm_T_UomCategory", (string)null); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserBenefit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Amount") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BenefitType") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserBenefit", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserCertificate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CertificateId") + .HasColumnType("uniqueidentifier"); + + b.Property("CertificateNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IssueDate") + .HasColumnType("datetime2"); + + b.Property("IssuedBy") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserCertificate", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserEducation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Department") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EducationLevel") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsGraduated") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("SchoolName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserEducation", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserEmergencyContact", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PhoneNumber") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("Relationship") + .IsRequired() + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserEmergencyContact", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserFamilyMember", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EmploymentStatus") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("IdentityNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsBenefitCovered") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsInsuranceCovered") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Relationship") + .IsRequired() + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("Surname") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserFamilyMember", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserLanguage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("SkillId") + .HasColumnType("uniqueidentifier"); + + b.Property("SkillLevelId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SkillId"); + + b.HasIndex("SkillLevelId"); + + b.HasIndex("TenantId", "UserId", "SkillId") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Adm_T_UserLanguage", (string)null); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserPatientProtocol", b => { b.Property("Id") @@ -6361,6 +6841,72 @@ namespace Sozsoft.Platform.Migrations b.ToTable("Adm_T_UserSickLeave", (string)null); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserSkill", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("SkillId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SkillId"); + + b.HasIndex("TenantId", "UserId", "SkillId") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Adm_T_UserSkill", null, t => + { + t.HasCheckConstraint("CK_UserSkill_Level", "[Level] BETWEEN 1 AND 5"); + }); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserWorkExperience", b => { b.Property("Id") @@ -8028,6 +8574,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("BankName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + b.Property("BirthDate") .HasColumnType("datetime2"); @@ -8079,6 +8629,13 @@ namespace Sozsoft.Platform.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("ContractEndDate") + .HasColumnType("datetime2"); + + b.Property("ContractType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("CreationTime") .HasColumnType("datetime2") .HasColumnName("CreationTime"); @@ -8135,10 +8692,34 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("DisabilityRate") + .HasColumnType("int"); + + b.Property("DisabilityReport") + .HasColumnType("nvarchar(max)"); + + b.Property("DisabilityReportFileName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + b.Property("District") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("DrivingLicenseClass") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("DrivingLicenseExpiryDate") + .HasColumnType("datetime2"); + + b.Property("DrivingLicenseIssueDate") + .HasColumnType("datetime2"); + + b.Property("DrivingLicenseNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("EducationLevel") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); @@ -8155,6 +8736,10 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EmploymentType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("EntityVersion") .HasColumnType("int"); @@ -8258,9 +8843,9 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(16) .HasColumnType("nvarchar(16)"); - b.Property("GraduationSchool") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("GrossSalary") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); b.Property("HadSurgery") .HasColumnType("bit"); @@ -8294,6 +8879,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("Iban") + .HasMaxLength(34) + .HasColumnType("nvarchar(34)"); + b.Property("IdentityNumber") .HasMaxLength(15) .HasColumnType("nvarchar(15)"); @@ -8308,6 +8897,11 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + b.Property("IsExternal") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -8395,6 +8989,13 @@ namespace Sozsoft.Platform.Migrations b.Property("MarriageDate") .HasColumnType("datetime2"); + b.Property("MilitaryPostponeEndDate") + .HasColumnType("datetime2"); + + b.Property("MilitaryStatus") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("MotherHealthNote") .HasMaxLength(512) .HasColumnType("nvarchar(512)"); @@ -8442,11 +9043,22 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("PassportExpiryDate") + .HasColumnType("datetime2"); + + b.Property("PassportNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("PasswordHash") .HasMaxLength(256) .HasColumnType("nvarchar(256)") .HasColumnName("PasswordHash"); + b.Property("PdksCardNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + b.Property("PhoneNumber") .HasMaxLength(16) .HasColumnType("nvarchar(16)") @@ -8458,19 +9070,45 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("PhoneNumberConfirmed"); + b.Property("ProbationEndDate") + .HasColumnType("datetime2"); + b.Property("Province") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("RegistrationNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("RocketUsername") .HasColumnType("nvarchar(max)"); + b.Property("SalaryCurrency") + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.Property("SalaryType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("SecondaryEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("SecondaryPhoneNumber") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("SecurityStamp") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)") .HasColumnName("SecurityStamp"); + b.Property("SeniorityStartDate") + .HasColumnType("datetime2"); + b.Property("SequenceNo") .HasMaxLength(32) .HasColumnType("nvarchar(32)"); @@ -8479,6 +9117,9 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(32) .HasColumnType("nvarchar(32)"); + b.Property("ShiftId") + .HasColumnType("uniqueidentifier"); + b.Property("ShiftNightDoctorId") .HasColumnType("uniqueidentifier"); @@ -8524,6 +9165,13 @@ namespace Sozsoft.Platform.Migrations b.Property("TerminationDate") .HasColumnType("datetime2"); + b.Property("TerminationNote") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("TerminationReasonId") + .HasColumnType("uniqueidentifier"); + b.Property("TetanusVaccination") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); @@ -8563,6 +9211,13 @@ namespace Sozsoft.Platform.Migrations b.Property("WorkHour") .HasColumnType("nvarchar(max)"); + b.Property("WorkPermitEndDate") + .HasColumnType("datetime2"); + + b.Property("WorkPermitNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + b.HasKey("Id"); b.HasIndex("Email"); @@ -9916,6 +10571,29 @@ namespace Sozsoft.Platform.Migrations b.Navigation("UomCategory"); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserLanguage", b => + { + b.HasOne("Sozsoft.Platform.Entities.Skill", null) + .WithMany() + .HasForeignKey("SkillId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("Sozsoft.Platform.Entities.SkillLevel", null) + .WithMany() + .HasForeignKey("SkillLevelId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserSkill", b => + { + b.HasOne("Sozsoft.Platform.Entities.Skill", null) + .WithMany() + .HasForeignKey("SkillId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserWorkExperience", b => { b.HasOne("Sozsoft.Platform.Entities.Sector", null) diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.cs similarity index 91% rename from api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.cs rename to api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.cs index e6714605..10c4f3c3 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261001063425_Initial.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20261002230416_Initial.cs @@ -439,6 +439,7 @@ namespace Sozsoft.Platform.Migrations Alcohol = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), AlcoholNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), Avatar = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + BankName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), BirthDate = table.Column(type: "datetime2", nullable: true), BirthPlace = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), BloodType = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), @@ -452,6 +453,8 @@ namespace Sozsoft.Platform.Migrations ComplaintJointPain = table.Column(type: "bit", nullable: true), ComplaintPalpitation = table.Column(type: "bit", nullable: true), ComplaintProductiveCough = table.Column(type: "bit", nullable: true), + ContractEndDate = table.Column(type: "datetime2", nullable: true), + ContractType = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), DepartmentId = table.Column(type: "uniqueidentifier", nullable: false), DiagnosisDiabetes = table.Column(type: "bit", nullable: true), DiagnosisFoodPoisoning = table.Column(type: "bit", nullable: true), @@ -465,8 +468,16 @@ namespace Sozsoft.Platform.Migrations DiagnosisVisionImpairment = table.Column(type: "bit", nullable: true), DisabilityPension = table.Column(type: "bit", nullable: true), DisabilityPensionNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + DisabilityRate = table.Column(type: "int", nullable: true), + DisabilityReport = table.Column(type: "nvarchar(max)", nullable: true), + DisabilityReportFileName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), District = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + DrivingLicenseClass = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + DrivingLicenseExpiryDate = table.Column(type: "datetime2", nullable: true), + DrivingLicenseIssueDate = table.Column(type: "datetime2", nullable: true), + DrivingLicenseNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), EducationLevel = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + EmploymentType = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), ExamBloodPressure = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), ExamCardiovascular = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), ExamDigestive = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), @@ -491,7 +502,7 @@ namespace Sozsoft.Platform.Migrations FitForWorkJob = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), FitnessDoctorId = table.Column(type: "uniqueidentifier", nullable: true), Gender = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), - GraduationSchool = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + GrossSalary = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true), HadSurgery = table.Column(type: "bit", nullable: true), HadSurgeryNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), HadWorkAccident = table.Column(type: "bit", nullable: true), @@ -501,7 +512,9 @@ namespace Sozsoft.Platform.Migrations HomeAddress = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), Hospitalized = table.Column(type: "bit", nullable: true), HospitalizedNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + Iban = table.Column(type: "nvarchar(34)", maxLength: 34, nullable: true), IdentityNumber = table.Column(type: "nvarchar(15)", maxLength: 15, nullable: true), + IsDisabled = table.Column(type: "bit", nullable: false, defaultValue: false), IsVerified = table.Column(type: "bit", nullable: false, defaultValue: false), IssuedDate = table.Column(type: "datetime2", nullable: true), IssuedPlace = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), @@ -518,6 +531,8 @@ namespace Sozsoft.Platform.Migrations LoginEndDate = table.Column(type: "datetime2", nullable: true), MaritalStatus = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), MarriageDate = table.Column(type: "datetime2", nullable: true), + MilitaryPostponeEndDate = table.Column(type: "datetime2", nullable: true), + MilitaryStatus = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), MotherHealthNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), MotherHealthStatus = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), MotherName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), @@ -526,10 +541,21 @@ namespace Sozsoft.Platform.Migrations OccupationalDiseaseExam = table.Column(type: "bit", nullable: true), OccupationalDiseaseExamNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), OtherVaccination = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + PassportExpiryDate = table.Column(type: "datetime2", nullable: true), + PassportNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), + PdksCardNo = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ProbationEndDate = table.Column(type: "datetime2", nullable: true), Province = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + RegistrationNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), RocketUsername = table.Column(type: "nvarchar(max)", nullable: true), + SalaryCurrency = table.Column(type: "nvarchar(8)", maxLength: 8, nullable: true), + SalaryType = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), + SecondaryEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + SecondaryPhoneNumber = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), + SeniorityStartDate = table.Column(type: "datetime2", nullable: true), SequenceNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), SerialNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), + ShiftId = table.Column(type: "uniqueidentifier", nullable: true), ShiftNightDoctorId = table.Column(type: "uniqueidentifier", nullable: true), ShiftWorkFit = table.Column(type: "bit", nullable: true), SiblingHealthNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), @@ -539,6 +565,8 @@ namespace Sozsoft.Platform.Migrations SskNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), TelegramChatId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), TerminationDate = table.Column(type: "datetime2", nullable: true), + TerminationNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + TerminationReasonId = table.Column(type: "uniqueidentifier", nullable: true), TetanusVaccination = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), UnderTreatment = table.Column(type: "bit", nullable: true), UnderTreatmentNote = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), @@ -546,6 +574,8 @@ namespace Sozsoft.Platform.Migrations Village = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), VolumeNo = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: true), WorkHour = table.Column(type: "nvarchar(max)", nullable: true), + WorkPermitEndDate = table.Column(type: "datetime2", nullable: true), + WorkPermitNo = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: false), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -588,77 +618,6 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Adm_T_Agenda", x => x.Id); }); - migrationBuilder.CreateTable( - name: "Adm_T_Announcement", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Excerpt = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: false), - Content = table.Column(type: "nvarchar(max)", nullable: false), - ImageUrl = table.Column(type: "nvarchar(max)", nullable: true), - Category = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - PublishDate = table.Column(type: "datetime2", nullable: false), - ExpiryDate = table.Column(type: "datetime2", nullable: true), - IsPinned = table.Column(type: "bit", nullable: false), - ViewCount = table.Column(type: "int", nullable: false, defaultValue: 0), - Likes = table.Column(type: "int", nullable: false), - Attachments = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_Announcement", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_EventCategory", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_EventCategory", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_EventType", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_EventType", x => x.Id); - }); - migrationBuilder.CreateTable( name: "Adm_T_IpRestriction", columns: table => new @@ -681,33 +640,6 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Adm_T_IpRestriction", x => x.Id); }); - migrationBuilder.CreateTable( - name: "Adm_T_MessengerConversation", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - ParticipantKey = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: false), - ParticipantIdsJson = table.Column(type: "nvarchar(max)", nullable: false), - IsGroup = table.Column(type: "bit", nullable: false), - LastSenderId = table.Column(type: "uniqueidentifier", nullable: true), - LastMessagePreview = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - LastMessageTime = table.Column(type: "datetime2", nullable: true), - MessageCount = table.Column(type: "int", nullable: false, defaultValue: 0), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_MessengerConversation", x => x.Id); - }); - migrationBuilder.CreateTable( name: "Adm_T_Note", columns: table => new @@ -851,55 +783,6 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Adm_T_Sequence", x => x.Id); }); - migrationBuilder.CreateTable( - name: "Adm_T_SocialPost", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - Content = table.Column(type: "nvarchar(max)", nullable: false), - LikeCount = table.Column(type: "int", nullable: false, defaultValue: 0), - IsLiked = table.Column(type: "bit", nullable: false, defaultValue: false), - IsOwnPost = table.Column(type: "bit", nullable: false, defaultValue: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SocialPost", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_Survey", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Description = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), - Deadline = table.Column(type: "datetime2", nullable: false), - Responses = table.Column(type: "int", nullable: false, defaultValue: 0), - Status = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: false), - IsAnonymous = table.Column(type: "bit", nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_Survey", x => x.Id); - }); - migrationBuilder.CreateTable( name: "Adm_T_UomCategory", columns: table => new @@ -920,6 +803,134 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Adm_T_UomCategory", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Adm_T_UserBenefit", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + BenefitType = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: false), + Amount = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true), + StartDate = table.Column(type: "datetime2", nullable: true), + EndDate = table.Column(type: "datetime2", nullable: true), + Note = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserBenefit", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserCertificate", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + CertificateId = table.Column(type: "uniqueidentifier", nullable: false), + CertificateNo = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + IssuedBy = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + IssueDate = table.Column(type: "datetime2", nullable: true), + ExpiryDate = table.Column(type: "datetime2", nullable: true), + Note = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserCertificate", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserEducation", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + EducationLevel = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: false), + SchoolName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Department = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + StartDate = table.Column(type: "datetime2", nullable: true), + EndDate = table.Column(type: "datetime2", nullable: true), + IsGraduated = table.Column(type: "bit", nullable: false, defaultValue: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserEducation", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserEmergencyContact", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Relationship = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: false), + PhoneNumber = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserEmergencyContact", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserFamilyMember", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + Relationship = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + Surname = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + IdentityNumber = table.Column(type: "nvarchar(15)", maxLength: 15, nullable: true), + BirthDate = table.Column(type: "datetime2", nullable: true), + EmploymentStatus = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), + IsInsuranceCovered = table.Column(type: "bit", nullable: false), + IsBenefitCovered = table.Column(type: "bit", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserFamilyMember", x => x.Id); + }); + migrationBuilder.CreateTable( name: "Adm_T_UserPatientProtocol", columns: table => new @@ -1061,6 +1072,37 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Adm_T_WorkHour", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Hr_T_Announcement", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Excerpt = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: false), + Content = table.Column(type: "nvarchar(max)", nullable: false), + ImageUrl = table.Column(type: "nvarchar(max)", nullable: true), + Category = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + PublishDate = table.Column(type: "datetime2", nullable: false), + ExpiryDate = table.Column(type: "datetime2", nullable: true), + IsPinned = table.Column(type: "bit", nullable: false), + ViewCount = table.Column(type: "int", nullable: false, defaultValue: 0), + Likes = table.Column(type: "int", nullable: false), + Attachments = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_Announcement", x => x.Id); + }); + migrationBuilder.CreateTable( name: "Hr_T_Department", columns: table => new @@ -1083,6 +1125,73 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Hr_T_Department", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Hr_T_EventCategory", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_EventCategory", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_EventType", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_EventType", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_MessengerConversation", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + ParticipantKey = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: false), + ParticipantIdsJson = table.Column(type: "nvarchar(max)", nullable: false), + IsGroup = table.Column(type: "bit", nullable: false), + LastSenderId = table.Column(type: "uniqueidentifier", nullable: true), + LastMessagePreview = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + LastMessageTime = table.Column(type: "datetime2", nullable: true), + MessageCount = table.Column(type: "int", nullable: false, defaultValue: 0), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_MessengerConversation", x => x.Id); + }); + migrationBuilder.CreateTable( name: "Hr_T_SkillType", columns: table => new @@ -1103,6 +1212,55 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Hr_T_SkillType", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Hr_T_SocialPost", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + Content = table.Column(type: "nvarchar(max)", nullable: false), + LikeCount = table.Column(type: "int", nullable: false, defaultValue: 0), + IsLiked = table.Column(type: "bit", nullable: false, defaultValue: false), + IsOwnPost = table.Column(type: "bit", nullable: false, defaultValue: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SocialPost", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_Survey", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Title = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Description = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: true), + Deadline = table.Column(type: "datetime2", nullable: false), + Responses = table.Column(type: "int", nullable: false, defaultValue: 0), + Status = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: false), + IsAnonymous = table.Column(type: "bit", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_Survey", x => x.Id); + }); + migrationBuilder.CreateTable( name: "OpenIddictApplications", columns: table => new @@ -1952,6 +2110,27 @@ namespace Sozsoft.Platform.Migrations table.PrimaryKey("PK_Sas_H_SettingDefinition", x => x.Id); }); + migrationBuilder.CreateTable( + name: "Sas_H_TerminationReason", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Code = table.Column(type: "nvarchar(8)", maxLength: 8, nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + IsActive = table.Column(type: "bit", nullable: false, defaultValue: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Sas_H_TerminationReason", x => x.Id); + }); + migrationBuilder.CreateTable( name: "Sas_T_Branch", columns: table => new @@ -2313,138 +2492,6 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Cascade); }); - migrationBuilder.CreateTable( - name: "Adm_T_AnnouncementComment", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - AnnouncementId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: false), - Content = table.Column(type: "nvarchar(max)", maxLength: 8192, nullable: false), - Likes = table.Column(type: "int", nullable: false, defaultValue: 0), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_AnnouncementComment", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_AnnouncementComment_Adm_T_Announcement_AnnouncementId", - column: x => x.AnnouncementId, - principalTable: "Adm_T_Announcement", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_AnnouncementLike", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - AnnouncementId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_AnnouncementLike", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_AnnouncementLike_Adm_T_Announcement_AnnouncementId", - column: x => x.AnnouncementId, - principalTable: "Adm_T_Announcement", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_Event", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - CategoryId = table.Column(type: "uniqueidentifier", nullable: false), - TypeId = table.Column(type: "uniqueidentifier", nullable: false), - Date = table.Column(type: "datetime2", nullable: false), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Description = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true), - Place = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - Status = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - ParticipantsCount = table.Column(type: "int", nullable: false), - Likes = table.Column(type: "int", nullable: false), - isPublished = table.Column(type: "bit", nullable: false, defaultValue: false), - Photos = table.Column(type: "nvarchar(max)", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_Event", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_Event_Adm_T_EventCategory_CategoryId", - column: x => x.CategoryId, - principalTable: "Adm_T_EventCategory", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_Adm_T_Event_Adm_T_EventType_TypeId", - column: x => x.TypeId, - principalTable: "Adm_T_EventType", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_MessengerConversationMessage", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ConversationId = table.Column(type: "uniqueidentifier", nullable: false), - SenderId = table.Column(type: "uniqueidentifier", nullable: false), - SenderUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - SenderName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - RecipientIdsJson = table.Column(type: "nvarchar(max)", nullable: false), - Text = table.Column(type: "nvarchar(max)", maxLength: 4096, nullable: true), - AttachmentsJson = table.Column(type: "nvarchar(max)", nullable: false), - SentAt = table.Column(type: "datetime2", nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_MessengerConversationMessage", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_MessengerConversationMessage_Adm_T_MessengerConversation_ConversationId", - column: x => x.ConversationId, - principalTable: "Adm_T_MessengerConversation", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - migrationBuilder.CreateTable( name: "Adm_T_NotificationRule", columns: table => new @@ -2538,182 +2585,6 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Restrict); }); - migrationBuilder.CreateTable( - name: "Adm_T_SocialComment", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - Content = table.Column(type: "nvarchar(max)", maxLength: 8192, nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SocialComment", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SocialComment_Adm_T_SocialPost_SocialPostId", - column: x => x.SocialPostId, - principalTable: "Adm_T_SocialPost", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_SocialLike", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SocialLike", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SocialLike_Adm_T_SocialPost_SocialPostId", - column: x => x.SocialPostId, - principalTable: "Adm_T_SocialPost", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_SocialLocation", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Address = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - Lat = table.Column(type: "float", nullable: true), - Lng = table.Column(type: "float", nullable: true), - PlaceId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SocialLocation", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SocialLocation_Adm_T_SocialPost_SocialPostId", - column: x => x.SocialPostId, - principalTable: "Adm_T_SocialPost", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_SocialMedia", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Urls = table.Column(type: "nvarchar(max)", nullable: true), - PollQuestion = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - PollTotalVotes = table.Column(type: "int", nullable: true), - PollEndsAt = table.Column(type: "datetime2", nullable: true), - PollUserVoteId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SocialMedia", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SocialMedia_Adm_T_SocialPost_SocialPostId", - column: x => x.SocialPostId, - principalTable: "Adm_T_SocialPost", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_SurveyQuestion", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SurveyId = table.Column(type: "uniqueidentifier", nullable: false), - QuestionText = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: false), - Type = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Order = table.Column(type: "int", nullable: false), - IsRequired = table.Column(type: "bit", nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SurveyQuestion", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SurveyQuestion_Adm_T_Survey_SurveyId", - column: x => x.SurveyId, - principalTable: "Adm_T_Survey", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_SurveyResponse", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - SurveyId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - SubmissionTime = table.Column(type: "datetime2", nullable: false), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_SurveyResponse", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_SurveyResponse_Adm_T_Survey_SurveyId", - column: x => x.SurveyId, - principalTable: "Adm_T_Survey", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - migrationBuilder.CreateTable( name: "Adm_T_Uom", columns: table => new @@ -2849,6 +2720,62 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "Hr_T_AnnouncementComment", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + AnnouncementId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + Content = table.Column(type: "nvarchar(max)", maxLength: 8192, nullable: false), + Likes = table.Column(type: "int", nullable: false, defaultValue: 0), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_AnnouncementComment", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_AnnouncementComment_Hr_T_Announcement_AnnouncementId", + column: x => x.AnnouncementId, + principalTable: "Hr_T_Announcement", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_AnnouncementLike", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + AnnouncementId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_AnnouncementLike", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_AnnouncementLike_Hr_T_Announcement_AnnouncementId", + column: x => x.AnnouncementId, + principalTable: "Hr_T_Announcement", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "Hr_T_JobPosition", columns: table => new @@ -2878,6 +2805,82 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Restrict); }); + migrationBuilder.CreateTable( + name: "Hr_T_Event", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + CategoryId = table.Column(type: "uniqueidentifier", nullable: false), + TypeId = table.Column(type: "uniqueidentifier", nullable: false), + Date = table.Column(type: "datetime2", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Description = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true), + Place = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + Status = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + ParticipantsCount = table.Column(type: "int", nullable: false), + Likes = table.Column(type: "int", nullable: false), + isPublished = table.Column(type: "bit", nullable: false, defaultValue: false), + Photos = table.Column(type: "nvarchar(max)", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_Event", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_Event_Hr_T_EventCategory_CategoryId", + column: x => x.CategoryId, + principalTable: "Hr_T_EventCategory", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Hr_T_Event_Hr_T_EventType_TypeId", + column: x => x.TypeId, + principalTable: "Hr_T_EventType", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_MessengerConversationMessage", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ConversationId = table.Column(type: "uniqueidentifier", nullable: false), + SenderId = table.Column(type: "uniqueidentifier", nullable: false), + SenderUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + SenderName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + RecipientIdsJson = table.Column(type: "nvarchar(max)", nullable: false), + Text = table.Column(type: "nvarchar(max)", maxLength: 4096, nullable: true), + AttachmentsJson = table.Column(type: "nvarchar(max)", nullable: false), + SentAt = table.Column(type: "datetime2", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_MessengerConversationMessage", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_MessengerConversationMessage_Hr_T_MessengerConversation_ConversationId", + column: x => x.ConversationId, + principalTable: "Hr_T_MessengerConversation", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "Hr_T_Skill", columns: table => new @@ -2934,6 +2937,182 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "Hr_T_SocialComment", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + Content = table.Column(type: "nvarchar(max)", maxLength: 8192, nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SocialComment", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SocialComment_Hr_T_SocialPost_SocialPostId", + column: x => x.SocialPostId, + principalTable: "Hr_T_SocialPost", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SocialLike", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SocialLike", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SocialLike_Hr_T_SocialPost_SocialPostId", + column: x => x.SocialPostId, + principalTable: "Hr_T_SocialPost", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SocialLocation", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Address = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + Lat = table.Column(type: "float", nullable: true), + Lng = table.Column(type: "float", nullable: true), + PlaceId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SocialLocation", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SocialLocation_Hr_T_SocialPost_SocialPostId", + column: x => x.SocialPostId, + principalTable: "Hr_T_SocialPost", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SocialMedia", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SocialPostId = table.Column(type: "uniqueidentifier", nullable: false), + Type = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + Urls = table.Column(type: "nvarchar(max)", nullable: true), + PollQuestion = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + PollTotalVotes = table.Column(type: "int", nullable: true), + PollEndsAt = table.Column(type: "datetime2", nullable: true), + PollUserVoteId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SocialMedia", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SocialMedia_Hr_T_SocialPost_SocialPostId", + column: x => x.SocialPostId, + principalTable: "Hr_T_SocialPost", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SurveyQuestion", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SurveyId = table.Column(type: "uniqueidentifier", nullable: false), + QuestionText = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: false), + Type = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + Order = table.Column(type: "int", nullable: false), + IsRequired = table.Column(type: "bit", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SurveyQuestion", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SurveyQuestion_Hr_T_Survey_SurveyId", + column: x => x.SurveyId, + principalTable: "Hr_T_Survey", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SurveyResponse", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SurveyId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + SubmissionTime = table.Column(type: "datetime2", nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_SurveyResponse", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_SurveyResponse_Hr_T_Survey_SurveyId", + column: x => x.SurveyId, + principalTable: "Hr_T_Survey", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + migrationBuilder.CreateTable( name: "OpenIddictAuthorizations", columns: table => new @@ -3375,62 +3554,6 @@ namespace Sozsoft.Platform.Migrations onDelete: ReferentialAction.Cascade); }); - migrationBuilder.CreateTable( - name: "Adm_T_EventComment", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - EventId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: false), - Content = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - Likes = table.Column(type: "int", nullable: false, defaultValue: 0), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_EventComment", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_EventComment_Adm_T_Event_EventId", - column: x => x.EventId, - principalTable: "Adm_T_Event", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Adm_T_EventLike", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - EventId = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Adm_T_EventLike", x => x.Id); - table.ForeignKey( - name: "FK_Adm_T_EventLike_Adm_T_Event_EventId", - column: x => x.EventId, - principalTable: "Adm_T_Event", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - migrationBuilder.CreateTable( name: "Adm_T_Notification", columns: table => new @@ -3474,7 +3597,128 @@ namespace Sozsoft.Platform.Migrations }); migrationBuilder.CreateTable( - name: "Adm_T_SocialPollOption", + name: "Hr_T_EventComment", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + EventId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + Content = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + Likes = table.Column(type: "int", nullable: false, defaultValue: 0), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_EventComment", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_EventComment_Hr_T_Event_EventId", + column: x => x.EventId, + principalTable: "Hr_T_Event", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_EventLike", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + EventId = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Hr_T_EventLike", x => x.Id); + table.ForeignKey( + name: "FK_Hr_T_EventLike_Hr_T_Event_EventId", + column: x => x.EventId, + principalTable: "Hr_T_Event", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserSkill", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + SkillId = table.Column(type: "uniqueidentifier", nullable: false), + Level = table.Column(type: "int", nullable: false), + Note = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserSkill", x => x.Id); + table.CheckConstraint("CK_UserSkill_Level", "[Level] BETWEEN 1 AND 5"); + table.ForeignKey( + name: "FK_Adm_T_UserSkill_Hr_T_Skill_SkillId", + column: x => x.SkillId, + principalTable: "Hr_T_Skill", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "Adm_T_UserLanguage", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + SkillId = table.Column(type: "uniqueidentifier", nullable: false), + SkillLevelId = table.Column(type: "uniqueidentifier", nullable: true), + Note = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Adm_T_UserLanguage", x => x.Id); + table.ForeignKey( + name: "FK_Adm_T_UserLanguage_Hr_T_SkillLevel_SkillLevelId", + column: x => x.SkillLevelId, + principalTable: "Hr_T_SkillLevel", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_Adm_T_UserLanguage_Hr_T_Skill_SkillId", + column: x => x.SkillId, + principalTable: "Hr_T_Skill", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "Hr_T_SocialPollOption", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), @@ -3492,17 +3736,17 @@ namespace Sozsoft.Platform.Migrations }, constraints: table => { - table.PrimaryKey("PK_Adm_T_SocialPollOption", x => x.Id); + table.PrimaryKey("PK_Hr_T_SocialPollOption", x => x.Id); table.ForeignKey( - name: "FK_Adm_T_SocialPollOption_Adm_T_SocialMedia_SocialMediaId", + name: "FK_Hr_T_SocialPollOption_Hr_T_SocialMedia_SocialMediaId", column: x => x.SocialMediaId, - principalTable: "Adm_T_SocialMedia", + principalTable: "Hr_T_SocialMedia", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "Adm_T_SurveyQuestionOption", + name: "Hr_T_SurveyQuestionOption", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), @@ -3520,17 +3764,17 @@ namespace Sozsoft.Platform.Migrations }, constraints: table => { - table.PrimaryKey("PK_Adm_T_SurveyQuestionOption", x => x.Id); + table.PrimaryKey("PK_Hr_T_SurveyQuestionOption", x => x.Id); table.ForeignKey( - name: "FK_Adm_T_SurveyQuestionOption_Adm_T_SurveyQuestion_QuestionId", + name: "FK_Hr_T_SurveyQuestionOption_Hr_T_SurveyQuestion_QuestionId", column: x => x.QuestionId, - principalTable: "Adm_T_SurveyQuestion", + principalTable: "Hr_T_SurveyQuestion", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "Adm_T_SurveyAnswer", + name: "Hr_T_SurveyAnswer", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), @@ -3549,17 +3793,17 @@ namespace Sozsoft.Platform.Migrations }, constraints: table => { - table.PrimaryKey("PK_Adm_T_SurveyAnswer", x => x.Id); + table.PrimaryKey("PK_Hr_T_SurveyAnswer", x => x.Id); table.ForeignKey( - name: "FK_Adm_T_SurveyAnswer_Adm_T_SurveyQuestion_QuestionId", + name: "FK_Hr_T_SurveyAnswer_Hr_T_SurveyQuestion_QuestionId", column: x => x.QuestionId, - principalTable: "Adm_T_SurveyQuestion", + principalTable: "Hr_T_SurveyQuestion", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( - name: "FK_Adm_T_SurveyAnswer_Adm_T_SurveyResponse_ResponseId", + name: "FK_Hr_T_SurveyAnswer_Hr_T_SurveyResponse_ResponseId", column: x => x.ResponseId, - principalTable: "Adm_T_SurveyResponse", + principalTable: "Hr_T_SurveyResponse", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); @@ -3975,68 +4219,6 @@ namespace Sozsoft.Platform.Migrations table: "AbpUsers", column: "UserName"); - migrationBuilder.CreateIndex( - name: "IX_Adm_T_Announcement_TenantId_Title", - table: "Adm_T_Announcement", - columns: new[] { "TenantId", "Title" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_AnnouncementComment_AnnouncementId", - table: "Adm_T_AnnouncementComment", - column: "AnnouncementId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_AnnouncementLike_AnnouncementId_UserId", - table: "Adm_T_AnnouncementLike", - columns: new[] { "AnnouncementId", "UserId" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_Event_CategoryId", - table: "Adm_T_Event", - column: "CategoryId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_Event_TenantId_CategoryId_TypeId_Name", - table: "Adm_T_Event", - columns: new[] { "TenantId", "CategoryId", "TypeId", "Name" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_Event_TypeId", - table: "Adm_T_Event", - column: "TypeId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_EventCategory_TenantId_Name", - table: "Adm_T_EventCategory", - columns: new[] { "TenantId", "Name" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_EventComment_EventId", - table: "Adm_T_EventComment", - column: "EventId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_EventLike_EventId_UserId", - table: "Adm_T_EventLike", - columns: new[] { "EventId", "UserId" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_EventType_TenantId_Name", - table: "Adm_T_EventType", - columns: new[] { "TenantId", "Name" }, - unique: true, - filter: "[IsDeleted] = 0"); - migrationBuilder.CreateIndex( name: "IX_Adm_T_IpRestriction_TenantId_ResourceType_ResourceId_IP", table: "Adm_T_IpRestriction", @@ -4044,16 +4226,6 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); - migrationBuilder.CreateIndex( - name: "IX_Adm_T_MessengerConversationMessage_ConversationId", - table: "Adm_T_MessengerConversationMessage", - column: "ConversationId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_MessengerConversationMessage_TenantId_ConversationId_SentAt", - table: "Adm_T_MessengerConversationMessage", - columns: new[] { "TenantId", "ConversationId", "SentAt" }); - migrationBuilder.CreateIndex( name: "IX_Adm_T_Notification_NotificationRuleId", table: "Adm_T_Notification", @@ -4124,67 +4296,6 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SocialComment_SocialPostId", - table: "Adm_T_SocialComment", - column: "SocialPostId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SocialLike_SocialPostId_UserId", - table: "Adm_T_SocialLike", - columns: new[] { "SocialPostId", "UserId" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SocialLocation_SocialPostId", - table: "Adm_T_SocialLocation", - column: "SocialPostId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SocialMedia_SocialPostId", - table: "Adm_T_SocialMedia", - column: "SocialPostId", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SocialPollOption_SocialMediaId", - table: "Adm_T_SocialPollOption", - column: "SocialMediaId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_Survey_TenantId_Title", - table: "Adm_T_Survey", - columns: new[] { "TenantId", "Title" }, - unique: true, - filter: "[IsDeleted] = 0"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SurveyAnswer_QuestionId", - table: "Adm_T_SurveyAnswer", - column: "QuestionId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SurveyAnswer_ResponseId", - table: "Adm_T_SurveyAnswer", - column: "ResponseId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SurveyQuestion_SurveyId", - table: "Adm_T_SurveyQuestion", - column: "SurveyId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SurveyQuestionOption_QuestionId", - table: "Adm_T_SurveyQuestionOption", - column: "QuestionId"); - - migrationBuilder.CreateIndex( - name: "IX_Adm_T_SurveyResponse_SurveyId", - table: "Adm_T_SurveyResponse", - column: "SurveyId"); - migrationBuilder.CreateIndex( name: "IX_Adm_T_Uom_TenantId_Name_UomCategoryId", table: "Adm_T_Uom", @@ -4204,6 +4315,48 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserBenefit_TenantId_UserId", + table: "Adm_T_UserBenefit", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserCertificate_TenantId_UserId", + table: "Adm_T_UserCertificate", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserEducation_TenantId_UserId", + table: "Adm_T_UserEducation", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserEmergencyContact_TenantId_UserId", + table: "Adm_T_UserEmergencyContact", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserFamilyMember_TenantId_UserId", + table: "Adm_T_UserFamilyMember", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserLanguage_SkillId", + table: "Adm_T_UserLanguage", + column: "SkillId"); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserLanguage_SkillLevelId", + table: "Adm_T_UserLanguage", + column: "SkillLevelId"); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserLanguage_TenantId_UserId_SkillId", + table: "Adm_T_UserLanguage", + columns: new[] { "TenantId", "UserId", "SkillId" }, + unique: true, + filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( name: "IX_Adm_T_UserPatientProtocol_TenantId_UserId", table: "Adm_T_UserPatientProtocol", @@ -4219,6 +4372,18 @@ namespace Sozsoft.Platform.Migrations table: "Adm_T_UserSickLeave", columns: new[] { "TenantId", "UserId" }); + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserSkill_SkillId", + table: "Adm_T_UserSkill", + column: "SkillId"); + + migrationBuilder.CreateIndex( + name: "IX_Adm_T_UserSkill_TenantId_UserId_SkillId", + table: "Adm_T_UserSkill", + columns: new[] { "TenantId", "UserId", "SkillId" }, + unique: true, + filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( name: "IX_Adm_T_UserWorkExperience_SectorId", table: "Adm_T_UserWorkExperience", @@ -4258,6 +4423,25 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Hr_T_Announcement_TenantId_Title", + table: "Hr_T_Announcement", + columns: new[] { "TenantId", "Title" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_AnnouncementComment_AnnouncementId", + table: "Hr_T_AnnouncementComment", + column: "AnnouncementId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_AnnouncementLike_AnnouncementId_UserId", + table: "Hr_T_AnnouncementLike", + columns: new[] { "AnnouncementId", "UserId" }, + unique: true, + filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( name: "IX_Hr_T_Department_TenantId_BranchId_Name", table: "Hr_T_Department", @@ -4265,6 +4449,49 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Hr_T_Event_CategoryId", + table: "Hr_T_Event", + column: "CategoryId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_Event_TenantId_CategoryId_TypeId_Name", + table: "Hr_T_Event", + columns: new[] { "TenantId", "CategoryId", "TypeId", "Name" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_Event_TypeId", + table: "Hr_T_Event", + column: "TypeId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_EventCategory_TenantId_Name", + table: "Hr_T_EventCategory", + columns: new[] { "TenantId", "Name" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_EventComment_EventId", + table: "Hr_T_EventComment", + column: "EventId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_EventLike_EventId_UserId", + table: "Hr_T_EventLike", + columns: new[] { "EventId", "UserId" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_EventType_TenantId_Name", + table: "Hr_T_EventType", + columns: new[] { "TenantId", "Name" }, + unique: true, + filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( name: "IX_Hr_T_JobPosition_DepartmentId", table: "Hr_T_JobPosition", @@ -4277,6 +4504,16 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Hr_T_MessengerConversationMessage_ConversationId", + table: "Hr_T_MessengerConversationMessage", + column: "ConversationId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_MessengerConversationMessage_TenantId_ConversationId_SentAt", + table: "Hr_T_MessengerConversationMessage", + columns: new[] { "TenantId", "ConversationId", "SentAt" }); + migrationBuilder.CreateIndex( name: "IX_Hr_T_Skill_SkillTypeId", table: "Hr_T_Skill", @@ -4308,6 +4545,67 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SocialComment_SocialPostId", + table: "Hr_T_SocialComment", + column: "SocialPostId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SocialLike_SocialPostId_UserId", + table: "Hr_T_SocialLike", + columns: new[] { "SocialPostId", "UserId" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SocialLocation_SocialPostId", + table: "Hr_T_SocialLocation", + column: "SocialPostId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SocialMedia_SocialPostId", + table: "Hr_T_SocialMedia", + column: "SocialPostId", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SocialPollOption_SocialMediaId", + table: "Hr_T_SocialPollOption", + column: "SocialMediaId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_Survey_TenantId_Title", + table: "Hr_T_Survey", + columns: new[] { "TenantId", "Title" }, + unique: true, + filter: "[IsDeleted] = 0"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SurveyAnswer_QuestionId", + table: "Hr_T_SurveyAnswer", + column: "QuestionId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SurveyAnswer_ResponseId", + table: "Hr_T_SurveyAnswer", + column: "ResponseId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SurveyQuestion_SurveyId", + table: "Hr_T_SurveyQuestion", + column: "SurveyId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SurveyQuestionOption_QuestionId", + table: "Hr_T_SurveyQuestionOption", + column: "QuestionId"); + + migrationBuilder.CreateIndex( + name: "IX_Hr_T_SurveyResponse_SurveyId", + table: "Hr_T_SurveyResponse", + column: "SurveyId"); + migrationBuilder.CreateIndex( name: "IX_OpenIddictApplications_ClientId", table: "OpenIddictApplications", @@ -4599,6 +4897,13 @@ namespace Sozsoft.Platform.Migrations unique: true, filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( + name: "IX_Sas_H_TerminationReason_Code", + table: "Sas_H_TerminationReason", + column: "Code", + unique: true, + filter: "[IsDeleted] = 0"); + migrationBuilder.CreateIndex( name: "IX_Sas_T_Branch_Code", table: "Sas_T_Branch", @@ -4723,24 +5028,9 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "Adm_T_Agenda"); - migrationBuilder.DropTable( - name: "Adm_T_AnnouncementComment"); - - migrationBuilder.DropTable( - name: "Adm_T_AnnouncementLike"); - - migrationBuilder.DropTable( - name: "Adm_T_EventComment"); - - migrationBuilder.DropTable( - name: "Adm_T_EventLike"); - migrationBuilder.DropTable( name: "Adm_T_IpRestriction"); - migrationBuilder.DropTable( - name: "Adm_T_MessengerConversationMessage"); - migrationBuilder.DropTable( name: "Adm_T_Note"); @@ -4756,27 +5046,27 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "Adm_T_Sequence"); - migrationBuilder.DropTable( - name: "Adm_T_SocialComment"); - - migrationBuilder.DropTable( - name: "Adm_T_SocialLike"); - - migrationBuilder.DropTable( - name: "Adm_T_SocialLocation"); - - migrationBuilder.DropTable( - name: "Adm_T_SocialPollOption"); - - migrationBuilder.DropTable( - name: "Adm_T_SurveyAnswer"); - - migrationBuilder.DropTable( - name: "Adm_T_SurveyQuestionOption"); - migrationBuilder.DropTable( name: "Adm_T_Uom"); + migrationBuilder.DropTable( + name: "Adm_T_UserBenefit"); + + migrationBuilder.DropTable( + name: "Adm_T_UserCertificate"); + + migrationBuilder.DropTable( + name: "Adm_T_UserEducation"); + + migrationBuilder.DropTable( + name: "Adm_T_UserEmergencyContact"); + + migrationBuilder.DropTable( + name: "Adm_T_UserFamilyMember"); + + migrationBuilder.DropTable( + name: "Adm_T_UserLanguage"); + migrationBuilder.DropTable( name: "Adm_T_UserPatientProtocol"); @@ -4786,6 +5076,9 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "Adm_T_UserSickLeave"); + migrationBuilder.DropTable( + name: "Adm_T_UserSkill"); + migrationBuilder.DropTable( name: "Adm_T_UserWorkExperience"); @@ -4801,14 +5094,41 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "Adm_T_WorkHour"); + migrationBuilder.DropTable( + name: "Hr_T_AnnouncementComment"); + + migrationBuilder.DropTable( + name: "Hr_T_AnnouncementLike"); + + migrationBuilder.DropTable( + name: "Hr_T_EventComment"); + + migrationBuilder.DropTable( + name: "Hr_T_EventLike"); + migrationBuilder.DropTable( name: "Hr_T_JobPosition"); migrationBuilder.DropTable( - name: "Hr_T_Skill"); + name: "Hr_T_MessengerConversationMessage"); migrationBuilder.DropTable( - name: "Hr_T_SkillLevel"); + name: "Hr_T_SocialComment"); + + migrationBuilder.DropTable( + name: "Hr_T_SocialLike"); + + migrationBuilder.DropTable( + name: "Hr_T_SocialLocation"); + + migrationBuilder.DropTable( + name: "Hr_T_SocialPollOption"); + + migrationBuilder.DropTable( + name: "Hr_T_SurveyAnswer"); + + migrationBuilder.DropTable( + name: "Hr_T_SurveyQuestionOption"); migrationBuilder.DropTable( name: "OpenIddictScopes"); @@ -4906,6 +5226,9 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "Sas_H_SettingDefinition"); + migrationBuilder.DropTable( + name: "Sas_H_TerminationReason"); + migrationBuilder.DropTable( name: "Sas_T_Branch"); @@ -4936,44 +5259,47 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "AbpUsers"); - migrationBuilder.DropTable( - name: "Adm_T_Announcement"); - - migrationBuilder.DropTable( - name: "Adm_T_Event"); - - migrationBuilder.DropTable( - name: "Adm_T_MessengerConversation"); - migrationBuilder.DropTable( name: "Adm_T_NotificationRule"); migrationBuilder.DropTable( name: "Adm_T_ReportCategory"); - migrationBuilder.DropTable( - name: "Adm_T_SocialMedia"); - - migrationBuilder.DropTable( - name: "Adm_T_SurveyResponse"); - - migrationBuilder.DropTable( - name: "Adm_T_SurveyQuestion"); - migrationBuilder.DropTable( name: "Adm_T_UomCategory"); + migrationBuilder.DropTable( + name: "Hr_T_SkillLevel"); + + migrationBuilder.DropTable( + name: "Hr_T_Skill"); + migrationBuilder.DropTable( name: "Adm_T_Sector"); migrationBuilder.DropTable( name: "Adm_T_Videoroom"); + migrationBuilder.DropTable( + name: "Hr_T_Announcement"); + + migrationBuilder.DropTable( + name: "Hr_T_Event"); + migrationBuilder.DropTable( name: "Hr_T_Department"); migrationBuilder.DropTable( - name: "Hr_T_SkillType"); + name: "Hr_T_MessengerConversation"); + + migrationBuilder.DropTable( + name: "Hr_T_SocialMedia"); + + migrationBuilder.DropTable( + name: "Hr_T_SurveyResponse"); + + migrationBuilder.DropTable( + name: "Hr_T_SurveyQuestion"); migrationBuilder.DropTable( name: "OpenIddictAuthorizations"); @@ -5008,20 +5334,23 @@ namespace Sozsoft.Platform.Migrations migrationBuilder.DropTable( name: "AbpAuditLogs"); - migrationBuilder.DropTable( - name: "Adm_T_EventCategory"); - - migrationBuilder.DropTable( - name: "Adm_T_EventType"); - migrationBuilder.DropTable( name: "Adm_T_NotificationType"); migrationBuilder.DropTable( - name: "Adm_T_SocialPost"); + name: "Hr_T_SkillType"); migrationBuilder.DropTable( - name: "Adm_T_Survey"); + name: "Hr_T_EventCategory"); + + migrationBuilder.DropTable( + name: "Hr_T_EventType"); + + migrationBuilder.DropTable( + name: "Hr_T_SocialPost"); + + migrationBuilder.DropTable( + name: "Hr_T_Survey"); migrationBuilder.DropTable( name: "OpenIddictApplications"); diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index 7c99bb50..96b05347 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -927,7 +927,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Announcement", (string)null); + b.ToTable("Hr_T_Announcement", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.AnnouncementComment", b => @@ -989,7 +989,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("AnnouncementId"); - b.ToTable("Adm_T_AnnouncementComment", (string)null); + b.ToTable("Hr_T_AnnouncementComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.AnnouncementLike", b => @@ -1043,7 +1043,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_AnnouncementLike", (string)null); + b.ToTable("Hr_T_AnnouncementLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.BackgroundWorker", b => @@ -2724,7 +2724,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Event", (string)null); + b.ToTable("Hr_T_Event", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventCategory", b => @@ -2777,7 +2777,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventCategory", (string)null); + b.ToTable("Hr_T_EventCategory", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventComment", b => @@ -2838,7 +2838,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("EventId"); - b.ToTable("Adm_T_EventComment", (string)null); + b.ToTable("Hr_T_EventComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventLike", b => @@ -2892,7 +2892,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventLike", (string)null); + b.ToTable("Hr_T_EventLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.EventType", b => @@ -2945,7 +2945,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_EventType", (string)null); + b.ToTable("Hr_T_EventType", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.GlobalSearch", b => @@ -4202,7 +4202,7 @@ namespace Sozsoft.Platform.Migrations b.HasKey("Id"); - b.ToTable("Adm_T_MessengerConversation", (string)null); + b.ToTable("Hr_T_MessengerConversation", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.MessengerConversationMessage", b => @@ -4281,7 +4281,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("TenantId", "ConversationId", "SentAt"); - b.ToTable("Adm_T_MessengerConversationMessage", (string)null); + b.ToTable("Hr_T_MessengerConversationMessage", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Module", b => @@ -5375,7 +5375,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId"); - b.ToTable("Adm_T_SocialComment", (string)null); + b.ToTable("Hr_T_SocialComment", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialLike", b => @@ -5429,7 +5429,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_SocialLike", (string)null); + b.ToTable("Hr_T_SocialLike", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialLocation", b => @@ -5498,7 +5498,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId") .IsUnique(); - b.ToTable("Adm_T_SocialLocation", (string)null); + b.ToTable("Hr_T_SocialLocation", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialMedia", b => @@ -5570,7 +5570,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialPostId") .IsUnique(); - b.ToTable("Adm_T_SocialMedia", (string)null); + b.ToTable("Hr_T_SocialMedia", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialPollOption", b => @@ -5627,7 +5627,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SocialMediaId"); - b.ToTable("Adm_T_SocialPollOption", (string)null); + b.ToTable("Hr_T_SocialPollOption", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SocialPost", b => @@ -5693,7 +5693,7 @@ namespace Sozsoft.Platform.Migrations b.HasKey("Id"); - b.ToTable("Adm_T_SocialPost", (string)null); + b.ToTable("Hr_T_SocialPost", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Survey", b => @@ -5766,7 +5766,7 @@ namespace Sozsoft.Platform.Migrations .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Adm_T_Survey", (string)null); + b.ToTable("Hr_T_Survey", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyAnswer", b => @@ -5830,7 +5830,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("ResponseId"); - b.ToTable("Adm_T_SurveyAnswer", (string)null); + b.ToTable("Hr_T_SurveyAnswer", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyQuestion", b => @@ -5895,7 +5895,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SurveyId"); - b.ToTable("Adm_T_SurveyQuestion", (string)null); + b.ToTable("Hr_T_SurveyQuestion", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyQuestionOption", b => @@ -5952,7 +5952,7 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("QuestionId"); - b.ToTable("Adm_T_SurveyQuestionOption", (string)null); + b.ToTable("Hr_T_SurveyQuestionOption", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.SurveyResponse", b => @@ -6007,7 +6007,66 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("SurveyId"); - b.ToTable("Adm_T_SurveyResponse", (string)null); + b.ToTable("Hr_T_SurveyResponse", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.TerminationReason", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("Code") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Sas_H_TerminationReason", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Uom", b => @@ -6141,6 +6200,427 @@ namespace Sozsoft.Platform.Migrations b.ToTable("Adm_T_UomCategory", (string)null); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserBenefit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Amount") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BenefitType") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserBenefit", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserCertificate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CertificateId") + .HasColumnType("uniqueidentifier"); + + b.Property("CertificateNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IssueDate") + .HasColumnType("datetime2"); + + b.Property("IssuedBy") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserCertificate", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserEducation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Department") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EducationLevel") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsGraduated") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("SchoolName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserEducation", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserEmergencyContact", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PhoneNumber") + .IsRequired() + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + + b.Property("Relationship") + .IsRequired() + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserEmergencyContact", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserFamilyMember", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("EmploymentStatus") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("IdentityNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsBenefitCovered") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsInsuranceCovered") + .HasColumnType("bit"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Relationship") + .IsRequired() + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("Surname") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("Adm_T_UserFamilyMember", (string)null); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserLanguage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("SkillId") + .HasColumnType("uniqueidentifier"); + + b.Property("SkillLevelId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SkillId"); + + b.HasIndex("SkillLevelId"); + + b.HasIndex("TenantId", "UserId", "SkillId") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Adm_T_UserLanguage", (string)null); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserPatientProtocol", b => { b.Property("Id") @@ -6358,6 +6838,72 @@ namespace Sozsoft.Platform.Migrations b.ToTable("Adm_T_UserSickLeave", (string)null); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserSkill", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Note") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("SkillId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SkillId"); + + b.HasIndex("TenantId", "UserId", "SkillId") + .IsUnique() + .HasFilter("[IsDeleted] = 0"); + + b.ToTable("Adm_T_UserSkill", null, t => + { + t.HasCheckConstraint("CK_UserSkill_Level", "[Level] BETWEEN 1 AND 5"); + }); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserWorkExperience", b => { b.Property("Id") @@ -8025,6 +8571,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("BankName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + b.Property("BirthDate") .HasColumnType("datetime2"); @@ -8076,6 +8626,13 @@ namespace Sozsoft.Platform.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("ContractEndDate") + .HasColumnType("datetime2"); + + b.Property("ContractType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("CreationTime") .HasColumnType("datetime2") .HasColumnName("CreationTime"); @@ -8132,10 +8689,34 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("DisabilityRate") + .HasColumnType("int"); + + b.Property("DisabilityReport") + .HasColumnType("nvarchar(max)"); + + b.Property("DisabilityReportFileName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + b.Property("District") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("DrivingLicenseClass") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("DrivingLicenseExpiryDate") + .HasColumnType("datetime2"); + + b.Property("DrivingLicenseIssueDate") + .HasColumnType("datetime2"); + + b.Property("DrivingLicenseNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("EducationLevel") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); @@ -8152,6 +8733,10 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EmploymentType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("EntityVersion") .HasColumnType("int"); @@ -8255,9 +8840,9 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(16) .HasColumnType("nvarchar(16)"); - b.Property("GraduationSchool") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); + b.Property("GrossSalary") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); b.Property("HadSurgery") .HasColumnType("bit"); @@ -8291,6 +8876,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("Iban") + .HasMaxLength(34) + .HasColumnType("nvarchar(34)"); + b.Property("IdentityNumber") .HasMaxLength(15) .HasColumnType("nvarchar(15)"); @@ -8305,6 +8894,11 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("IsDisabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + b.Property("IsExternal") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -8392,6 +8986,13 @@ namespace Sozsoft.Platform.Migrations b.Property("MarriageDate") .HasColumnType("datetime2"); + b.Property("MilitaryPostponeEndDate") + .HasColumnType("datetime2"); + + b.Property("MilitaryStatus") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + b.Property("MotherHealthNote") .HasMaxLength(512) .HasColumnType("nvarchar(512)"); @@ -8439,11 +9040,22 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(512) .HasColumnType("nvarchar(512)"); + b.Property("PassportExpiryDate") + .HasColumnType("datetime2"); + + b.Property("PassportNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("PasswordHash") .HasMaxLength(256) .HasColumnType("nvarchar(256)") .HasColumnName("PasswordHash"); + b.Property("PdksCardNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + b.Property("PhoneNumber") .HasMaxLength(16) .HasColumnType("nvarchar(16)") @@ -8455,19 +9067,45 @@ namespace Sozsoft.Platform.Migrations .HasDefaultValue(false) .HasColumnName("PhoneNumberConfirmed"); + b.Property("ProbationEndDate") + .HasColumnType("datetime2"); + b.Property("Province") .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("RegistrationNo") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("RocketUsername") .HasColumnType("nvarchar(max)"); + b.Property("SalaryCurrency") + .HasMaxLength(8) + .HasColumnType("nvarchar(8)"); + + b.Property("SalaryType") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("SecondaryEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("SecondaryPhoneNumber") + .HasMaxLength(32) + .HasColumnType("nvarchar(32)"); + b.Property("SecurityStamp") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)") .HasColumnName("SecurityStamp"); + b.Property("SeniorityStartDate") + .HasColumnType("datetime2"); + b.Property("SequenceNo") .HasMaxLength(32) .HasColumnType("nvarchar(32)"); @@ -8476,6 +9114,9 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(32) .HasColumnType("nvarchar(32)"); + b.Property("ShiftId") + .HasColumnType("uniqueidentifier"); + b.Property("ShiftNightDoctorId") .HasColumnType("uniqueidentifier"); @@ -8521,6 +9162,13 @@ namespace Sozsoft.Platform.Migrations b.Property("TerminationDate") .HasColumnType("datetime2"); + b.Property("TerminationNote") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("TerminationReasonId") + .HasColumnType("uniqueidentifier"); + b.Property("TetanusVaccination") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); @@ -8560,6 +9208,13 @@ namespace Sozsoft.Platform.Migrations b.Property("WorkHour") .HasColumnType("nvarchar(max)"); + b.Property("WorkPermitEndDate") + .HasColumnType("datetime2"); + + b.Property("WorkPermitNo") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + b.HasKey("Id"); b.HasIndex("Email"); @@ -9913,6 +10568,29 @@ namespace Sozsoft.Platform.Migrations b.Navigation("UomCategory"); }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserLanguage", b => + { + b.HasOne("Sozsoft.Platform.Entities.Skill", null) + .WithMany() + .HasForeignKey("SkillId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("Sozsoft.Platform.Entities.SkillLevel", null) + .WithMany() + .HasForeignKey("SkillLevelId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("Sozsoft.Platform.Entities.UserSkill", b => + { + b.HasOne("Sozsoft.Platform.Entities.Skill", null) + .WithMany() + .HasForeignKey("SkillId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + }); + modelBuilder.Entity("Sozsoft.Platform.Entities.UserWorkExperience", b => { b.HasOne("Sozsoft.Platform.Entities.Sector", null) diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantIdentityDataSeeder.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantIdentityDataSeeder.cs index 4ab57366..f26aac00 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantIdentityDataSeeder.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Seeds/TenantIdentityDataSeeder.cs @@ -143,7 +143,6 @@ public class TenantIdentityDataSeeder : IdentityDataSeeder adminUser.SetNationality(PlatformConsts.AbpIdentity.User.AdminNationalityDefaultValue); adminUser.SetBloodType(PlatformConsts.AbpIdentity.User.AdminBloodTypeDefaultValue); adminUser.SetEducationLevel(PlatformConsts.AbpIdentity.User.AdminEducationLevelDefaultValue); - adminUser.SetGraduationSchool(PlatformConsts.AbpIdentity.User.AdminGraduationSchoolDefaultValue); adminUser.SetHomeAddress(PlatformConsts.AbpIdentity.User.AdminHomeAddressDefaultValue); adminUser.SetBirthDate(PlatformConsts.AbpIdentity.User.AdminBirthDateDefaultValue); adminUser.SetBirthPlace(PlatformConsts.AbpIdentity.User.AdminBirthPlaceDefaultValue); diff --git a/configs/seeds/host/data/Abp.Identity.Permissions.json b/configs/seeds/host/data/Abp.Identity.Permissions.json index c95d6254..9a476979 100644 --- a/configs/seeds/host/data/Abp.Identity.Permissions.json +++ b/configs/seeds/host/data/Abp.Identity.Permissions.json @@ -504,6 +504,66 @@ "MultiTenancySide": 2, "Modules": "Sas|Adm" }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason", + "ParentName": "App.Saas.Definitions", + "DisplayName": "App.Definitions.TerminationReason", + "Order": 9, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason.Create", + "ParentName": "App.Definitions.TerminationReason", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason.Update", + "ParentName": "App.Definitions.TerminationReason", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason.Delete", + "ParentName": "App.Definitions.TerminationReason", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason.Export", + "ParentName": "App.Definitions.TerminationReason", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Saas", + "Name": "App.Definitions.TerminationReason.Import", + "ParentName": "App.Definitions.TerminationReason", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 2, + "Modules": "Sas|Adm" + }, { "GroupName": "App.Saas", "Name": "App.Public", @@ -3654,1242 +3714,12 @@ "MultiTenancySide": 2, "Modules": "Sas|Adm" }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet", - "ParentName": null, - "DisplayName": "App.Intranet", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Announcement", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Create", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Update", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Delete", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Export", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Import", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Widget", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Platform.Widget", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.Note", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "Note", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Intranet.Announcement.AnnouncementLike", - "Order": 8, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike.Create", - "ParentName": "App.Intranet.Announcement.AnnouncementLike", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike.Update", - "ParentName": "App.Intranet.Announcement.AnnouncementLike", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike.Delete", - "ParentName": "App.Intranet.Announcement.AnnouncementLike", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike.Export", - "ParentName": "App.Intranet.Announcement.AnnouncementLike", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementLike.Import", - "ParentName": "App.Intranet.Announcement.AnnouncementLike", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment", - "ParentName": "App.Intranet.Announcement", - "DisplayName": "App.Intranet.Announcement.AnnouncementComment", - "Order": 9, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment.Create", - "ParentName": "App.Intranet.Announcement.AnnouncementComment", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment.Update", - "ParentName": "App.Intranet.Announcement.AnnouncementComment", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment.Delete", - "ParentName": "App.Intranet.Announcement.AnnouncementComment", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment.Export", - "ParentName": "App.Intranet.Announcement.AnnouncementComment", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Announcement.AnnouncementComment.Import", - "ParentName": "App.Intranet.Announcement.AnnouncementComment", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Survey", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Create", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Update", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Delete", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Export", - "ParentName": "App.Intranet.Survey", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Import", - "ParentName": "App.Intranet.Survey", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Note", - "ParentName": "App.Intranet.Survey", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Survey.Widget", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Platform.Widget", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Intranet.SurveyQuestion", - "Order": 8, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Create", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Update", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Delete", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Export", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Import", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestion.Note", - "ParentName": "App.Intranet.SurveyQuestion", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Intranet.SurveyQuestionOption", - "Order": 9, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption.Create", - "ParentName": "App.Intranet.SurveyQuestionOption", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption.Update", - "ParentName": "App.Intranet.SurveyQuestionOption", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption.Delete", - "ParentName": "App.Intranet.SurveyQuestionOption", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption.Export", - "ParentName": "App.Intranet.SurveyQuestionOption", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyQuestionOption.Import", - "ParentName": "App.Intranet.SurveyQuestionOption", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Intranet.SurveyResponse", - "Order": 10, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Create", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Update", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Delete", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Export", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Import", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyResponse.Note", - "ParentName": "App.Intranet.SurveyResponse", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer", - "ParentName": "App.Intranet.Survey", - "DisplayName": "App.Intranet.SurveyAnswer", - "Order": 11, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer.Create", - "ParentName": "App.Intranet.SurveyAnswer", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer.Update", - "ParentName": "App.Intranet.SurveyAnswer", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer.Delete", - "ParentName": "App.Intranet.SurveyAnswer", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer.Export", - "ParentName": "App.Intranet.SurveyAnswer", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SurveyAnswer.Import", - "ParentName": "App.Intranet.SurveyAnswer", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.SocialPost", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Create", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Update", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Delete", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Export", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Import", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Note", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPost.Widget", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Platform.Widget", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Intranet.SocialMedia", - "Order": 8, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia.Create", - "ParentName": "App.Intranet.SocialMedia", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia.Update", - "ParentName": "App.Intranet.SocialMedia", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia.Delete", - "ParentName": "App.Intranet.SocialMedia", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia.Export", - "ParentName": "App.Intranet.SocialMedia", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialMedia.Import", - "ParentName": "App.Intranet.SocialMedia", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Intranet.SocialPollOption", - "Order": 9, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption.Create", - "ParentName": "App.Intranet.SocialPollOption", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption.Update", - "ParentName": "App.Intranet.SocialPollOption", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption.Delete", - "ParentName": "App.Intranet.SocialPollOption", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption.Export", - "ParentName": "App.Intranet.SocialPollOption", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialPollOption.Import", - "ParentName": "App.Intranet.SocialPollOption", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Intranet.SocialComment", - "Order": 10, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment.Create", - "ParentName": "App.Intranet.SocialComment", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment.Update", - "ParentName": "App.Intranet.SocialComment", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment.Delete", - "ParentName": "App.Intranet.SocialComment", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment.Export", - "ParentName": "App.Intranet.SocialComment", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialComment.Import", - "ParentName": "App.Intranet.SocialComment", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike", - "ParentName": "App.Intranet.SocialPost", - "DisplayName": "App.Intranet.SocialLike", - "Order": 11, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike.Create", - "ParentName": "App.Intranet.SocialLike", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike.Update", - "ParentName": "App.Intranet.SocialLike", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike.Delete", - "ParentName": "App.Intranet.SocialLike", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike.Export", - "ParentName": "App.Intranet.SocialLike", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.SocialLike.Import", - "ParentName": "App.Intranet.SocialLike", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Events.EventType", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType.Create", - "ParentName": "App.Intranet.Events.EventType", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType.Update", - "ParentName": "App.Intranet.Events.EventType", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType.Delete", - "ParentName": "App.Intranet.Events.EventType", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType.Export", - "ParentName": "App.Intranet.Events.EventType", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventType.Import", - "ParentName": "App.Intranet.Events.EventType", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Events.EventCategory", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory.Create", - "ParentName": "App.Intranet.Events.EventCategory", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory.Update", - "ParentName": "App.Intranet.Events.EventCategory", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory.Delete", - "ParentName": "App.Intranet.Events.EventCategory", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory.Export", - "ParentName": "App.Intranet.Events.EventCategory", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventCategory.Import", - "ParentName": "App.Intranet.Events.EventCategory", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Events.Event", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Create", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Update", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Delete", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Export", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Import", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Note", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.Event.Widget", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Platform.Widget", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Intranet.Events.EventLike", - "Order": 8, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike.Create", - "ParentName": "App.Intranet.Events.EventLike", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike.Update", - "ParentName": "App.Intranet.Events.EventLike", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike.Delete", - "ParentName": "App.Intranet.Events.EventLike", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike.Export", - "ParentName": "App.Intranet.Events.EventLike", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventLike.Import", - "ParentName": "App.Intranet.Events.EventLike", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment", - "ParentName": "App.Intranet.Events.Event", - "DisplayName": "App.Intranet.Events.EventComment", - "Order": 9, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment.Create", - "ParentName": "App.Intranet.Events.EventComment", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment.Update", - "ParentName": "App.Intranet.Events.EventComment", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment.Delete", - "ParentName": "App.Intranet.Events.EventComment", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment.Export", - "ParentName": "App.Intranet.Events.EventComment", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Events.EventComment.Import", - "ParentName": "App.Intranet.Events.EventComment", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Document", - "ParentName": "App.Intranet", - "DisplayName": "App.Intranet.Document", - "Order": 7, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Document.Create", - "ParentName": "App.Intranet.Document", - "DisplayName": "App.Platform.Upload", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Document.Update", - "ParentName": "App.Intranet.Document", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Administration", - "Name": "App.Intranet.Document.Delete", - "ParentName": "App.Intranet.Document", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 3, - "Modules": "Sas|Adm" - }, { "GroupName": "App.Administration", "Name": "App.Platform.Restrictions", "ParentName": null, "DisplayName": "App.Platform.Restrictions", - "Order": 8, + "Order": 7, "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Sas|Adm" @@ -5019,7 +3849,7 @@ "Name": "App.IdentityManagement", "ParentName": null, "DisplayName": "App.IdentityManagement", - "Order": 9, + "Order": 8, "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Sas|Adm" @@ -5499,7 +4329,7 @@ "Name": "App.Reports.Management", "ParentName": null, "DisplayName": "App.Reports.Management", - "Order": 10, + "Order": 9, "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Sas|Adm" @@ -5629,7 +4459,7 @@ "Name": "App.Videoroom", "ParentName": null, "DisplayName": "App.Videoroom", - "Order": 11, + "Order": 10, "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Sas|Adm" @@ -5659,7 +4489,7 @@ "Name": "App.ForumManagement.Publish", "ParentName": null, "DisplayName": "App.ForumManagement.Publish", - "Order": 12, + "Order": 11, "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Sas|Adm" @@ -8323,6 +7153,1236 @@ "IsEnabled": true, "MultiTenancySide": 3, "Modules": "Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet", + "ParentName": null, + "DisplayName": "App.Hr.Intranet", + "Order": 15, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Announcement", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Create", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Update", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Delete", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Export", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Import", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Widget", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Platform.Widget", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.Note", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "Note", + "Order": 7, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "Order": 8, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike.Create", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike.Update", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike.Delete", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike.Export", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementLike.Import", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementLike", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment", + "ParentName": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "Order": 9, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment.Create", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment.Update", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment.Delete", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment.Export", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Announcement.AnnouncementComment.Import", + "ParentName": "App.Hr.Intranet.Announcement.AnnouncementComment", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Survey", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Create", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Update", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Delete", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Export", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Import", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Note", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Survey.Widget", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Platform.Widget", + "Order": 7, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Hr.Intranet.SurveyQuestion", + "Order": 8, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Create", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Update", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Delete", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Export", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Import", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestion.Note", + "ParentName": "App.Hr.Intranet.SurveyQuestion", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Hr.Intranet.SurveyQuestionOption", + "Order": 9, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption.Create", + "ParentName": "App.Hr.Intranet.SurveyQuestionOption", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption.Update", + "ParentName": "App.Hr.Intranet.SurveyQuestionOption", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption.Delete", + "ParentName": "App.Hr.Intranet.SurveyQuestionOption", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption.Export", + "ParentName": "App.Hr.Intranet.SurveyQuestionOption", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyQuestionOption.Import", + "ParentName": "App.Hr.Intranet.SurveyQuestionOption", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Hr.Intranet.SurveyResponse", + "Order": 10, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Create", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Update", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Delete", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Export", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Import", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyResponse.Note", + "ParentName": "App.Hr.Intranet.SurveyResponse", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer", + "ParentName": "App.Hr.Intranet.Survey", + "DisplayName": "App.Hr.Intranet.SurveyAnswer", + "Order": 11, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer.Create", + "ParentName": "App.Hr.Intranet.SurveyAnswer", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer.Update", + "ParentName": "App.Hr.Intranet.SurveyAnswer", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer.Delete", + "ParentName": "App.Hr.Intranet.SurveyAnswer", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer.Export", + "ParentName": "App.Hr.Intranet.SurveyAnswer", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SurveyAnswer.Import", + "ParentName": "App.Hr.Intranet.SurveyAnswer", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.SocialPost", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Create", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Update", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Delete", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Export", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Import", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Note", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPost.Widget", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Platform.Widget", + "Order": 7, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Hr.Intranet.SocialMedia", + "Order": 8, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia.Create", + "ParentName": "App.Hr.Intranet.SocialMedia", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia.Update", + "ParentName": "App.Hr.Intranet.SocialMedia", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia.Delete", + "ParentName": "App.Hr.Intranet.SocialMedia", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia.Export", + "ParentName": "App.Hr.Intranet.SocialMedia", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialMedia.Import", + "ParentName": "App.Hr.Intranet.SocialMedia", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Hr.Intranet.SocialPollOption", + "Order": 9, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption.Create", + "ParentName": "App.Hr.Intranet.SocialPollOption", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption.Update", + "ParentName": "App.Hr.Intranet.SocialPollOption", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption.Delete", + "ParentName": "App.Hr.Intranet.SocialPollOption", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption.Export", + "ParentName": "App.Hr.Intranet.SocialPollOption", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialPollOption.Import", + "ParentName": "App.Hr.Intranet.SocialPollOption", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Hr.Intranet.SocialComment", + "Order": 10, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment.Create", + "ParentName": "App.Hr.Intranet.SocialComment", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment.Update", + "ParentName": "App.Hr.Intranet.SocialComment", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment.Delete", + "ParentName": "App.Hr.Intranet.SocialComment", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment.Export", + "ParentName": "App.Hr.Intranet.SocialComment", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialComment.Import", + "ParentName": "App.Hr.Intranet.SocialComment", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike", + "ParentName": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Hr.Intranet.SocialLike", + "Order": 11, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike.Create", + "ParentName": "App.Hr.Intranet.SocialLike", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike.Update", + "ParentName": "App.Hr.Intranet.SocialLike", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike.Delete", + "ParentName": "App.Hr.Intranet.SocialLike", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike.Export", + "ParentName": "App.Hr.Intranet.SocialLike", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.SocialLike.Import", + "ParentName": "App.Hr.Intranet.SocialLike", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Events.EventType", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType.Create", + "ParentName": "App.Hr.Intranet.Events.EventType", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType.Update", + "ParentName": "App.Hr.Intranet.Events.EventType", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType.Delete", + "ParentName": "App.Hr.Intranet.Events.EventType", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType.Export", + "ParentName": "App.Hr.Intranet.Events.EventType", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventType.Import", + "ParentName": "App.Hr.Intranet.Events.EventType", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Events.EventCategory", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory.Create", + "ParentName": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory.Update", + "ParentName": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory.Delete", + "ParentName": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory.Export", + "ParentName": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventCategory.Import", + "ParentName": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Events.Event", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Create", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Update", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Delete", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Export", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Import", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Note", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.Event.Widget", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Platform.Widget", + "Order": 7, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Hr.Intranet.Events.EventLike", + "Order": 8, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike.Create", + "ParentName": "App.Hr.Intranet.Events.EventLike", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike.Update", + "ParentName": "App.Hr.Intranet.Events.EventLike", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike.Delete", + "ParentName": "App.Hr.Intranet.Events.EventLike", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike.Export", + "ParentName": "App.Hr.Intranet.Events.EventLike", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventLike.Import", + "ParentName": "App.Hr.Intranet.Events.EventLike", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment", + "ParentName": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Hr.Intranet.Events.EventComment", + "Order": 9, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment.Create", + "ParentName": "App.Hr.Intranet.Events.EventComment", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment.Update", + "ParentName": "App.Hr.Intranet.Events.EventComment", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment.Delete", + "ParentName": "App.Hr.Intranet.Events.EventComment", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment.Export", + "ParentName": "App.Hr.Intranet.Events.EventComment", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Events.EventComment.Import", + "ParentName": "App.Hr.Intranet.Events.EventComment", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Document", + "ParentName": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet.Document", + "Order": 7, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Document.Create", + "ParentName": "App.Hr.Intranet.Document", + "DisplayName": "App.Platform.Upload", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Document.Update", + "ParentName": "App.Hr.Intranet.Document", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" + }, + { + "GroupName": "App.Hr", + "Name": "App.Hr.Intranet.Document.Delete", + "ParentName": "App.Hr.Intranet.Document", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Hr" } ] } diff --git a/configs/seeds/host/data/App.BackgroundWorkers.RecurringJobs.json b/configs/seeds/host/data/App.BackgroundWorkers.RecurringJobs.json index 88f335c2..6d360fd6 100644 --- a/configs/seeds/host/data/App.BackgroundWorkers.RecurringJobs.json +++ b/configs/seeds/host/data/App.BackgroundWorkers.RecurringJobs.json @@ -42,6 +42,16 @@ "BeforeSp": "Sas_H_ListFormFieldsDictionaryJson_SaveDbTableColumns", "AfterSp": null, "IsActive": true + }, + { + "Id": "cfb3c495-75b3-57cf-8b77-1ef74be1767e", + "Name": "Probation Reminder Worker", + "Cron": "0 8 * * *", + "WorkerType": 6, + "Scope": 3, + "BeforeSp": null, + "AfterSp": null, + "IsActive": true } ] } diff --git a/configs/seeds/host/data/App.Definitions.TerminationReason.json b/configs/seeds/host/data/App.Definitions.TerminationReason.json new file mode 100644 index 00000000..96804340 --- /dev/null +++ b/configs/seeds/host/data/App.Definitions.TerminationReason.json @@ -0,0 +1,295 @@ +{ + "ListFormCode": "App.Definitions.TerminationReason", + "KeyFieldName": "Id", + "GeneratedAt": "2026-10-03T00:00:00Z", + "Rows": [ + { + "Id": "94addf13-e695-587d-a25d-02381e6851d5", + "Code": "01", + "Name": "Deneme süreli iş sözleşmesinin işverence feshi", + "IsActive": true + }, + { + "Id": "c0af30f8-98bf-5453-8866-693b657fac35", + "Code": "02", + "Name": "Deneme süreli iş sözleşmesinin işçi tarafından feshi", + "IsActive": true + }, + { + "Id": "1ceac52c-1276-520f-a3cd-60f40df601a3", + "Code": "03", + "Name": "Belirsiz süreli iş sözleşmesinin işçi tarafından feshi (istifa)", + "IsActive": true + }, + { + "Id": "9a9859c7-ff8f-52a2-8d3d-377f006a8b70", + "Code": "04", + "Name": "Belirsiz süreli iş sözleşmesinin işveren tarafından haklı sebep bildirilmeden feshi", + "IsActive": true + }, + { + "Id": "76d5dead-60de-5620-a75d-9a64f11e0804", + "Code": "05", + "Name": "Belirli süreli iş sözleşmesinin sona ermesi", + "IsActive": true + }, + { + "Id": "25dea72b-9b19-59b9-948e-ebb970dfbcd5", + "Code": "08", + "Name": "Emeklilik (yaşlılık) veya toptan ödeme nedeniyle", + "IsActive": true + }, + { + "Id": "76bf0e54-5aed-566c-9422-25bb00f9f545", + "Code": "09", + "Name": "Malulen emeklilik nedeniyle", + "IsActive": true + }, + { + "Id": "8b8f2134-99ce-5754-b73f-b642f2d299bc", + "Code": "10", + "Name": "Ölüm", + "IsActive": true + }, + { + "Id": "3cbf570d-cdbb-5090-8020-3abbb20b957c", + "Code": "11", + "Name": "İş kazası sonucu ölüm", + "IsActive": true + }, + { + "Id": "a7857aa4-3ec4-5147-b862-3b2294214910", + "Code": "12", + "Name": "Askerlik", + "IsActive": true + }, + { + "Id": "89a00623-4c85-5c9c-9988-6ae1d6ef26e4", + "Code": "13", + "Name": "Kadın işçinin evlenmesi", + "IsActive": true + }, + { + "Id": "859f6c31-a1a0-50cd-8362-7ee0f6a70f09", + "Code": "14", + "Name": "Emeklilik için yaş dışında diğer şartların tamamlanması", + "IsActive": true + }, + { + "Id": "92658903-ce30-50eb-ad94-b7e57c872720", + "Code": "15", + "Name": "Toplu işçi çıkarma", + "IsActive": true + }, + { + "Id": "50dae346-0f4a-54e6-b713-5ec201568454", + "Code": "16", + "Name": "Sözleşme sona ermeden sigortalının aynı işverene ait diğer işyerine nakli", + "IsActive": true + }, + { + "Id": "5a97685a-942c-5717-8b40-f032a15d2764", + "Code": "17", + "Name": "İşyerinin kapanması", + "IsActive": true + }, + { + "Id": "4246212d-3a10-5a0b-97ac-91891de13212", + "Code": "18", + "Name": "İşin sona ermesi", + "IsActive": true + }, + { + "Id": "dc375100-d81d-549f-8db7-6cfbf00a589a", + "Code": "19", + "Name": "Mevsim bitimi (iş akdi askıya alınan)", + "IsActive": true + }, + { + "Id": "1a574af7-d557-513d-90a7-4aca193bd338", + "Code": "20", + "Name": "Kampanya bitimi (iş akdi askıya alınan)", + "IsActive": true + }, + { + "Id": "a7e4cdd4-4bac-5890-b2a2-c9a211404a3d", + "Code": "21", + "Name": "Statü değişikliği", + "IsActive": true + }, + { + "Id": "799ad77d-2297-56e6-8e51-9d7c14af2d6f", + "Code": "22", + "Name": "Diğer nedenler", + "IsActive": true + }, + { + "Id": "01b97a86-0d5f-5b3b-8f05-a7c482894958", + "Code": "23", + "Name": "İşçi tarafından zorunlu nedenle fesih", + "IsActive": true + }, + { + "Id": "6f9c70f6-f46f-5b27-9938-a6bcb5d79b6e", + "Code": "24", + "Name": "İşçi tarafından sağlık nedeniyle fesih", + "IsActive": true + }, + { + "Id": "d539b2a8-9107-5e72-abd3-3fa7222f4a0a", + "Code": "25", + "Name": "İşçi tarafından işverenin ahlak ve iyi niyet kurallarına aykırı davranışı nedeniyle fesih", + "IsActive": true + }, + { + "Id": "e097ba43-d4ef-548d-8e39-9bd38d4ad567", + "Code": "26", + "Name": "Disiplin kurulu kararı ile fesih", + "IsActive": true + }, + { + "Id": "80ef6852-a852-556e-ad21-cf2b82f50835", + "Code": "27", + "Name": "İşveren tarafından zorunlu nedenlerle ve tutukluluk nedeniyle fesih", + "IsActive": true + }, + { + "Id": "6adacf93-45da-5879-a128-bad75e43eae3", + "Code": "28", + "Name": "İşveren tarafından sağlık nedeniyle fesih", + "IsActive": true + }, + { + "Id": "9e9ebc6e-ec77-5740-9d11-367165c5c09f", + "Code": "29", + "Name": "İşveren tarafından işçinin ahlak ve iyi niyet kurallarına aykırı davranışı nedeniyle fesih", + "IsActive": true + }, + { + "Id": "e8e8f5ae-1a94-5d90-9d7b-ccb0e97ae32c", + "Code": "30", + "Name": "Vize süresinin bitimi", + "IsActive": true + }, + { + "Id": "92f268a8-e4ea-5157-8071-986211594651", + "Code": "31", + "Name": "Borçlar Kanunu, Sendikalar Kanunu, Grev ve Lokavt Kanunu kapsamında kendi istek ve kusuru dışında fesih", + "IsActive": true + }, + { + "Id": "dd6e61c6-6d81-5b37-bc39-8a6c37ecd107", + "Code": "32", + "Name": "4046 sayılı Kanunun 21. maddesine göre özelleştirme nedeniyle fesih", + "IsActive": true + }, + { + "Id": "03eb27f5-0551-599e-9d59-cdb7c45a65cc", + "Code": "33", + "Name": "Gazeteci tarafından sözleşmenin feshi", + "IsActive": true + }, + { + "Id": "9fdf06ae-743d-5c8c-818e-f7a1fe04db6a", + "Code": "34", + "Name": "İşyerinin devri, işin veya işyerinin niteliğinin değişmesi nedeniyle fesih", + "IsActive": true + }, + { + "Id": "fefaa557-64ec-5ef6-a726-ab45fa1e7d86", + "Code": "35", + "Name": "6495 S.K. nedeniyle Devlet Memurluğuna geçiş", + "IsActive": true + }, + { + "Id": "f1e81dec-cd1d-5d0d-882e-06bf0af78d91", + "Code": "36", + "Name": "KHK ile işyerinin kapatılması", + "IsActive": true + }, + { + "Id": "b77e868b-e6a1-5ca9-a355-4403b0c150fb", + "Code": "37", + "Name": "KHK ile kamu görevinden çıkarma", + "IsActive": true + }, + { + "Id": "68b11493-da9e-560f-b26c-24d09d219c00", + "Code": "38", + "Name": "Doğum nedeniyle işten ayrılma", + "IsActive": true + }, + { + "Id": "03349245-0b7b-5ecc-8dfa-47d1829cc1af", + "Code": "39", + "Name": "696 KHK ile kamu işçiliğine geçiş", + "IsActive": true + }, + { + "Id": "998d2f21-5167-58fe-a79e-f5b204d5a777", + "Code": "40", + "Name": "696 KHK ile kamu işçiliğine geçilmemesi sebebiyle çıkış", + "IsActive": true + }, + { + "Id": "e8a0b3fc-f0aa-5fc8-9ab8-c2bebcd3734d", + "Code": "41", + "Name": "Resmi ilan ve reklamların yayınlanmasına ilişkin yönetmeliğin 9. maddesi kapsamında çıkış", + "IsActive": true + }, + { + "Id": "55fdcfd6-cdb5-5cd2-9cc5-31369ef0dd0c", + "Code": "42", + "Name": "4857 S.K. 25-II-a: Sözleşme yapıldığı sırada gerekli niteliklerin bulunmadığı konusunda işvereni yanıltma", + "IsActive": true + }, + { + "Id": "9dcacb0c-88e4-5e35-88f9-7f7ae39d4db0", + "Code": "43", + "Name": "4857 S.K. 25-II-b: İşveren veya aile üyelerinin şeref ve namusuna dokunacak söz ve davranış", + "IsActive": true + }, + { + "Id": "2e3bbf98-9cb0-5e3c-b528-a718bf3b16ec", + "Code": "44", + "Name": "4857 S.K. 25-II-c: İşverenin başka bir işçisine cinsel tacizde bulunma", + "IsActive": true + }, + { + "Id": "ec2c4201-fa8d-52c1-a5b1-168c3caccc54", + "Code": "45", + "Name": "4857 S.K. 25-II-d: İşverene, aile üyelerine veya başka bir işçiye sataşma, işyerine sarhoş ya da uyuşturucu kullanarak gelme", + "IsActive": true + }, + { + "Id": "2ec0ea60-9bdf-53c9-b099-4521825cf38d", + "Code": "46", + "Name": "4857 S.K. 25-II-e: Doğruluk ve bağlılığa uymayan davranışlar (hırsızlık, sır verme vb.)", + "IsActive": true + }, + { + "Id": "74a53d9d-4584-593b-941e-3f97fbc3e11f", + "Code": "47", + "Name": "4857 S.K. 25-II-f: İşyerinde yedi günden fazla hapisle cezalandırılan ve ertelenmeyen suç işleme", + "IsActive": true + }, + { + "Id": "38f45641-e62a-5c42-a9f2-f137c58ea41f", + "Code": "48", + "Name": "4857 S.K. 25-II-g: İzinsiz veya haklı bir nedene dayanmaksızın devamsızlık", + "IsActive": true + }, + { + "Id": "ab33c7d3-9dcc-524c-b018-591df27a81ae", + "Code": "49", + "Name": "4857 S.K. 25-II-h: Yapmakla ödevli olduğu görevleri hatırlatıldığı hâlde yapmamakta ısrar", + "IsActive": true + }, + { + "Id": "5d95eebf-9951-5046-9771-38a5da5c6dff", + "Code": "50", + "Name": "4857 S.K. 25-II-ı: İş güvenliğini tehlikeye düşürme veya işyerine zarar verme", + "IsActive": true + } + ] +} diff --git a/configs/seeds/host/data/App.DeveloperKit.IntranetWidgets.json b/configs/seeds/host/data/App.DeveloperKit.IntranetWidgets.json index 6534eb53..a6e0b5e3 100644 --- a/configs/seeds/host/data/App.DeveloperKit.IntranetWidgets.json +++ b/configs/seeds/host/data/App.DeveloperKit.IntranetWidgets.json @@ -20,7 +20,7 @@ "Id": "f0c19fb9-6817-5401-99db-64f77e970b1e", "Code": "documents", "Name": "Documents", - "LabelKey": "App.Intranet.Documents", + "LabelKey": "App.Hr.Intranet.Documents", "SourceType": 0, "ComponentName": "", "PermissionName": "App.Files.Widget", @@ -36,7 +36,7 @@ "LabelKey": "App.DashboardWidget.Surveys", "SourceType": 0, "ComponentName": "", - "PermissionName": "App.Intranet.Survey.Widget", + "PermissionName": "App.Hr.Intranet.Survey.Widget", "Column": 0, "Order": 30, "Props": "", @@ -49,7 +49,7 @@ "LabelKey": "App.DashboardWidget.SocialWall", "SourceType": 0, "ComponentName": "", - "PermissionName": "App.Intranet.SocialPost.Widget", + "PermissionName": "App.Hr.Intranet.SocialPost.Widget", "Column": 1, "Order": 40, "Props": "", @@ -59,10 +59,10 @@ "Id": "6ea6a7ca-a4ec-58c9-b049-dc9fccca9256", "Code": "announcements", "Name": "Announcements", - "LabelKey": "App.Intranet.Announcement", + "LabelKey": "App.Hr.Intranet.Announcement", "SourceType": 0, "ComponentName": "", - "PermissionName": "App.Intranet.Announcement.Widget", + "PermissionName": "App.Hr.Intranet.Announcement.Widget", "Column": 2, "Order": 50, "Props": "", @@ -75,7 +75,7 @@ "LabelKey": "App.DashboardWidget.Events", "SourceType": 0, "ComponentName": "", - "PermissionName": "App.Intranet.Events.Event.Widget", + "PermissionName": "App.Hr.Intranet.Events.Event.Widget", "Column": 2, "Order": 60, "Props": "", diff --git a/configs/seeds/host/data/App.Intranet.Announcement.json b/configs/seeds/host/data/App.Hr.Intranet.Announcement.json similarity index 98% rename from configs/seeds/host/data/App.Intranet.Announcement.json rename to configs/seeds/host/data/App.Hr.Intranet.Announcement.json index f48be174..7c21f267 100644 --- a/configs/seeds/host/data/App.Intranet.Announcement.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Announcement.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Announcement", + "ListFormCode": "App.Hr.Intranet.Announcement", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 0, diff --git a/configs/seeds/host/data/App.Intranet.Events.Event.json b/configs/seeds/host/data/App.Hr.Intranet.Events.Event.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.Events.Event.json rename to configs/seeds/host/data/App.Hr.Intranet.Events.Event.json index b3517125..9d10eb55 100644 --- a/configs/seeds/host/data/App.Intranet.Events.Event.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Events.Event.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Events.Event", + "ListFormCode": "App.Hr.Intranet.Events.Event", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 20, diff --git a/configs/seeds/host/data/App.Intranet.Events.EventCategory.json b/configs/seeds/host/data/App.Hr.Intranet.Events.EventCategory.json similarity index 90% rename from configs/seeds/host/data/App.Intranet.Events.EventCategory.json rename to configs/seeds/host/data/App.Hr.Intranet.Events.EventCategory.json index b48d721e..74ee7f74 100644 --- a/configs/seeds/host/data/App.Intranet.Events.EventCategory.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Events.EventCategory.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Events.EventCategory", + "ListFormCode": "App.Hr.Intranet.Events.EventCategory", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 10, diff --git a/configs/seeds/host/data/App.Intranet.Events.EventComment.json b/configs/seeds/host/data/App.Hr.Intranet.Events.EventComment.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.Events.EventComment.json rename to configs/seeds/host/data/App.Hr.Intranet.Events.EventComment.json index 9fb1bd8b..270a339e 100644 --- a/configs/seeds/host/data/App.Intranet.Events.EventComment.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Events.EventComment.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Events.EventComment", + "ListFormCode": "App.Hr.Intranet.Events.EventComment", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 30, diff --git a/configs/seeds/host/data/App.Intranet.Events.EventType.json b/configs/seeds/host/data/App.Hr.Intranet.Events.EventType.json similarity index 98% rename from configs/seeds/host/data/App.Intranet.Events.EventType.json rename to configs/seeds/host/data/App.Hr.Intranet.Events.EventType.json index d93685b7..b649e809 100644 --- a/configs/seeds/host/data/App.Intranet.Events.EventType.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Events.EventType.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Events.EventType", + "ListFormCode": "App.Hr.Intranet.Events.EventType", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 10, diff --git a/configs/seeds/host/data/App.Intranet.SocialComment.json b/configs/seeds/host/data/App.Hr.Intranet.SocialComment.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.SocialComment.json rename to configs/seeds/host/data/App.Hr.Intranet.SocialComment.json index 455cebbd..ec47cbc6 100644 --- a/configs/seeds/host/data/App.Intranet.SocialComment.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SocialComment.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SocialComment", + "ListFormCode": "App.Hr.Intranet.SocialComment", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 20, diff --git a/configs/seeds/host/data/App.Intranet.SocialLike.json b/configs/seeds/host/data/App.Hr.Intranet.SocialLike.json similarity index 90% rename from configs/seeds/host/data/App.Intranet.SocialLike.json rename to configs/seeds/host/data/App.Hr.Intranet.SocialLike.json index c1c73537..ba66cbe8 100644 --- a/configs/seeds/host/data/App.Intranet.SocialLike.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SocialLike.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SocialLike", + "ListFormCode": "App.Hr.Intranet.SocialLike", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 20, diff --git a/configs/seeds/host/data/App.Intranet.SocialMedia.json b/configs/seeds/host/data/App.Hr.Intranet.SocialMedia.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.SocialMedia.json rename to configs/seeds/host/data/App.Hr.Intranet.SocialMedia.json index 9dc8788d..019e4934 100644 --- a/configs/seeds/host/data/App.Intranet.SocialMedia.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SocialMedia.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SocialMedia", + "ListFormCode": "App.Hr.Intranet.SocialMedia", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 20, diff --git a/configs/seeds/host/data/App.Intranet.SocialPollOption.json b/configs/seeds/host/data/App.Hr.Intranet.SocialPollOption.json similarity index 93% rename from configs/seeds/host/data/App.Intranet.SocialPollOption.json rename to configs/seeds/host/data/App.Hr.Intranet.SocialPollOption.json index e37d00bf..c2d910d4 100644 --- a/configs/seeds/host/data/App.Intranet.SocialPollOption.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SocialPollOption.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SocialPollOption", + "ListFormCode": "App.Hr.Intranet.SocialPollOption", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 30, diff --git a/configs/seeds/host/data/App.Intranet.SocialPost.json b/configs/seeds/host/data/App.Hr.Intranet.SocialPost.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.SocialPost.json rename to configs/seeds/host/data/App.Hr.Intranet.SocialPost.json index e7e44539..53d2d12a 100644 --- a/configs/seeds/host/data/App.Intranet.SocialPost.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SocialPost.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SocialPost", + "ListFormCode": "App.Hr.Intranet.SocialPost", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 10, diff --git a/configs/seeds/host/data/App.Intranet.Survey.json b/configs/seeds/host/data/App.Hr.Intranet.Survey.json similarity index 95% rename from configs/seeds/host/data/App.Intranet.Survey.json rename to configs/seeds/host/data/App.Hr.Intranet.Survey.json index 841a22a6..de7f002a 100644 --- a/configs/seeds/host/data/App.Intranet.Survey.json +++ b/configs/seeds/host/data/App.Hr.Intranet.Survey.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.Survey", + "ListFormCode": "App.Hr.Intranet.Survey", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 10, diff --git a/configs/seeds/host/data/App.Intranet.SurveyQuestion.json b/configs/seeds/host/data/App.Hr.Intranet.SurveyQuestion.json similarity index 98% rename from configs/seeds/host/data/App.Intranet.SurveyQuestion.json rename to configs/seeds/host/data/App.Hr.Intranet.SurveyQuestion.json index d9669f8f..3a28f2e8 100644 --- a/configs/seeds/host/data/App.Intranet.SurveyQuestion.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SurveyQuestion.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SurveyQuestion", + "ListFormCode": "App.Hr.Intranet.SurveyQuestion", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 20, diff --git a/configs/seeds/host/data/App.Intranet.SurveyQuestionOption.json b/configs/seeds/host/data/App.Hr.Intranet.SurveyQuestionOption.json similarity index 97% rename from configs/seeds/host/data/App.Intranet.SurveyQuestionOption.json rename to configs/seeds/host/data/App.Hr.Intranet.SurveyQuestionOption.json index d2d479d0..d7f106d8 100644 --- a/configs/seeds/host/data/App.Intranet.SurveyQuestionOption.json +++ b/configs/seeds/host/data/App.Hr.Intranet.SurveyQuestionOption.json @@ -1,5 +1,5 @@ { - "ListFormCode": "App.Intranet.SurveyQuestionOption", + "ListFormCode": "App.Hr.Intranet.SurveyQuestionOption", "KeyFieldName": "Id", "GeneratedAt": "2026-09-04T00:00:00Z", "Order": 30, diff --git a/configs/seeds/host/data/App.Languages.LanguageText.json b/configs/seeds/host/data/App.Languages.LanguageText.json index 86ec8cfd..e88d4ef3 100644 --- a/configs/seeds/host/data/App.Languages.LanguageText.json +++ b/configs/seeds/host/data/App.Languages.LanguageText.json @@ -6318,20 +6318,6 @@ "Key": "Abp.Account.BloodType", "Value": "Kan Grubu" }, - { - "Id": "4def756b-4cb8-5a61-83bf-61123d1bd247", - "CultureName": "en", - "ResourceName": "Platform", - "Key": "Abp.Account.GraduationSchool", - "Value": "Graduation School" - }, - { - "Id": "031ac0e0-5ece-5b5c-a16d-7cab1db6343c", - "CultureName": "tr", - "ResourceName": "Platform", - "Key": "Abp.Account.GraduationSchool", - "Value": "Mezuniyet Okulu" - }, { "Id": "ebeb3e5e-d3d9-5b1c-bacd-6f190e1c1dc6", "CultureName": "en", @@ -9053,14 +9039,14 @@ "CultureName": "en", "ResourceName": "Platform", "Key": "Abp.Identity.User.UserInformation.SskNo", - "Value": "SSK Number" + "Value": "SGK Number" }, { "Id": "c203220d-4283-5ef7-b7bf-37500d6524cb", "CultureName": "tr", "ResourceName": "Platform", "Key": "Abp.Identity.User.UserInformation.SskNo", - "Value": "SSK No" + "Value": "SGK No" }, { "Id": "a1c5250b-e9bb-5509-b322-bcaf7c678579", @@ -17239,101 +17225,101 @@ "Value": "Eğitim Durumu" }, { - "Id": "7ff45171-398f-51f0-82e1-1db5a3181844", + "Id": "09ec906f-2db4-579f-a248-8bb022b6cbc4", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet", + "Key": "App.Hr.Intranet", "Value": "Intranet" }, { - "Id": "ea496fc1-7b29-5eb1-89b4-949f41376a5c", + "Id": "c39ba078-8b2c-5c94-b404-10af5c08444a", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet", + "Key": "App.Hr.Intranet", "Value": "Intranet" }, { - "Id": "0c5b4a37-523d-50f6-97f8-9e390eff8f46", + "Id": "a18fc91b-ce82-57ed-81af-94866f282957", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialLike", + "Key": "App.Hr.Intranet.SocialLike", "Value": "Likes" }, { - "Id": "898afd47-2a44-5a6d-9817-1adcd04776a2", + "Id": "61726010-2b79-5d37-8a2c-9b08609f02be", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialLike", + "Key": "App.Hr.Intranet.SocialLike", "Value": "Beğeniler" }, { - "Id": "7fe6f6a2-3be2-586a-85f9-ed2db6c0e698", + "Id": "dd32e379-8cca-5e93-9522-1cce09837bcd", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialComment", + "Key": "App.Hr.Intranet.SocialComment", "Value": "Comments" }, { - "Id": "77a74e0e-d1fb-5613-b7fc-9c21318cced0", + "Id": "639ce1ea-3e1c-54c8-a996-387b7a5e28b8", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialComment", + "Key": "App.Hr.Intranet.SocialComment", "Value": "Yorumlar" }, { - "Id": "7f316fd9-3637-5b82-a53c-78e3f5c68bf4", + "Id": "9510ef32-885b-5d85-8c95-e4ad40440fd9", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialMedia", + "Key": "App.Hr.Intranet.SocialMedia", "Value": "Medias" }, { - "Id": "a99e2b2c-e4eb-5037-a4fa-60641f74bfb8", + "Id": "9a1b585e-a1c8-52f1-8978-d7aad3659b73", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialMedia", + "Key": "App.Hr.Intranet.SocialMedia", "Value": "Medyalar" }, { - "Id": "0facf7eb-25ee-59c8-9c9e-263860ffa3b6", + "Id": "5d5832b1-39f5-54bd-ad21-7f6b3c9233d8", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialMedia.Description", + "Key": "App.Hr.Intranet.SocialMedia.Description", "Value": "Social post media" }, { - "Id": "6367166e-c9e0-52c2-b640-fed6c3555471", + "Id": "bd622e54-d0af-5a22-b4d0-c3869aba2826", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialMedia.Description", + "Key": "App.Hr.Intranet.SocialMedia.Description", "Value": "Gönderi medyası" }, { - "Id": "2dc2e214-dac7-55b7-8c16-6b694e5e3084", + "Id": "308f1cad-4e38-5b8c-ac8b-e601eade40d6", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPollOption", + "Key": "App.Hr.Intranet.SocialPollOption", "Value": "Poll Options" }, { - "Id": "c5ad49de-0623-560d-9029-1fa4da87fb50", + "Id": "858c5e11-e9a6-53b6-9a6e-bc2450700b26", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPollOption", + "Key": "App.Hr.Intranet.SocialPollOption", "Value": "Anket Seçenekleri" }, { - "Id": "2c764491-6d46-5e37-a652-46fbb56c68a8", + "Id": "4ec9c891-4024-5a36-87bf-204ea72c8088", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPollOption.Description", + "Key": "App.Hr.Intranet.SocialPollOption.Description", "Value": "Social post poll options" }, { - "Id": "804c6b35-6e46-5ecb-9ae3-4a3dd2e5d343", + "Id": "e9ec9f47-0709-5308-b813-76f950a22899", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPollOption.Description", + "Key": "App.Hr.Intranet.SocialPollOption.Description", "Value": "Gönderi anket seçenekleri" }, { @@ -17491,73 +17477,73 @@ "Value": "Anket" }, { - "Id": "169c7a8b-9a87-5683-84e0-fca0a44b356b", + "Id": "579cb0a3-091f-5e9d-9a77-0870893c0632", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestion", + "Key": "App.Hr.Intranet.SurveyQuestion", "Value": "Questions" }, { - "Id": "28f9e92f-8432-545d-844a-6d4040a1f5d1", + "Id": "38944dca-a239-5bcb-af18-4181a83582b7", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestion", + "Key": "App.Hr.Intranet.SurveyQuestion", "Value": "Sorular" }, { - "Id": "04c65574-a3f9-5662-97a9-f56b4fbb68ab", + "Id": "3d98c365-3e36-5a48-9c2d-5916cb0ea14a", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestionOption", + "Key": "App.Hr.Intranet.SurveyQuestionOption", "Value": "Question Options" }, { - "Id": "975e6db6-3d90-5093-85a9-3c56ba69f88e", + "Id": "3f9956e3-beac-5038-9c23-e32b88ba2349", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestionOption", + "Key": "App.Hr.Intranet.SurveyQuestionOption", "Value": "Sorular Seçenekleri" }, { - "Id": "6545dd36-c81d-567c-8486-50287ef4ac3d", + "Id": "4eb25e3d-eb04-5196-82f5-3dab2435eb1c", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyResponse", + "Key": "App.Hr.Intranet.SurveyResponse", "Value": "Responses" }, { - "Id": "959af52d-0bd7-51c3-b5f1-101441efcf58", + "Id": "42536786-b9cf-5c5b-b597-8c23750fd5e7", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyResponse", + "Key": "App.Hr.Intranet.SurveyResponse", "Value": "Yanıtlar" }, { - "Id": "6cdf0ed9-1541-55a5-8bd6-8c23764fa6da", + "Id": "58638ce9-6206-533c-9ddf-20fc30a9c288", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyAnswer", + "Key": "App.Hr.Intranet.SurveyAnswer", "Value": "Response Answers" }, { - "Id": "07e64909-d541-5539-aa4e-64318d7717cd", + "Id": "069d0a79-d6a3-5661-b1f4-5c7438f81084", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyAnswer", + "Key": "App.Hr.Intranet.SurveyAnswer", "Value": "Yanıt Cevapları" }, { - "Id": "deb199da-9e64-5530-9870-549d6848bbb8", + "Id": "382066d5-2830-5605-a0fe-5649fc6a98e5", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Survey", + "Key": "App.Hr.Intranet.Survey", "Value": "Surveys" }, { - "Id": "bd41e064-7ba2-5bfb-9968-de7dfce95392", + "Id": "3a4eb3a1-da55-5b58-9e47-554ae3d53226", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Survey", + "Key": "App.Hr.Intranet.Survey", "Value": "Anketler" }, { @@ -17603,73 +17589,73 @@ "Value": "Bir yorum yaz..." }, { - "Id": "70284d7e-ca47-53e9-af96-6110f9990702", + "Id": "797feabb-81c7-5fca-a715-eb5137208044", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventType", + "Key": "App.Hr.Intranet.Events.EventType", "Value": "Event Types" }, { - "Id": "3c4e520e-1f1f-5036-9347-dbd09638af0a", + "Id": "046ccc39-4fcf-5e3c-81bb-e66cbe8cf751", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventType", + "Key": "App.Hr.Intranet.Events.EventType", "Value": "Etkinlik Türleri" }, { - "Id": "0b22af41-1551-53cd-ba40-db1545013be4", + "Id": "8459e0b7-ba71-57dd-b0e6-1bab7589b04d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventCategory", + "Key": "App.Hr.Intranet.Events.EventCategory", "Value": "Event Category" }, { - "Id": "a8a84221-32a6-59d5-85df-b455f3a06c31", + "Id": "a09914ee-7f90-5e83-91ed-2d47ebdba1fd", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventCategory", + "Key": "App.Hr.Intranet.Events.EventCategory", "Value": "Etkinlik Kategorisi" }, { - "Id": "5ab8227d-8192-503b-9a19-d5cef7d15f84", + "Id": "c9c15106-d336-5cec-84b5-46e7b2a45b07", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.Event", + "Key": "App.Hr.Intranet.Events.Event", "Value": "Events" }, { - "Id": "70bbdd4e-b5f5-5e8e-9093-e0e806eea26f", + "Id": "2bdbfa72-47d8-5ac6-b829-bfc300c528f9", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.Event", + "Key": "App.Hr.Intranet.Events.Event", "Value": "Etkinlikler" }, { - "Id": "eeb6bcf0-f326-5170-bfe2-e900342e4bae", + "Id": "b02d00f8-8000-511d-9906-e0db0cd5fa04", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventLike", + "Key": "App.Hr.Intranet.Events.EventLike", "Value": "Likes" }, { - "Id": "4ac26588-2f7c-5707-861f-3220d4d28b17", + "Id": "8312044e-c196-55ef-b976-c3a3b93dc0bd", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventLike", + "Key": "App.Hr.Intranet.Events.EventLike", "Value": "Beğeniler" }, { - "Id": "1eef572d-e714-50d4-ae17-7eebc048efd8", + "Id": "46accef7-e70b-5154-aafb-b284f7030371", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventComment", + "Key": "App.Hr.Intranet.Events.EventComment", "Value": "Comments" }, { - "Id": "d45584b4-0363-5dfe-81bb-2371c985ea99", + "Id": "e98256f4-64fd-5b5c-8e63-88bae30e1f36", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventComment", + "Key": "App.Hr.Intranet.Events.EventComment", "Value": "Yorumlar" }, { @@ -17743,17 +17729,17 @@ "Value": "Servis Rotaları" }, { - "Id": "49abceb4-eda3-524e-856a-7a41defd4a7b", + "Id": "e12495b4-8dfe-56d3-9881-77e9fd95d5e1", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement", + "Key": "App.Hr.Intranet.Announcement", "Value": "Announcements" }, { - "Id": "61c18f4b-3e5e-5b7d-a18e-04d8fe0204be", + "Id": "6dc6be78-8858-538c-8626-683e694765fa", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement", + "Key": "App.Hr.Intranet.Announcement", "Value": "Duyurular" }, { @@ -17771,17 +17757,17 @@ "Value": "Ziyaretçiler" }, { - "Id": "2af86eb8-ad4a-5efe-abe3-0332d4fffe83", + "Id": "53355663-c827-523d-b519-8987452e7624", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPost", + "Key": "App.Hr.Intranet.SocialPost", "Value": "Social Posts" }, { - "Id": "f4d57b83-26e2-58b6-99db-98eb35c29f36", + "Id": "eeccee49-845a-5df8-a73d-697edc9871e8", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPost", + "Key": "App.Hr.Intranet.SocialPost", "Value": "Sosyal Paylaşımlar" }, { @@ -30959,31 +30945,31 @@ "Value": "Yaklaşan etkinlikler" }, { - "Id": "9ba00c1b-c4f5-5839-a950-8f355d5e8e20", + "Id": "a71463d4-7fe2-5aa8-b475-1b911c5f65f2", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementLike", + "Key": "App.Hr.Intranet.Announcement.AnnouncementLike", "Value": "Likes" }, { - "Id": "d252c1b6-d64e-52ac-a41b-d73433132394", + "Id": "9eb90738-9520-567c-ab10-b84ad586ff1a", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementLike", + "Key": "App.Hr.Intranet.Announcement.AnnouncementLike", "Value": "Beğeniler" }, { - "Id": "404791f0-55d9-5ddf-86fd-c1e3dfe15d17", + "Id": "67e74f4f-8767-5e80-bf07-2a72ba3a86c4", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementComment", + "Key": "App.Hr.Intranet.Announcement.AnnouncementComment", "Value": "Comments" }, { - "Id": "29f22738-0700-5cd6-a004-42da2843bc7c", + "Id": "c6dbf956-a83f-5ca7-8e0c-23d1a1ee1411", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementComment", + "Key": "App.Hr.Intranet.Announcement.AnnouncementComment", "Value": "Yorumlar" }, { @@ -47913,241 +47899,241 @@ "Value": "Nesne" }, { - "Id": "d625feed-0c83-5fa3-8607-63d2387e6a59", + "Id": "07dca0dd-b09f-5cd5-a9a9-de01f740a8e1", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document", + "Key": "App.Hr.Intranet.Document", "Value": "Documents" }, { - "Id": "4110368c-1b12-5c8f-a5aa-3a8e063b68c3", + "Id": "b1676bb2-a128-5106-a3d0-a4a3348b44bc", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document", + "Key": "App.Hr.Intranet.Document", "Value": "Dokümanlar" }, { - "Id": "8cd727bd-c14a-5035-ac49-b7fdbd7bfd8f", + "Id": "d031913f-a7c6-5803-a53e-df9f6866b6a1", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Active", + "Key": "App.Hr.Intranet.Document.Active", "Value": "Published" }, { - "Id": "70d5a3c3-f5af-5be3-9065-97ad0cbaa483", + "Id": "7faadfed-178e-5f44-9805-b25048ee38e7", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Active", + "Key": "App.Hr.Intranet.Document.Active", "Value": "Yayında" }, { - "Id": "5310e86f-b6b3-510a-bb5a-05686c68c03a", + "Id": "c77365d5-9daa-535b-b2e4-cb166a2cc017", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Passive", + "Key": "App.Hr.Intranet.Document.Passive", "Value": "Unpublished" }, { - "Id": "144de6d7-63dc-53a9-bedf-560a39eb6430", + "Id": "8f3c1fab-1a92-5744-92e3-d7fb089e4f80", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Passive", + "Key": "App.Hr.Intranet.Document.Passive", "Value": "Yayında Değil" }, { - "Id": "d92389c5-e964-576a-8766-00da95700f5d", + "Id": "ab6bc9c3-e004-559d-965c-68a8a6ddbd49", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Publish", + "Key": "App.Hr.Intranet.Document.Publish", "Value": "Publish" }, { - "Id": "d3968141-2da2-543e-83e1-88e762aa1442", + "Id": "7a69a2ae-11ab-5b8b-8958-64436e4e3940", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Publish", + "Key": "App.Hr.Intranet.Document.Publish", "Value": "Yayına Al" }, { - "Id": "69180495-b891-5ee4-87de-79f0eb19e122", + "Id": "51bdd12d-188f-51c1-8317-4375832df1a1", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Unpublish", + "Key": "App.Hr.Intranet.Document.Unpublish", "Value": "Unpublish" }, { - "Id": "719ab809-5d57-57ec-80ac-4aa26eacb728", + "Id": "4cb13fab-c2fd-566a-a844-5fb7fa6123e3", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Unpublish", + "Key": "App.Hr.Intranet.Document.Unpublish", "Value": "Yayından Kaldır" }, { - "Id": "94af149f-fada-59cc-8c8f-92393dce16a4", + "Id": "bba845c4-c5a9-5b49-b5e7-8cc5436d43e2", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DisplayName", + "Key": "App.Hr.Intranet.Document.DisplayName", "Value": "Display Name" }, { - "Id": "60df8384-147b-589b-8d4f-4150ba775efe", + "Id": "d858c68b-46a8-5351-a675-28472fd91009", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DisplayName", + "Key": "App.Hr.Intranet.Document.DisplayName", "Value": "Görünecek Ad" }, { - "Id": "7a06ba6a-1fd4-5314-887d-9d1275ac8c07", + "Id": "ba1c3ee9-2f38-5797-a6b0-a94a1c69b0d8", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DisplayNameHint", + "Key": "App.Hr.Intranet.Document.DisplayNameHint", "Value": "This name is saved as the file name and is shown in the Documents widget." }, { - "Id": "fca97a42-2977-5b68-8ef9-852fb6db52d9", + "Id": "02ffd1fa-e9fc-55a6-9242-37cb85dc91d1", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DisplayNameHint", + "Key": "App.Hr.Intranet.Document.DisplayNameHint", "Value": "Bu ad dosya adı olarak kaydedilir ve Son Dokümanlar widget'ında görünür." }, { - "Id": "10bb86c6-2571-5370-aa05-6107afcec66d", + "Id": "6010bb16-bae9-5e12-9e41-91f0366a573b", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.KanbanView", + "Key": "App.Hr.Intranet.Document.KanbanView", "Value": "Board view" }, { - "Id": "966e44c9-ba12-5e5e-bd99-d62a2c009452", + "Id": "9d7f0775-3c5f-594c-8c4b-1866157583a7", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.KanbanView", + "Key": "App.Hr.Intranet.Document.KanbanView", "Value": "Pano görünümü" }, { - "Id": "2fcce483-ab60-5f9c-ac05-134a61f8f191", + "Id": "e3bc9b4b-10de-53f9-93c9-6381a605073d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.ListView", + "Key": "App.Hr.Intranet.Document.ListView", "Value": "List view" }, { - "Id": "402658a5-29af-5ffc-8171-81228891a5c9", + "Id": "7e6cc984-69e5-57f6-8219-c8edd4f56e4e", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.ListView", + "Key": "App.Hr.Intranet.Document.ListView", "Value": "Liste görünümü" }, { - "Id": "71529637-71ab-5dc4-b73c-c0ea8bc794b6", + "Id": "be245b17-e92b-53f6-aca3-a22ed9c6d15d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.ShowUnpublished", + "Key": "App.Hr.Intranet.Document.ShowUnpublished", "Value": "Show unpublished" }, { - "Id": "f907b457-3635-5199-8eb7-4f857c498c32", + "Id": "78c66978-5218-5847-869c-6a8aa40211a1", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.ShowUnpublished", + "Key": "App.Hr.Intranet.Document.ShowUnpublished", "Value": "Yayında olmayanları göster" }, { - "Id": "da52fb32-c6a8-5b89-ade6-49cb559de513", + "Id": "b3fb066b-026a-59e5-a3fb-0562365203da", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Unknown", + "Key": "App.Hr.Intranet.Document.Unknown", "Value": "Unknown" }, { - "Id": "98e0f0cb-7763-5fa0-aa67-5eb63b00c197", + "Id": "61a457e8-59c1-5a92-907e-be35c36a1c7f", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Unknown", + "Key": "App.Hr.Intranet.Document.Unknown", "Value": "Bilinmiyor" }, { - "Id": "6ab97db5-13dc-5a90-911b-79676025930c", + "Id": "b2dc3ad8-f77c-5e30-8f23-51d42dea6545", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Empty", + "Key": "App.Hr.Intranet.Document.Empty", "Value": "There are no documents in this folder." }, { - "Id": "52c2bfc7-316e-5785-8851-121c014c88f6", + "Id": "024ab99b-0a2f-5b71-8eae-9daa35235614", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Empty", + "Key": "App.Hr.Intranet.Document.Empty", "Value": "Bu klasörde doküman yok." }, { - "Id": "d713c9c0-6dfe-5392-9ac2-0a07f6841f0c", + "Id": "8c7f07eb-22de-5264-99ad-510af703f03c", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DeleteConfirm", + "Key": "App.Hr.Intranet.Document.DeleteConfirm", "Value": "The selected document(s) will be permanently deleted. Do you confirm?" }, { - "Id": "14ed8528-aca8-5fee-8481-973e19deb0ec", + "Id": "712190fb-b0c1-5161-823e-0bd57010d335", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.DeleteConfirm", + "Key": "App.Hr.Intranet.Document.DeleteConfirm", "Value": "Seçili doküman(lar) kalıcı olarak silinecek. Onaylıyor musunuz?" }, { - "Id": "652b6aa2-6193-5a36-83b5-1830ad65e142", + "Id": "f11020b4-aa9d-5d66-a6b9-bfd728885528", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Uploaded", + "Key": "App.Hr.Intranet.Document.Uploaded", "Value": "Document(s) uploaded." }, { - "Id": "f4328192-ee53-5d31-9ce2-c62494fd3140", + "Id": "f0c070f3-d840-5652-9025-536c1491e7db", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Uploaded", + "Key": "App.Hr.Intranet.Document.Uploaded", "Value": "Doküman(lar) yüklendi." }, { - "Id": "591cccd5-5f69-595e-87f8-d4d9e5d7b2ed", + "Id": "daaa8c9c-920d-5c8e-b96c-16fcb433b00b", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Deleted", + "Key": "App.Hr.Intranet.Document.Deleted", "Value": "Document(s) deleted." }, { - "Id": "1043ffb9-f420-5699-9bfb-2553ae2cd05d", + "Id": "5eda0b12-29f4-5360-81e6-e09e5d12bbf2", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.Deleted", + "Key": "App.Hr.Intranet.Document.Deleted", "Value": "Doküman(lar) silindi." }, { - "Id": "94c85580-024e-52cf-9078-7aac5e5bd5cc", + "Id": "5fffff04-48b0-5daf-9b22-97bf8a974732", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.StatusChanged", + "Key": "App.Hr.Intranet.Document.StatusChanged", "Value": "Publication status updated." }, { - "Id": "413afb32-adc1-503f-b1c5-228216e0f51e", + "Id": "fae4f1fd-97c4-5bc3-8a83-04a628c67d01", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.StatusChanged", + "Key": "App.Hr.Intranet.Document.StatusChanged", "Value": "Yayın durumu güncellendi." }, { - "Id": "addaa0ae-d32e-55c7-a841-baf6c1703542", + "Id": "ce7ace08-f8cc-5bbb-a225-f5545cc5814d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Document.LoadFailed", + "Key": "App.Hr.Intranet.Document.LoadFailed", "Value": "Documents could not be loaded." }, { - "Id": "17521080-3289-5af4-9352-824e0196df34", + "Id": "8e2b479d-92a4-5622-abac-2d393c1f0eb9", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Document.LoadFailed", + "Key": "App.Hr.Intranet.Document.LoadFailed", "Value": "Dokümanlar yüklenemedi." }, { @@ -54170,20 +54156,6 @@ "Key": "App.FileManager.UrlCopyFailed", "Value": "URL kopyalanamadı" }, - { - "Id": "757004a5-d110-57e8-bf68-a06cf13d6fdc", - "CultureName": "en", - "ResourceName": "Platform", - "Key": "App.Platform.GraduationSchool", - "Value": "Graduation School" - }, - { - "Id": "959e07cc-6c96-5f13-aa4f-676e6fc96766", - "CultureName": "tr", - "ResourceName": "Platform", - "Key": "App.Platform.GraduationSchool", - "Value": "Mezun Olunan Okul" - }, { "Id": "2e5cf73c-deea-51f9-a9b4-e6e3f87b2474", "CultureName": "en", @@ -67643,14 +67615,14 @@ "CultureName": "en", "ResourceName": "Platform", "Key": "App.BackgroundWorkers.RecurringJobs.Description", - "Value": "Recurring Jobs — scheduled job definitions. Table: Sas_H_BackgroundWorker · host scope · list screen. This table is the single source of the job list; do not create jobs from the Hangfire panel — jobs left in the queue without a matching row are deleted at start-up.\nFields:\n• Name → the job name; also the distributed lock key. If the lock cannot be taken (another instance is running) the trigger exits silently\n• Cron → the cron expression; evaluated in the Europe/Istanbul time zone, so expressions are written in Turkish local time\n• WorkerType → what the job does: 1 MailQueueWorker (sends the mail queue) · 2 SqlWorker (runs a SQL body) · 3 NotificationWorker (distributes the notification queue to the channels) · 4 SessionCleanupWorker (drops expired sessions) · 5 BackupWorker (backup; target from the App:BackupPath setting)\n• BeforeSp → the stored procedure run before the body. In the SqlWorker and BackupWorker types the actual work is here\n• AfterSp → the procedure run after the body\n• Options → type specific JSON. For MailQueueWorker it holds MailType, MailSubject, MailTemplate (Razor) and TableName\n• IsActive → a passive definition is not registered with the scheduler\nRecipes: scheduled SQL work (closing, summary table, cleanup) = SqlWorker + BeforeSp + a procedure under sql/object/ · scheduled e-mail (report mail, reminder) = MailQueueWorker + Options + a BeforeSp that fills the queue · distribution of event based notifications = NotificationWorker · session cleanup and backup = SessionCleanupWorker / BackupWorker.\nCaution: after changing a definition run 'regenerate scheduled jobs' from the toolbar (UiEvalService.ApiGenerateBackgroundWorkers); otherwise the scheduler keeps the old plan. A failing job is not swallowed: the error is logged and reported, and the run history is on the Jobs screen." + "Value": "Recurring Jobs — scheduled job definitions. Table: Sas_H_BackgroundWorker · host scope · list screen. This table is the single source of the job list; do not create jobs from the Hangfire panel — jobs left in the queue without a matching row are deleted at start-up.\nFields:\n• Name → the job name; also the distributed lock key. If the lock cannot be taken (another instance is running) the trigger exits silently\n• Cron → the cron expression; evaluated in the Europe/Istanbul time zone, so expressions are written in Turkish local time\n• WorkerType → what the job does: 1 MailQueueWorker (sends the mail queue) · 2 SqlWorker (runs a SQL body) · 3 NotificationWorker (distributes the notification queue to the channels) · 4 SessionCleanupWorker (drops expired sessions) · 5 BackupWorker (backup; target from the App:BackupPath setting) · 6 ProbationReminderWorker (notifies the DenemeSuresiBitiyor notification type 15 days before an employee's probation ends)\n• BeforeSp → the stored procedure run before the body. In the SqlWorker and BackupWorker types the actual work is here\n• AfterSp → the procedure run after the body\n• Options → type specific JSON. For MailQueueWorker it holds MailType, MailSubject, MailTemplate (Razor) and TableName\n• IsActive → a passive definition is not registered with the scheduler\nRecipes: scheduled SQL work (closing, summary table, cleanup) = SqlWorker + BeforeSp + a procedure under sql/object/ · scheduled e-mail (report mail, reminder) = MailQueueWorker + Options + a BeforeSp that fills the queue · distribution of event based notifications = NotificationWorker · session cleanup and backup = SessionCleanupWorker / BackupWorker.\nCaution: after changing a definition run 'regenerate scheduled jobs' from the toolbar (UiEvalService.ApiGenerateBackgroundWorkers); otherwise the scheduler keeps the old plan. A failing job is not swallowed: the error is logged and reported, and the run history is on the Jobs screen." }, { "Id": "8c423823-f990-5c0d-a396-48f4e25d495e", "CultureName": "tr", "ResourceName": "Platform", "Key": "App.BackgroundWorkers.RecurringJobs.Description", - "Value": "Zamanlanmış İşler — zamanlanmış iş tanımları. Tablo: Sas_H_BackgroundWorker · host kapsamlı · liste ekranı. İş listesinin tek kaynağı bu tablodur; Hangfire panelinden elle iş açılmaz — kaydı olmayan işler açılışta silinir.\nAlanlar:\n• Name → iş adı; aynı zamanda dağıtık kilit anahtarıdır. Kilit alınamazsa (başka bir örnek çalışıyorsa) tetikleme sessizce çıkar\n• Cron → cron ifadesi; Europe/Istanbul saat diliminde yorumlanır, yani ifadeler Türkiye yerel saatine göre yazılır\n• WorkerType → işin ne yaptığı: 1 MailQueueWorker (mail kuyruğunu gönderir) · 2 SqlWorker (SQL gövdesi çalıştırır) · 3 NotificationWorker (bildirim kuyruğunu kanallara dağıtır) · 4 SessionCleanupWorker (süresi geçen oturumları düşürür) · 5 BackupWorker (yedekleme; hedef App:BackupPath ayarından)\n• BeforeSp → gövdeden önce çalışan saklı yordam. SqlWorker ve BackupWorker tiplerinde asıl iş buradadır\n• AfterSp → gövdeden sonra çalışan yordam\n• Options → tipe özel JSON. MailQueueWorker için MailType, MailSubject, MailTemplate (Razor) ve TableName bilgisini taşır\n• IsActive → pasif tanım zamanlayıcıya kaydedilmez\nReçeteler: zamanlanmış SQL işi (kapanış, özet tablo, temizlik) = SqlWorker + BeforeSp + sql/object/ altında yordam · zamanlanmış e-posta (rapor maili, hatırlatma) = MailQueueWorker + Options + kuyruğu dolduran BeforeSp · olay bazlı bildirimlerin dağıtımı = NotificationWorker · oturum temizliği ve yedekleme = SessionCleanupWorker / BackupWorker.\nDikkat: tanım değiştikten sonra araç çubuğundan 'zamanlanmış işleri yeniden üret' çalıştırılır (UiEvalService.ApiGenerateBackgroundWorkers); aksi hâlde zamanlayıcı eski planı sürdürür. Hata alan iş yutulmaz: hata loglanır ve bildirilir, çalışma geçmişi Jobs ekranındadır." + "Value": "Zamanlanmış İşler — zamanlanmış iş tanımları. Tablo: Sas_H_BackgroundWorker · host kapsamlı · liste ekranı. İş listesinin tek kaynağı bu tablodur; Hangfire panelinden elle iş açılmaz — kaydı olmayan işler açılışta silinir.\nAlanlar:\n• Name → iş adı; aynı zamanda dağıtık kilit anahtarıdır. Kilit alınamazsa (başka bir örnek çalışıyorsa) tetikleme sessizce çıkar\n• Cron → cron ifadesi; Europe/Istanbul saat diliminde yorumlanır, yani ifadeler Türkiye yerel saatine göre yazılır\n• WorkerType → işin ne yaptığı: 1 MailQueueWorker (mail kuyruğunu gönderir) · 2 SqlWorker (SQL gövdesi çalıştırır) · 3 NotificationWorker (bildirim kuyruğunu kanallara dağıtır) · 4 SessionCleanupWorker (süresi geçen oturumları düşürür) · 5 BackupWorker (yedekleme; hedef App:BackupPath ayarından) · 6 ProbationReminderWorker (çalışanın deneme süresi bitmeden 15 gün önce DenemeSuresiBitiyor bildirim tipini işletir)\n• BeforeSp → gövdeden önce çalışan saklı yordam. SqlWorker ve BackupWorker tiplerinde asıl iş buradadır\n• AfterSp → gövdeden sonra çalışan yordam\n• Options → tipe özel JSON. MailQueueWorker için MailType, MailSubject, MailTemplate (Razor) ve TableName bilgisini taşır\n• IsActive → pasif tanım zamanlayıcıya kaydedilmez\nReçeteler: zamanlanmış SQL işi (kapanış, özet tablo, temizlik) = SqlWorker + BeforeSp + sql/object/ altında yordam · zamanlanmış e-posta (rapor maili, hatırlatma) = MailQueueWorker + Options + kuyruğu dolduran BeforeSp · olay bazlı bildirimlerin dağıtımı = NotificationWorker · oturum temizliği ve yedekleme = SessionCleanupWorker / BackupWorker.\nDikkat: tanım değiştikten sonra araç çubuğundan 'zamanlanmış işleri yeniden üret' çalıştırılır (UiEvalService.ApiGenerateBackgroundWorkers); aksi hâlde zamanlayıcı eski planı sürdürür. Hata alan iş yutulmaz: hata loglanır ve bildirilir, çalışma geçmişi Jobs ekranındadır." }, { "Id": "a4a4cd93-ecf8-5039-ba1a-c1a397a60c53", @@ -68045,228 +68017,228 @@ "Value": "Görev — görev/unvan tanımları. Tablo: Hr_T_JobPosition · tenant kapsamlı · ağaç düzeni.\nKullanım: personel kayıtlarının, onay akışlarının ve organizasyon şemasının görev lookup'ı. Cascade kalıbının referansıdır: ekrandaki görev lookup'ı seçili departmana göre süzülür.\nAlanlar:\n• BranchId → pozisyonun bağlı olduğu şube; listenin ilk sütunu, departman lookup'ını süzer\n• Name → görev adı\n• DepartmentId → bağlı olduğu departman; cascade filtresi bu alan üzerinden çalışır\n• ParentId → bağlı olduğu üst görev; unvan hiyerarşisi bu alan üzerinden kurulur\nDikkat: görev ağacı ile departman ağacı ayrı hiyerarşilerdir — bir görevin üstü başka departmanda olabilir; matris organizasyon tam olarak böyle ifade edilir. Kullanıcıya atanmış görevi silme; önce atamayı taşı." }, { - "Id": "ae2c9dc2-9aca-54b2-bca2-d4aeddca73f2", + "Id": "99eea7d8-af2e-53fb-85d5-0e158faac3cb", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.Description", - "Value": "Announcement — corporate announcements. Table: Adm_T_Announcement · tenant scope · list screen; likes and comments are on the sub-tabs.\nUsage: together with likes and comments it is the ready example of the 'main record / sub interaction' pattern.\nFields:\n• Title, Excerpt, Content → the title, the summary shown in the list and the full body\n• Category → the grouping heading of the announcement\n• PublishDate, ExpiryDate → when it is published and when it drops out of the list; an expired announcement is not deleted, it stops being shown\n• IsPinned → a pinned announcement stays at the top of the list regardless of its date\n• ImageUrl → the visual\n• UserId → who published it\n• AnnouncementId → the reference used by the sub-records (like/comment)\nSub-tabs: Announcement Comment and Announcement Like.\nTip: to notify users when an announcement is published, define a notification type and rule (Notifications) and raise it from the screen's InsertAfterCommand — no code is written.\nCaution: do not delete an announcement that has received comments; set its expiry date, so the history and the interaction are preserved." + "Key": "App.Hr.Intranet.Announcement.Description", + "Value": "Announcement — corporate announcements. Table: Hr_T_Announcement · tenant scope · list screen; likes and comments are on the sub-tabs.\nUsage: together with likes and comments it is the ready example of the 'main record / sub interaction' pattern.\nFields:\n• Title, Excerpt, Content → the title, the summary shown in the list and the full body\n• Category → the grouping heading of the announcement\n• PublishDate, ExpiryDate → when it is published and when it drops out of the list; an expired announcement is not deleted, it stops being shown\n• IsPinned → a pinned announcement stays at the top of the list regardless of its date\n• ImageUrl → the visual\n• UserId → who published it\n• AnnouncementId → the reference used by the sub-records (like/comment)\nSub-tabs: Announcement Comment and Announcement Like.\nTip: to notify users when an announcement is published, define a notification type and rule (Notifications) and raise it from the screen's InsertAfterCommand — no code is written.\nCaution: do not delete an announcement that has received comments; set its expiry date, so the history and the interaction are preserved." }, { - "Id": "c218c2f1-8ec7-508c-9d93-c9c11b9c7fc6", + "Id": "99bd84a0-9a2c-5202-913e-cc259e49c8cd", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.Description", - "Value": "Duyuru — kurum içi duyurular. Tablo: Adm_T_Announcement · tenant kapsamlı · liste ekranı; beğeni ve yorumlar alt sekmelerdedir.\nKullanım: beğeni ve yorum kayıtlarıyla birlikte 'ana kayıt / alt etkileşim' kalıbının hazır örneğidir.\nAlanlar:\n• Title, Excerpt, Content → başlık, listede görünen özet ve tam gövde\n• Category → duyurunun gruplama başlığı\n• PublishDate, ExpiryDate → ne zaman yayınlandığı ve listeden ne zaman düşeceği; süresi dolan duyuru silinmez, gösterilmez\n• IsPinned → sabitlenen duyuru tarihinden bağımsız olarak listenin başında kalır\n• ImageUrl → görsel\n• UserId → duyuruyu yayınlayan kişi\n• AnnouncementId → alt kayıtların (beğeni/yorum) referans verdiği değer\nAlt sekmeler: Duyuru Yorumu ve Duyuru Beğenisi.\nİpucu: duyuru yayınlandığında kullanıcıları haberdar etmek için bildirim türü ve kuralı tanımlanır (Bildirimler) ve ekranın InsertAfterCommand tanımından tetiklenir — kod yazılmaz.\nDikkat: yorum almış duyuruyu silme; bitiş tarihini ver, böylece geçmiş ve etkileşim korunur." + "Key": "App.Hr.Intranet.Announcement.Description", + "Value": "Duyuru — kurum içi duyurular. Tablo: Hr_T_Announcement · tenant kapsamlı · liste ekranı; beğeni ve yorumlar alt sekmelerdedir.\nKullanım: beğeni ve yorum kayıtlarıyla birlikte 'ana kayıt / alt etkileşim' kalıbının hazır örneğidir.\nAlanlar:\n• Title, Excerpt, Content → başlık, listede görünen özet ve tam gövde\n• Category → duyurunun gruplama başlığı\n• PublishDate, ExpiryDate → ne zaman yayınlandığı ve listeden ne zaman düşeceği; süresi dolan duyuru silinmez, gösterilmez\n• IsPinned → sabitlenen duyuru tarihinden bağımsız olarak listenin başında kalır\n• ImageUrl → görsel\n• UserId → duyuruyu yayınlayan kişi\n• AnnouncementId → alt kayıtların (beğeni/yorum) referans verdiği değer\nAlt sekmeler: Duyuru Yorumu ve Duyuru Beğenisi.\nİpucu: duyuru yayınlandığında kullanıcıları haberdar etmek için bildirim türü ve kuralı tanımlanır (Bildirimler) ve ekranın InsertAfterCommand tanımından tetiklenir — kod yazılmaz.\nDikkat: yorum almış duyuruyu silme; bitiş tarihini ver, böylece geçmiş ve etkileşim korunur." }, { - "Id": "9646035b-46f3-5ad0-9eb0-dfe874cd5c00", + "Id": "052ca32e-7a52-51e9-9f21-b6c0c0dc5cba", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementLike.Description", - "Value": "Announcement Like — the like records of announcements. Table: Adm_T_AnnouncementLike · tenant scope · list screen.\nUsage: one row per announcement/user pair; the rows are produced by the like button, they are not entered by hand. The screen exists for inspection, moderation and cleanup.\nFields:\n• AnnouncementId → the liked announcement\n• UserId → the user who liked it\nCaution: the like count is calculated in the view over this table — do not keep a separate counter column, it goes out of sync. Duplicate rows for the same pair are prevented by the interface, so a duplicate is a sign of a broken integration." + "Key": "App.Hr.Intranet.Announcement.AnnouncementLike.Description", + "Value": "Announcement Like — the like records of announcements. Table: Hr_T_AnnouncementLike · tenant scope · list screen.\nUsage: one row per announcement/user pair; the rows are produced by the like button, they are not entered by hand. The screen exists for inspection, moderation and cleanup.\nFields:\n• AnnouncementId → the liked announcement\n• UserId → the user who liked it\nCaution: the like count is calculated in the view over this table — do not keep a separate counter column, it goes out of sync. Duplicate rows for the same pair are prevented by the interface, so a duplicate is a sign of a broken integration." }, { - "Id": "2c43c252-ab3a-5633-855c-27a45b133a4a", + "Id": "b5cf75a5-0272-578d-8cda-6a8eb36a6b59", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementLike.Description", - "Value": "Duyuru Beğenisi — duyuruların beğeni kayıtları. Tablo: Adm_T_AnnouncementLike · tenant kapsamlı · liste ekranı.\nKullanım: duyuru/kullanıcı çifti başına bir satır; satırlar beğeni butonu tarafından üretilir, elle girilmez. Ekran inceleme, denetim ve temizlik içindir.\nAlanlar:\n• AnnouncementId → beğenilen duyuru\n• UserId → beğenen kullanıcı\nDikkat: beğeni sayısı bu tablo üzerinden view içinde hesaplanır — ayrı sayaç kolonu tutma, senkronizasyonu bozulur. Aynı çift için mükerrer satırı arayüz engeller; mükerrer kayıt bozuk bir entegrasyonun işaretidir." + "Key": "App.Hr.Intranet.Announcement.AnnouncementLike.Description", + "Value": "Duyuru Beğenisi — duyuruların beğeni kayıtları. Tablo: Hr_T_AnnouncementLike · tenant kapsamlı · liste ekranı.\nKullanım: duyuru/kullanıcı çifti başına bir satır; satırlar beğeni butonu tarafından üretilir, elle girilmez. Ekran inceleme, denetim ve temizlik içindir.\nAlanlar:\n• AnnouncementId → beğenilen duyuru\n• UserId → beğenen kullanıcı\nDikkat: beğeni sayısı bu tablo üzerinden view içinde hesaplanır — ayrı sayaç kolonu tutma, senkronizasyonu bozulur. Aynı çift için mükerrer satırı arayüz engeller; mükerrer kayıt bozuk bir entegrasyonun işaretidir." }, { - "Id": "f6561559-3fa7-515d-88fc-ce2831d676ec", + "Id": "4eea5ab7-20c9-5109-b507-119a2e38dad0", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementComment.Description", - "Value": "Announcement Comment — the comments written under announcements. Table: Adm_T_AnnouncementComment · tenant scope · list screen.\nUsage: comments are followed and, when necessary, moderated from here. The rows are produced by the announcement screen.\nFields:\n• AnnouncementId → the announcement the comment belongs to\n• UserId → the author of the comment\n• Content → the comment text\nCaution: a deleted comment cannot be restored — for moderation prefer hiding over deleting where the screen allows it, so the discussion history is not broken." + "Key": "App.Hr.Intranet.Announcement.AnnouncementComment.Description", + "Value": "Announcement Comment — the comments written under announcements. Table: Hr_T_AnnouncementComment · tenant scope · list screen.\nUsage: comments are followed and, when necessary, moderated from here. The rows are produced by the announcement screen.\nFields:\n• AnnouncementId → the announcement the comment belongs to\n• UserId → the author of the comment\n• Content → the comment text\nCaution: a deleted comment cannot be restored — for moderation prefer hiding over deleting where the screen allows it, so the discussion history is not broken." }, { - "Id": "c6e63231-e222-5b01-b7d2-776d6bf09025", + "Id": "cfa06163-d26e-57d2-82ca-36869e6b0bf9", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Announcement.AnnouncementComment.Description", - "Value": "Duyuru Yorumu — duyuru altına yazılan yorumlar. Tablo: Adm_T_AnnouncementComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve gerektiğinde denetlenir. Satırlar duyuru ekranı tarafından üretilir.\nAlanlar:\n• AnnouncementId → yorumun ait olduğu duyuru\n• UserId → yorumu yazan kullanıcı\n• Content → yorum metni\nDikkat: silinen yorum geri getirilemez — denetimde, ekran izin veriyorsa silmek yerine gizlemeyi tercih et; tartışmanın akışı bozulmasın." + "Key": "App.Hr.Intranet.Announcement.AnnouncementComment.Description", + "Value": "Duyuru Yorumu — duyuru altına yazılan yorumlar. Tablo: Hr_T_AnnouncementComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve gerektiğinde denetlenir. Satırlar duyuru ekranı tarafından üretilir.\nAlanlar:\n• AnnouncementId → yorumun ait olduğu duyuru\n• UserId → yorumu yazan kullanıcı\n• Content → yorum metni\nDikkat: silinen yorum geri getirilemez — denetimde, ekran izin veriyorsa silmek yerine gizlemeyi tercih et; tartışmanın akışı bozulmasın." }, { - "Id": "9f003f78-a0f6-5c77-ba5e-d4bd539975ef", + "Id": "46817feb-513b-5c5d-a83b-186cec52afec", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Survey.Description", - "Value": "Survey — the survey header. Table: Adm_T_Survey · tenant scope · list screen; questions and responses are on the sub-tabs.\nUsage: the chain Survey › Question › Option › Response › Answer is the reference for the two level sub-form need — the questions of the survey and the options of a question are edited on nested sub-tabs.\nFields:\n• Title → the survey title\n• Deadline → the last date for participation; after it the survey is closed to answers\n• Status → the state of the survey (draft, published, closed); a draft survey is not shown to participants\n• IsAnonymous → in an anonymous survey the identity of the participant is not shown with the answers\n• Responses → the number of participations; used for the completion ratio\n• SurveyId → the reference used by the sub-records\nSub-tabs: Survey Question and Survey Response.\nCaution: after a survey has received responses, changing its questions makes the result set inconsistent — close it and open a new version. In an anonymous survey do not carry the user information into the answers by any other route; that would break the promise given to the participant." + "Key": "App.Hr.Intranet.Survey.Description", + "Value": "Survey — the survey header. Table: Hr_T_Survey · tenant scope · list screen; questions and responses are on the sub-tabs.\nUsage: the chain Survey › Question › Option › Response › Answer is the reference for the two level sub-form need — the questions of the survey and the options of a question are edited on nested sub-tabs.\nFields:\n• Title → the survey title\n• Deadline → the last date for participation; after it the survey is closed to answers\n• Status → the state of the survey (draft, published, closed); a draft survey is not shown to participants\n• IsAnonymous → in an anonymous survey the identity of the participant is not shown with the answers\n• Responses → the number of participations; used for the completion ratio\n• SurveyId → the reference used by the sub-records\nSub-tabs: Survey Question and Survey Response.\nCaution: after a survey has received responses, changing its questions makes the result set inconsistent — close it and open a new version. In an anonymous survey do not carry the user information into the answers by any other route; that would break the promise given to the participant." }, { - "Id": "534f165c-4c11-5c73-b77c-be8d7f2260a3", + "Id": "76ea8601-4c14-5e31-8a8b-f52872f6aae3", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Survey.Description", - "Value": "Anket — anket başlığı. Tablo: Adm_T_Survey · tenant kapsamlı · liste ekranı; sorular ve yanıtlar alt sekmelerdedir.\nKullanım: Anket › Soru › Seçenek › Yanıt › Cevap zinciri, iki seviyeli alt form ihtiyacının referansıdır — anketin soruları ve sorunun seçenekleri iç içe alt sekmelerde düzenlenir.\nAlanlar:\n• Title → anket başlığı\n• Deadline → katılım için son tarih; sonrasında anket cevaba kapanır\n• Status → anketin durumu (taslak, yayında, kapalı); taslak anket katılımcılara gösterilmez\n• IsAnonymous → anonim ankette katılımcının kimliği cevaplarla birlikte gösterilmez\n• Responses → katılım sayısı; tamamlanma oranı için kullanılır\n• SurveyId → alt kayıtların referans verdiği değer\nAlt sekmeler: Anket Sorusu ve Anket Yanıtı.\nDikkat: yanıt almış anketin soruları değiştirilirse sonuç kümesi tutarsızlaşır — anketi kapatıp yeni sürüm aç. Anonim ankette kullanıcı bilgisini başka bir yoldan cevaplara taşıma; katılımcıya verilen sözü bozar." + "Key": "App.Hr.Intranet.Survey.Description", + "Value": "Anket — anket başlığı. Tablo: Hr_T_Survey · tenant kapsamlı · liste ekranı; sorular ve yanıtlar alt sekmelerdedir.\nKullanım: Anket › Soru › Seçenek › Yanıt › Cevap zinciri, iki seviyeli alt form ihtiyacının referansıdır — anketin soruları ve sorunun seçenekleri iç içe alt sekmelerde düzenlenir.\nAlanlar:\n• Title → anket başlığı\n• Deadline → katılım için son tarih; sonrasında anket cevaba kapanır\n• Status → anketin durumu (taslak, yayında, kapalı); taslak anket katılımcılara gösterilmez\n• IsAnonymous → anonim ankette katılımcının kimliği cevaplarla birlikte gösterilmez\n• Responses → katılım sayısı; tamamlanma oranı için kullanılır\n• SurveyId → alt kayıtların referans verdiği değer\nAlt sekmeler: Anket Sorusu ve Anket Yanıtı.\nDikkat: yanıt almış anketin soruları değiştirilirse sonuç kümesi tutarsızlaşır — anketi kapatıp yeni sürüm aç. Anonim ankette kullanıcı bilgisini başka bir yoldan cevaplara taşıma; katılımcıya verilen sözü bozar." }, { - "Id": "7b3ef626-8e12-5ab0-954c-940434979328", + "Id": "9dddc3b4-f750-54fb-9f3f-4f53fc99a78f", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestion.Description", - "Value": "Survey Question — the questions of a survey. Table: Adm_T_SurveyQuestion · tenant scope · list screen; the options are on the sub-tab.\nUsage: the first level of the two level sub-form; normally edited inside the survey.\nFields:\n• SurveyId → the survey it belongs to\n• QuestionText → the question text\n• Type → the question type: single choice, multiple choice, free text, scale. Choice types take their options from the sub-tab\n• Order → the order in which it is asked\n• IsRequired → can the participant submit without answering\n• QuestionId → the reference used by the options and the answers\nCaution: do not change the type of a question that has received answers — the existing answers were written in the old type's format and become unreadable." + "Key": "App.Hr.Intranet.SurveyQuestion.Description", + "Value": "Survey Question — the questions of a survey. Table: Hr_T_SurveyQuestion · tenant scope · list screen; the options are on the sub-tab.\nUsage: the first level of the two level sub-form; normally edited inside the survey.\nFields:\n• SurveyId → the survey it belongs to\n• QuestionText → the question text\n• Type → the question type: single choice, multiple choice, free text, scale. Choice types take their options from the sub-tab\n• Order → the order in which it is asked\n• IsRequired → can the participant submit without answering\n• QuestionId → the reference used by the options and the answers\nCaution: do not change the type of a question that has received answers — the existing answers were written in the old type's format and become unreadable." }, { - "Id": "4748d1e0-013c-5851-8c9b-60268821b7c3", + "Id": "8875c7f8-b0b6-5dc0-a4fd-88e8300c2d53", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestion.Description", - "Value": "Anket Sorusu — anketin soruları. Tablo: Adm_T_SurveyQuestion · tenant kapsamlı · liste ekranı; seçenekler alt sekmededir.\nKullanım: iki seviyeli alt formun ilk seviyesi; normalde anketin içinden düzenlenir.\nAlanlar:\n• SurveyId → bağlı olduğu anket\n• QuestionText → soru metni\n• Type → soru tipi: tek seçim, çoklu seçim, serbest metin, ölçek. Seçimli tipler seçeneklerini alt sekmeden alır\n• Order → sorunun sorulma sırası\n• IsRequired → katılımcı cevaplamadan gönderebilir mi\n• QuestionId → seçeneklerin ve cevapların referans verdiği değer\nDikkat: cevap almış sorunun tipini değiştirme — mevcut cevaplar eski tipin biçiminde yazılmıştır ve okunamaz hâle gelir." + "Key": "App.Hr.Intranet.SurveyQuestion.Description", + "Value": "Anket Sorusu — anketin soruları. Tablo: Hr_T_SurveyQuestion · tenant kapsamlı · liste ekranı; seçenekler alt sekmededir.\nKullanım: iki seviyeli alt formun ilk seviyesi; normalde anketin içinden düzenlenir.\nAlanlar:\n• SurveyId → bağlı olduğu anket\n• QuestionText → soru metni\n• Type → soru tipi: tek seçim, çoklu seçim, serbest metin, ölçek. Seçimli tipler seçeneklerini alt sekmeden alır\n• Order → sorunun sorulma sırası\n• IsRequired → katılımcı cevaplamadan gönderebilir mi\n• QuestionId → seçeneklerin ve cevapların referans verdiği değer\nDikkat: cevap almış sorunun tipini değiştirme — mevcut cevaplar eski tipin biçiminde yazılmıştır ve okunamaz hâle gelir." }, { - "Id": "84cb9d38-c0c1-5f35-b08b-584be48efd2c", + "Id": "5bcab447-0600-54a0-9382-3019057f5cfb", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestionOption.Description", - "Value": "Survey Question Option — the answer options of a question. Table: Adm_T_SurveyQuestionOption · tenant scope · list screen.\nUsage: the second level of the two level sub-form; the options of choice questions. Normally edited inside the question, not as a stand-alone screen.\nFields:\n• QuestionId → the question it belongs to\n• Text → the option text shown to the participant\n• Order → the order in which the options are listed\nCaution: do not delete an option that has been chosen — the answers referencing it are orphaned and the result report cannot label them." + "Key": "App.Hr.Intranet.SurveyQuestionOption.Description", + "Value": "Survey Question Option — the answer options of a question. Table: Hr_T_SurveyQuestionOption · tenant scope · list screen.\nUsage: the second level of the two level sub-form; the options of choice questions. Normally edited inside the question, not as a stand-alone screen.\nFields:\n• QuestionId → the question it belongs to\n• Text → the option text shown to the participant\n• Order → the order in which the options are listed\nCaution: do not delete an option that has been chosen — the answers referencing it are orphaned and the result report cannot label them." }, { - "Id": "ff110326-572a-54b9-9e1c-adcd7c8d930e", + "Id": "a7343b0f-0902-50b9-9abc-12a75198966d", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyQuestionOption.Description", - "Value": "Anket Soru Seçeneği — sorunun cevap seçenekleri. Tablo: Adm_T_SurveyQuestionOption · tenant kapsamlı · liste ekranı.\nKullanım: iki seviyeli alt formun ikinci seviyesi; seçimli soruların şıkları. Normalde tek başına değil sorunun içinden düzenlenir.\nAlanlar:\n• QuestionId → bağlı olduğu soru\n• Text → katılımcıya gösterilen seçenek metni\n• Order → seçeneklerin listeleneceği sıra\nDikkat: seçilmiş bir seçeneği silme — ona referans veren cevaplar sahipsiz kalır ve sonuç raporu onları etiketleyemez." + "Key": "App.Hr.Intranet.SurveyQuestionOption.Description", + "Value": "Anket Soru Seçeneği — sorunun cevap seçenekleri. Tablo: Hr_T_SurveyQuestionOption · tenant kapsamlı · liste ekranı.\nKullanım: iki seviyeli alt formun ikinci seviyesi; seçimli soruların şıkları. Normalde tek başına değil sorunun içinden düzenlenir.\nAlanlar:\n• QuestionId → bağlı olduğu soru\n• Text → katılımcıya gösterilen seçenek metni\n• Order → seçeneklerin listeleneceği sıra\nDikkat: seçilmiş bir seçeneği silme — ona referans veren cevaplar sahipsiz kalır ve sonuç raporu onları etiketleyemez." }, { - "Id": "a41edaf7-cd51-5450-a0fe-3db12c09d017", + "Id": "92ced928-fc2c-5d37-9652-7e1f0882914d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyResponse.Description", - "Value": "Survey Response — the participation record. Table: Adm_T_SurveyResponse · tenant scope · list screen; the answers are on the sub-tab.\nUsage: one row per survey/participant pair — who filled it in and when. The answers to the questions are on the Survey Answer sub-tab.\nFields:\n• SurveyId → the survey participated in\n• UserId → the participant; not shown in an anonymous survey\n• SubmissionTime → the moment of submission; a row without it is an unfinished participation\n• ResponseId → the reference used by the answers\nCaution: rows are produced by the participant, they are not entered by hand. Deleting a response also orphans its answers — if the participation must be cancelled, delete the answers together with it." + "Key": "App.Hr.Intranet.SurveyResponse.Description", + "Value": "Survey Response — the participation record. Table: Hr_T_SurveyResponse · tenant scope · list screen; the answers are on the sub-tab.\nUsage: one row per survey/participant pair — who filled it in and when. The answers to the questions are on the Survey Answer sub-tab.\nFields:\n• SurveyId → the survey participated in\n• UserId → the participant; not shown in an anonymous survey\n• SubmissionTime → the moment of submission; a row without it is an unfinished participation\n• ResponseId → the reference used by the answers\nCaution: rows are produced by the participant, they are not entered by hand. Deleting a response also orphans its answers — if the participation must be cancelled, delete the answers together with it." }, { - "Id": "0f89932a-274c-5b49-ae62-4d618cc47859", + "Id": "245bcb81-98c3-5058-b1b9-39f22652e0ba", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyResponse.Description", - "Value": "Anket Yanıtı — katılım kaydı. Tablo: Adm_T_SurveyResponse · tenant kapsamlı · liste ekranı; cevaplar alt sekmededir.\nKullanım: anket/katılımcı çifti başına bir satır — kim ne zaman doldurdu. Sorulara verilen cevaplar Anket Cevabı alt sekmesindedir.\nAlanlar:\n• SurveyId → katılım sağlanan anket\n• UserId → katılımcı; anonim ankette gösterilmez\n• SubmissionTime → gönderim anı; boş olan satır tamamlanmamış katılımdır\n• ResponseId → cevapların referans verdiği değer\nDikkat: satırlar katılımcı tarafından üretilir, elle girilmez. Yanıtı silmek cevaplarını da sahipsiz bırakır — katılımın iptali gerekiyorsa cevaplarıyla birlikte sil." + "Key": "App.Hr.Intranet.SurveyResponse.Description", + "Value": "Anket Yanıtı — katılım kaydı. Tablo: Hr_T_SurveyResponse · tenant kapsamlı · liste ekranı; cevaplar alt sekmededir.\nKullanım: anket/katılımcı çifti başına bir satır — kim ne zaman doldurdu. Sorulara verilen cevaplar Anket Cevabı alt sekmesindedir.\nAlanlar:\n• SurveyId → katılım sağlanan anket\n• UserId → katılımcı; anonim ankette gösterilmez\n• SubmissionTime → gönderim anı; boş olan satır tamamlanmamış katılımdır\n• ResponseId → cevapların referans verdiği değer\nDikkat: satırlar katılımcı tarafından üretilir, elle girilmez. Yanıtı silmek cevaplarını da sahipsiz bırakır — katılımın iptali gerekiyorsa cevaplarıyla birlikte sil." }, { - "Id": "6659f2eb-0e1e-50c1-9170-86d5a082af29", + "Id": "dc36fc2a-8ea6-5f41-a4f6-b29f5f399c12", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyAnswer.Description", - "Value": "Survey Answer — the value given to each question. Table: Adm_T_SurveyAnswer · tenant scope · list screen.\nUsage: this table is the source of survey result reports and pivots; the distribution of answers is calculated over it.\nFields:\n• ResponseId → which participation it belongs to\n• QuestionId → which question it answers\n• Value → the given value: the id/text of the chosen option, the free text or the scale value, depending on the question type\nCaution: because Value holds different formats per question type, always interpret it together with the question type while reporting. Do not edit the answers by hand — the result becomes a data set that does not match the participation." + "Key": "App.Hr.Intranet.SurveyAnswer.Description", + "Value": "Survey Answer — the value given to each question. Table: Hr_T_SurveyAnswer · tenant scope · list screen.\nUsage: this table is the source of survey result reports and pivots; the distribution of answers is calculated over it.\nFields:\n• ResponseId → which participation it belongs to\n• QuestionId → which question it answers\n• Value → the given value: the id/text of the chosen option, the free text or the scale value, depending on the question type\nCaution: because Value holds different formats per question type, always interpret it together with the question type while reporting. Do not edit the answers by hand — the result becomes a data set that does not match the participation." }, { - "Id": "18c6f087-1a5a-5702-9949-e71bc5c6783f", + "Id": "38bcc8c0-8682-54d8-ba60-4fdf3dcd43cf", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SurveyAnswer.Description", - "Value": "Anket Cevabı — her soruya verilen değer. Tablo: Adm_T_SurveyAnswer · tenant kapsamlı · liste ekranı.\nKullanım: anket sonuç raporlarının ve pivotların kaynağı bu tablodur; cevap dağılımı buradan hesaplanır.\nAlanlar:\n• ResponseId → hangi katılıma ait olduğu\n• QuestionId → hangi soruyu cevapladığı\n• Value → verilen değer: soru tipine göre seçilen seçeneğin kimliği/metni, serbest metin ya da ölçek değeri\nDikkat: Value soru tipine göre farklı biçim taşıdığı için raporlarken her zaman soru tipiyle birlikte yorumla. Cevapları elle düzenleme — katılımla uyuşmayan bir veri kümesi ortaya çıkar." + "Key": "App.Hr.Intranet.SurveyAnswer.Description", + "Value": "Anket Cevabı — her soruya verilen değer. Tablo: Hr_T_SurveyAnswer · tenant kapsamlı · liste ekranı.\nKullanım: anket sonuç raporlarının ve pivotların kaynağı bu tablodur; cevap dağılımı buradan hesaplanır.\nAlanlar:\n• ResponseId → hangi katılıma ait olduğu\n• QuestionId → hangi soruyu cevapladığı\n• Value → verilen değer: soru tipine göre seçilen seçeneğin kimliği/metni, serbest metin ya da ölçek değeri\nDikkat: Value soru tipine göre farklı biçim taşıdığı için raporlarken her zaman soru tipiyle birlikte yorumla. Cevapları elle düzenleme — katılımla uyuşmayan bir veri kümesi ortaya çıkar." }, { - "Id": "87e2a5d7-8fa8-527f-9f82-e5a061beb7ec", + "Id": "1fca9c71-fde9-5370-b809-cb79b828169e", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPost.Description", - "Value": "Social Post — the posts of the corporate social feed. Table: Adm_T_SocialPost · tenant scope · list screen (with SocialPollOption, SocialMedia and SocialLocation).\nUsage: the reference for computed columns produced inside a view — IsLiked and IsOwnPost are not stored in the table, they are calculated in the view per current user. When you need a 'did I like it / is it mine' column on a new screen, take this pattern.\nFields:\n• Content → the post text\n• UserId → the author\n• LikeCount → the like count; produced from the like table\n• IsLiked → has the current user liked it; calculated in the view\n• IsOwnPost → is the post the current user's own; the delete/edit buttons are opened by it\n• SocialPostId → the reference used by the sub-records (comment/like)\nSub-tabs: Social Comment and Social Like.\nCaution: as the feed grows, do not load everything — filter by date on the screen. Computed columns are read only; do not try to write into them." + "Key": "App.Hr.Intranet.SocialPost.Description", + "Value": "Social Post — the posts of the corporate social feed. Table: Hr_T_SocialPost · tenant scope · list screen (with SocialPollOption, SocialMedia and SocialLocation).\nUsage: the reference for computed columns produced inside a view — IsLiked and IsOwnPost are not stored in the table, they are calculated in the view per current user. When you need a 'did I like it / is it mine' column on a new screen, take this pattern.\nFields:\n• Content → the post text\n• UserId → the author\n• LikeCount → the like count; produced from the like table\n• IsLiked → has the current user liked it; calculated in the view\n• IsOwnPost → is the post the current user's own; the delete/edit buttons are opened by it\n• SocialPostId → the reference used by the sub-records (comment/like)\nSub-tabs: Social Comment and Social Like.\nCaution: as the feed grows, do not load everything — filter by date on the screen. Computed columns are read only; do not try to write into them." }, { - "Id": "92db1b6c-b4ae-540f-b7e2-9736f6f6f094", + "Id": "f3aba1b6-0089-5ac1-bc81-0d79751ec9ce", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialPost.Description", - "Value": "Sosyal Gönderi — kurum içi sosyal akışın gönderileri. Tablo: Adm_T_SocialPost · tenant kapsamlı · liste ekranı (SocialPollOption, SocialMedia ve SocialLocation tablolarıyla birlikte).\nKullanım: view içinde üretilen hesaplanmış kolonların referansı — IsLiked ve IsOwnPost tabloda saklanmaz, view içinde mevcut kullanıcıya göre hesaplanır. Yeni bir ekranda 'ben beğendim mi / benim mi' kolonu gerektiğinde bu kalıp alınır.\nAlanlar:\n• Content → gönderi metni\n• UserId → gönderiyi yazan kullanıcı\n• LikeCount → beğeni sayısı; beğeni tablosundan üretilir\n• IsLiked → mevcut kullanıcı beğenmiş mi; view içinde hesaplanır\n• IsOwnPost → gönderi mevcut kullanıcıya mı ait; silme/düzenleme butonlarını bu alan açar\n• SocialPostId → alt kayıtların (yorum/beğeni) referans verdiği değer\nAlt sekmeler: Sosyal Yorum ve Sosyal Beğeni.\nDikkat: akış büyüdükçe tamamını yükleme — ekranda tarihe göre süz. Hesaplanmış kolonlar salt okunurdur; içlerine yazmaya çalışma." + "Key": "App.Hr.Intranet.SocialPost.Description", + "Value": "Sosyal Gönderi — kurum içi sosyal akışın gönderileri. Tablo: Hr_T_SocialPost · tenant kapsamlı · liste ekranı (SocialPollOption, SocialMedia ve SocialLocation tablolarıyla birlikte).\nKullanım: view içinde üretilen hesaplanmış kolonların referansı — IsLiked ve IsOwnPost tabloda saklanmaz, view içinde mevcut kullanıcıya göre hesaplanır. Yeni bir ekranda 'ben beğendim mi / benim mi' kolonu gerektiğinde bu kalıp alınır.\nAlanlar:\n• Content → gönderi metni\n• UserId → gönderiyi yazan kullanıcı\n• LikeCount → beğeni sayısı; beğeni tablosundan üretilir\n• IsLiked → mevcut kullanıcı beğenmiş mi; view içinde hesaplanır\n• IsOwnPost → gönderi mevcut kullanıcıya mı ait; silme/düzenleme butonlarını bu alan açar\n• SocialPostId → alt kayıtların (yorum/beğeni) referans verdiği değer\nAlt sekmeler: Sosyal Yorum ve Sosyal Beğeni.\nDikkat: akış büyüdükçe tamamını yükleme — ekranda tarihe göre süz. Hesaplanmış kolonlar salt okunurdur; içlerine yazmaya çalışma." }, { - "Id": "834bd571-ea66-5c69-a26e-e7eb9797c889", + "Id": "3c0d8cc0-022d-5a96-b054-cc2f41988a9c", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialComment.Description", - "Value": "Social Comment — the comments written under posts. Table: Adm_T_SocialComment · tenant scope · list screen.\nUsage: comments are followed and moderated from here; the rows are produced by the feed screen.\nFields:\n• SocialPostId → the post the comment belongs to\n• Content → the comment text\nCaution: the comment count is calculated over this table; deleting a row also changes the count shown on the post." + "Key": "App.Hr.Intranet.SocialComment.Description", + "Value": "Social Comment — the comments written under posts. Table: Hr_T_SocialComment · tenant scope · list screen.\nUsage: comments are followed and moderated from here; the rows are produced by the feed screen.\nFields:\n• SocialPostId → the post the comment belongs to\n• Content → the comment text\nCaution: the comment count is calculated over this table; deleting a row also changes the count shown on the post." }, { - "Id": "18720f6d-dc65-5df2-b983-d3b7a3dcf15e", + "Id": "465b1312-5d36-5126-b8de-348968edf96e", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialComment.Description", - "Value": "Sosyal Yorum — gönderi altına yazılan yorumlar. Tablo: Adm_T_SocialComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve denetlenir; satırlar akış ekranı tarafından üretilir.\nAlanlar:\n• SocialPostId → yorumun ait olduğu gönderi\n• Content → yorum metni\nDikkat: yorum sayısı bu tablo üzerinden hesaplanır; satır silmek gönderide görünen sayıyı da değiştirir." + "Key": "App.Hr.Intranet.SocialComment.Description", + "Value": "Sosyal Yorum — gönderi altına yazılan yorumlar. Tablo: Hr_T_SocialComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve denetlenir; satırlar akış ekranı tarafından üretilir.\nAlanlar:\n• SocialPostId → yorumun ait olduğu gönderi\n• Content → yorum metni\nDikkat: yorum sayısı bu tablo üzerinden hesaplanır; satır silmek gönderide görünen sayıyı da değiştirir." }, { - "Id": "be3caa58-29af-5cc8-a833-94b45a300366", + "Id": "47b17a54-35be-5aeb-aa1d-589e806492ac", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.SocialLike.Description", - "Value": "Social Like — the like records of posts. Table: Adm_T_SocialLike · tenant scope · list screen.\nUsage: one row per post/user pair. The LikeCount and IsLiked fields of the post are calculated in the view over this table; the screen exists for inspection and cleanup.\nFields:\n• SocialPostId → the liked post\n• UserId → the user who liked it\nCaution: do not add or delete rows by hand — the counter on the feed is produced from this table and manual intervention makes it inconsistent." + "Key": "App.Hr.Intranet.SocialLike.Description", + "Value": "Social Like — the like records of posts. Table: Hr_T_SocialLike · tenant scope · list screen.\nUsage: one row per post/user pair. The LikeCount and IsLiked fields of the post are calculated in the view over this table; the screen exists for inspection and cleanup.\nFields:\n• SocialPostId → the liked post\n• UserId → the user who liked it\nCaution: do not add or delete rows by hand — the counter on the feed is produced from this table and manual intervention makes it inconsistent." }, { - "Id": "5d0e636a-9e39-54c6-980f-ba1e866a0179", + "Id": "da0e4b11-b7c6-54d3-a7fb-678f9056621c", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.SocialLike.Description", - "Value": "Sosyal Beğeni — gönderilerin beğeni kayıtları. Tablo: Adm_T_SocialLike · tenant kapsamlı · liste ekranı.\nKullanım: gönderi/kullanıcı çifti başına bir satır. Gönderinin LikeCount ve IsLiked alanları bu tablo üzerinden view içinde hesaplanır; ekran inceleme ve temizlik içindir.\nAlanlar:\n• SocialPostId → beğenilen gönderi\n• UserId → beğenen kullanıcı\nDikkat: satırları elle ekleme/silme — akıştaki sayaç bu tablodan üretilir, elle müdahale tutarsızlık yaratır." + "Key": "App.Hr.Intranet.SocialLike.Description", + "Value": "Sosyal Beğeni — gönderilerin beğeni kayıtları. Tablo: Hr_T_SocialLike · tenant kapsamlı · liste ekranı.\nKullanım: gönderi/kullanıcı çifti başına bir satır. Gönderinin LikeCount ve IsLiked alanları bu tablo üzerinden view içinde hesaplanır; ekran inceleme ve temizlik içindir.\nAlanlar:\n• SocialPostId → beğenilen gönderi\n• UserId → beğenen kullanıcı\nDikkat: satırları elle ekleme/silme — akıştaki sayaç bu tablodan üretilir, elle müdahale tutarsızlık yaratır." }, { - "Id": "360d9909-7ebf-51cc-841d-1a84746954fc", + "Id": "6d7905ae-e452-5e6e-b1ca-6783e684093d", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventType.Description", - "Value": "Event Type — event types. Table: Adm_T_EventType · tenant scope · list screen.\nUsage: the top level grouping of events (training, meeting, social, ceremony). The type determines the default behaviour and the visual language of the event.\nFields:\n• Name → type name\nCaution: keep the type list short; a detailed breakdown belongs to the category, otherwise filtering becomes unusable." + "Key": "App.Hr.Intranet.Events.EventType.Description", + "Value": "Event Type — event types. Table: Hr_T_EventType · tenant scope · list screen.\nUsage: the top level grouping of events (training, meeting, social, ceremony). The type determines the default behaviour and the visual language of the event.\nFields:\n• Name → type name\nCaution: keep the type list short; a detailed breakdown belongs to the category, otherwise filtering becomes unusable." }, { - "Id": "ca199d57-4f0f-51e8-a6bc-a117d0e6d4a4", + "Id": "9b959ebd-69af-5770-b59d-f79b9ee2ce79", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventType.Description", - "Value": "Etkinlik Türü — etkinlik türleri. Tablo: Adm_T_EventType · tenant kapsamlı · liste ekranı.\nKullanım: etkinliklerin üst seviye gruplaması (eğitim, toplantı, sosyal, tören). Tür, etkinliğin varsayılan davranışını ve görsel dilini belirler.\nAlanlar:\n• Name → tür adı\nDikkat: tür listesini kısa tut; ayrıntılı kırılım kategoriye aittir, aksi hâlde filtreleme kullanılamaz hâle gelir." + "Key": "App.Hr.Intranet.Events.EventType.Description", + "Value": "Etkinlik Türü — etkinlik türleri. Tablo: Hr_T_EventType · tenant kapsamlı · liste ekranı.\nKullanım: etkinliklerin üst seviye gruplaması (eğitim, toplantı, sosyal, tören). Tür, etkinliğin varsayılan davranışını ve görsel dilini belirler.\nAlanlar:\n• Name → tür adı\nDikkat: tür listesini kısa tut; ayrıntılı kırılım kategoriye aittir, aksi hâlde filtreleme kullanılamaz hâle gelir." }, { - "Id": "e185851f-a9a2-5b63-8e58-128c021fe304", + "Id": "ed343d03-1caa-588b-9d95-22e277ad9577", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventCategory.Description", - "Value": "Event Category — event categories. Table: Adm_T_EventCategory · tenant scope · list screen.\nUsage: the second level of classification within an event type; used for filtering, reporting and colouring in the calendar view.\nFields:\n• Name → category name\nCaution: the type/category pair should be meaningful together — a category not matching the type of the event makes the reports misleading." + "Key": "App.Hr.Intranet.Events.EventCategory.Description", + "Value": "Event Category — event categories. Table: Hr_T_EventCategory · tenant scope · list screen.\nUsage: the second level of classification within an event type; used for filtering, reporting and colouring in the calendar view.\nFields:\n• Name → category name\nCaution: the type/category pair should be meaningful together — a category not matching the type of the event makes the reports misleading." }, { - "Id": "79d95701-50fe-53fc-bdaf-7b55b95fdbf4", + "Id": "6d85f760-b00a-5f4d-860f-5a3d60498d7a", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventCategory.Description", - "Value": "Etkinlik Kategorisi — etkinlik kategorileri. Tablo: Adm_T_EventCategory · tenant kapsamlı · liste ekranı.\nKullanım: etkinlik türü içindeki ikinci seviye sınıflandırma; filtreleme, raporlama ve takvim görünümünde renklendirme için kullanılır.\nAlanlar:\n• Name → kategori adı\nDikkat: tür/kategori çifti birlikte anlamlı olmalıdır — etkinliğin türüne uymayan kategori raporları yanıltır." + "Key": "App.Hr.Intranet.Events.EventCategory.Description", + "Value": "Etkinlik Kategorisi — etkinlik kategorileri. Tablo: Hr_T_EventCategory · tenant kapsamlı · liste ekranı.\nKullanım: etkinlik türü içindeki ikinci seviye sınıflandırma; filtreleme, raporlama ve takvim görünümünde renklendirme için kullanılır.\nAlanlar:\n• Name → kategori adı\nDikkat: tür/kategori çifti birlikte anlamlı olmalıdır — etkinliğin türüne uymayan kategori raporları yanıltır." }, { - "Id": "607a4a0a-f43e-5669-906a-680034f2ccd5", + "Id": "ef5d0812-34b2-5479-b487-5023233b1ba6", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.Event.Description", - "Value": "Event — corporate events. Table: Adm_T_Event · tenant scope · list screen (with EventPhoto, EventLike and EventComment).\nUsage: the pattern for a record that carries images and counters; the announcement, participation and post-event photo album flow is managed on one screen.\nFields:\n• Name, Description → the name and the detail of the event\n• TypeId, CategoryId → the type and category; the lookups come from the Event Type and Event Category screens\n• Date, Place → when and where it takes place\n• Status → the state of the event (planned, happened, cancelled)\n• ParticipantsCount → the number of participants\n• Likes, Photos → the like and photo counts; produced from the related tables\n• UserId → who created the event\n• EventId → the reference used by the sub-records\nSub-tabs: Event Comment and Event Like.\nTip: for a calendar view use the scheduler layout — the reference is Administration › Agenda.\nCaution: do not delete a cancelled event, change its status — the participation records and the interaction history stay bound to it." + "Key": "App.Hr.Intranet.Events.Event.Description", + "Value": "Event — corporate events. Table: Hr_T_Event · tenant scope · list screen (with EventPhoto, EventLike and EventComment).\nUsage: the pattern for a record that carries images and counters; the announcement, participation and post-event photo album flow is managed on one screen.\nFields:\n• Name, Description → the name and the detail of the event\n• TypeId, CategoryId → the type and category; the lookups come from the Event Type and Event Category screens\n• Date, Place → when and where it takes place\n• Status → the state of the event (planned, happened, cancelled)\n• ParticipantsCount → the number of participants\n• Likes, Photos → the like and photo counts; produced from the related tables\n• UserId → who created the event\n• EventId → the reference used by the sub-records\nSub-tabs: Event Comment and Event Like.\nTip: for a calendar view use the scheduler layout — the reference is Administration › Agenda.\nCaution: do not delete a cancelled event, change its status — the participation records and the interaction history stay bound to it." }, { - "Id": "c30bc914-3f87-5f7c-acd0-9a33296e6820", + "Id": "dcd43c80-994d-5b31-b5b2-01aa1b52753c", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.Event.Description", - "Value": "Etkinlik — kurum içi etkinlikler. Tablo: Adm_T_Event · tenant kapsamlı · liste ekranı (EventPhoto, EventLike ve EventComment tablolarıyla birlikte).\nKullanım: görsel ve sayaç taşıyan kayıt kalıbı; duyuru, katılım ve etkinlik sonrası fotoğraf albümü akışı tek ekrandan yönetilir.\nAlanlar:\n• Name, Description → etkinliğin adı ve ayrıntısı\n• TypeId, CategoryId → tür ve kategori; lookup'lar Etkinlik Türü ve Etkinlik Kategorisi ekranlarından gelir\n• Date, Place → ne zaman ve nerede yapılacağı\n• Status → etkinliğin durumu (planlandı, gerçekleşti, iptal)\n• ParticipantsCount → katılımcı sayısı\n• Likes, Photos → beğeni ve fotoğraf sayıları; ilgili tablolardan üretilir\n• UserId → etkinliği oluşturan kullanıcı\n• EventId → alt kayıtların referans verdiği değer\nAlt sekmeler: Etkinlik Yorumu ve Etkinlik Beğenisi.\nİpucu: takvim görünümü için scheduler düzeni kullanılır — referansı Administration › Ajanda ekranıdır.\nDikkat: iptal edilen etkinliği silme, durumunu değiştir — katılım kayıtları ve etkileşim geçmişi ona bağlı kalır." + "Key": "App.Hr.Intranet.Events.Event.Description", + "Value": "Etkinlik — kurum içi etkinlikler. Tablo: Hr_T_Event · tenant kapsamlı · liste ekranı (EventPhoto, EventLike ve EventComment tablolarıyla birlikte).\nKullanım: görsel ve sayaç taşıyan kayıt kalıbı; duyuru, katılım ve etkinlik sonrası fotoğraf albümü akışı tek ekrandan yönetilir.\nAlanlar:\n• Name, Description → etkinliğin adı ve ayrıntısı\n• TypeId, CategoryId → tür ve kategori; lookup'lar Etkinlik Türü ve Etkinlik Kategorisi ekranlarından gelir\n• Date, Place → ne zaman ve nerede yapılacağı\n• Status → etkinliğin durumu (planlandı, gerçekleşti, iptal)\n• ParticipantsCount → katılımcı sayısı\n• Likes, Photos → beğeni ve fotoğraf sayıları; ilgili tablolardan üretilir\n• UserId → etkinliği oluşturan kullanıcı\n• EventId → alt kayıtların referans verdiği değer\nAlt sekmeler: Etkinlik Yorumu ve Etkinlik Beğenisi.\nİpucu: takvim görünümü için scheduler düzeni kullanılır — referansı Administration › Ajanda ekranıdır.\nDikkat: iptal edilen etkinliği silme, durumunu değiştir — katılım kayıtları ve etkileşim geçmişi ona bağlı kalır." }, { - "Id": "3106a912-f798-5f76-a011-e5b8e73e6cff", + "Id": "30f033d8-7b7d-59ba-8233-4e82fa89cf47", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventLike.Description", - "Value": "Event Like — the like records of events. Table: Adm_T_EventLike · tenant scope · list screen.\nUsage: one row per event/user pair; the Likes counter of the event is calculated over this table. The rows are produced by the event screen.\nFields:\n• EventId → the liked event\n• UserId → the user who liked it\nCaution: manual rows corrupt the counter; use the screen only for inspection and cleanup." + "Key": "App.Hr.Intranet.Events.EventLike.Description", + "Value": "Event Like — the like records of events. Table: Hr_T_EventLike · tenant scope · list screen.\nUsage: one row per event/user pair; the Likes counter of the event is calculated over this table. The rows are produced by the event screen.\nFields:\n• EventId → the liked event\n• UserId → the user who liked it\nCaution: manual rows corrupt the counter; use the screen only for inspection and cleanup." }, { - "Id": "2f0bcad8-d8da-5fd7-b2de-b4d1af8804ee", + "Id": "9ee9e544-3626-5371-b3a2-ad69316694f8", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventLike.Description", - "Value": "Etkinlik Beğenisi — etkinliklerin beğeni kayıtları. Tablo: Adm_T_EventLike · tenant kapsamlı · liste ekranı.\nKullanım: etkinlik/kullanıcı çifti başına bir satır; etkinliğin Likes sayacı bu tablo üzerinden hesaplanır. Satırlar etkinlik ekranı tarafından üretilir.\nAlanlar:\n• EventId → beğenilen etkinlik\n• UserId → beğenen kullanıcı\nDikkat: elle eklenen satır sayacı bozar; ekranı yalnızca inceleme ve temizlik için kullan." + "Key": "App.Hr.Intranet.Events.EventLike.Description", + "Value": "Etkinlik Beğenisi — etkinliklerin beğeni kayıtları. Tablo: Hr_T_EventLike · tenant kapsamlı · liste ekranı.\nKullanım: etkinlik/kullanıcı çifti başına bir satır; etkinliğin Likes sayacı bu tablo üzerinden hesaplanır. Satırlar etkinlik ekranı tarafından üretilir.\nAlanlar:\n• EventId → beğenilen etkinlik\n• UserId → beğenen kullanıcı\nDikkat: elle eklenen satır sayacı bozar; ekranı yalnızca inceleme ve temizlik için kullan." }, { - "Id": "37323018-a3cc-51a6-b707-9b29e611e820", + "Id": "e3f32b69-f3c9-5c1f-9cd9-9bb25cd2dc39", "CultureName": "en", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventComment.Description", - "Value": "Event Comment — the comments written under events. Table: Adm_T_EventComment · tenant scope · list screen.\nUsage: comments are followed and moderated from here; the rows are produced by the event screen.\nFields:\n• EventId → the event the comment belongs to\n• UserId → the author of the comment\n• Content → the comment text\nCaution: comments written after the event are the feedback record — do not clean them up as noise; they are the input for the next event." + "Key": "App.Hr.Intranet.Events.EventComment.Description", + "Value": "Event Comment — the comments written under events. Table: Hr_T_EventComment · tenant scope · list screen.\nUsage: comments are followed and moderated from here; the rows are produced by the event screen.\nFields:\n• EventId → the event the comment belongs to\n• UserId → the author of the comment\n• Content → the comment text\nCaution: comments written after the event are the feedback record — do not clean them up as noise; they are the input for the next event." }, { - "Id": "f5ebe8c0-a345-553b-abd7-1c4f8f9d2d11", + "Id": "f4a23894-7091-5c41-8847-8769a69e4528", "CultureName": "tr", "ResourceName": "Platform", - "Key": "App.Intranet.Events.EventComment.Description", - "Value": "Etkinlik Yorumu — etkinlik altına yazılan yorumlar. Tablo: Adm_T_EventComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve denetlenir; satırlar etkinlik ekranı tarafından üretilir.\nAlanlar:\n• EventId → yorumun ait olduğu etkinlik\n• UserId → yorumu yazan kullanıcı\n• Content → yorum metni\nDikkat: etkinlik sonrası yazılan yorumlar geri bildirim kaydıdır — gürültü diye temizleme; bir sonraki etkinliğin girdisidir." + "Key": "App.Hr.Intranet.Events.EventComment.Description", + "Value": "Etkinlik Yorumu — etkinlik altına yazılan yorumlar. Tablo: Hr_T_EventComment · tenant kapsamlı · liste ekranı.\nKullanım: yorumlar buradan takip edilir ve denetlenir; satırlar etkinlik ekranı tarafından üretilir.\nAlanlar:\n• EventId → yorumun ait olduğu etkinlik\n• UserId → yorumu yazan kullanıcı\n• Content → yorum metni\nDikkat: etkinlik sonrası yazılan yorumlar geri bildirim kaydıdır — gürültü diye temizleme; bir sonraki etkinliğin girdisidir." }, { "Id": "2d678f33-8706-5fed-8f65-14e4ee990a02", @@ -68343,14 +68315,14 @@ "CultureName": "en", "ResourceName": "Platform", "Key": "App.DeveloperKit.IntranetWidgets.Description", - "Value": "Intranet Widgets — the widgets published on the intranet dashboard. Table: Adm_T_IntranetWidget · tenant scope (IsTenant = true) · list screen.\nUsage: which widget appears on the dashboard, in which column, in which order and with which permission is decided here. A widget coded into the application is published by adding a record whose Code matches the code registration; a component produced in the Component Manager is published by choosing it in ComponentName.\nFields:\n• Code → the unique key of the widget; for a builtin widget it is the registration key in the code\n• Name → the name shown on this screen\n• SourceType → Builtin (coded into the application) or Custom (a custom component)\n• ComponentName → the custom component to render; only for SourceType = Custom\n• Column, Order → where on the dashboard and in which order it is placed\n• LabelKey → the language key of the title shown on the dashboard\n• PermissionName → the permission required to see the widget; a widget left empty is open to every logged in user\n• Props → the props passed to the custom component, as a JSON object\n• IsActive → an inactive widget is not sent to the dashboard\nCaution: the Code of a builtin widget must match the registration in the code; a record with no counterpart renders nothing. The user's own layout (design mode) is kept per user — Reset returns to the order defined here." + "Value": "Intranet Widgets — the widgets published on the intranet dashboard. Table: Sas_T_IntranetWidget · tenant scope (IsTenant = true) · list screen.\nUsage: which widget appears on the dashboard, in which column, in which order and with which permission is decided here. A widget coded into the application is published by adding a record whose Code matches the code registration; a component produced in the Component Manager is published by choosing it in ComponentName.\nFields:\n• Code → the unique key of the widget; for a builtin widget it is the registration key in the code\n• Name → the name shown on this screen\n• SourceType → Builtin (coded into the application) or Custom (a custom component)\n• ComponentName → the custom component to render; only for SourceType = Custom\n• Column, Order → where on the dashboard and in which order it is placed\n• LabelKey → the language key of the title shown on the dashboard\n• PermissionName → the permission required to see the widget; a widget left empty is open to every logged in user\n• Props → the props passed to the custom component, as a JSON object\n• IsActive → an inactive widget is not sent to the dashboard\nCaution: the Code of a builtin widget must match the registration in the code; a record with no counterpart renders nothing. The user's own layout (design mode) is kept per user — Reset returns to the order defined here." }, { "Id": "b4dce392-68c4-5b80-8392-c3e95e03188c", "CultureName": "tr", "ResourceName": "Platform", "Key": "App.DeveloperKit.IntranetWidgets.Description", - "Value": "Intranet Widget'ları — intranet dashboard'ında yayınlanan widget'lar. Tablo: Adm_T_IntranetWidget · tenant kapsamlı (IsTenant = true) · liste ekranı.\nKullanım: dashboard'da hangi widget'ın, hangi kolonda, hangi sırada ve hangi yetkiyle görüneceği buradan belirlenir. Uygulamaya kodlanmış bir widget, Code alanı koddaki kayıtla eşleşen bir satır eklenerek yayınlanır; Component Manager'da üretilmiş bir bileşen ise ComponentName alanından seçilerek yayınlanır.\nAlanlar:\n• Code → widget'ın tekil anahtarı; builtin widget'ta koddaki kayıt anahtarıdır\n• Name → bu ekranda görünen ad\n• SourceType → Builtin (uygulamaya kodlanmış) veya Custom (özel bileşen)\n• ComponentName → basılacak özel bileşen; yalnızca SourceType = Custom için\n• Column, Order → dashboard'da hangi kolona ve hangi sıraya yerleşeceği\n• LabelKey → dashboard'da gösterilen başlığın dil anahtarı\n• PermissionName → widget'ı görmek için gereken yetki; boş bırakılan widget oturum açmış herkese açıktır\n• Props → özel bileşene geçilecek prop'lar; JSON nesnesi\n• IsActive → pasif widget dashboard'a gönderilmez\nDikkat: builtin widget'ın Code değeri koddaki kayıtla birebir aynı olmalıdır; karşılığı olmayan kayıt hiçbir şey basmaz. Kullanıcının kendi yerleşimi (tasarım modu) kullanıcı bazında tutulur — Reset buradaki sıraya döner." + "Value": "Intranet Widget'ları — intranet dashboard'ında yayınlanan widget'lar. Tablo: Sas_T_IntranetWidget · tenant kapsamlı (IsTenant = true) · liste ekranı.\nKullanım: dashboard'da hangi widget'ın, hangi kolonda, hangi sırada ve hangi yetkiyle görüneceği buradan belirlenir. Uygulamaya kodlanmış bir widget, Code alanı koddaki kayıtla eşleşen bir satır eklenerek yayınlanır; Component Manager'da üretilmiş bir bileşen ise ComponentName alanından seçilerek yayınlanır.\nAlanlar:\n• Code → widget'ın tekil anahtarı; builtin widget'ta koddaki kayıt anahtarıdır\n• Name → bu ekranda görünen ad\n• SourceType → Builtin (uygulamaya kodlanmış) veya Custom (özel bileşen)\n• ComponentName → basılacak özel bileşen; yalnızca SourceType = Custom için\n• Column, Order → dashboard'da hangi kolona ve hangi sıraya yerleşeceği\n• LabelKey → dashboard'da gösterilen başlığın dil anahtarı\n• PermissionName → widget'ı görmek için gereken yetki; boş bırakılan widget oturum açmış herkese açıktır\n• Props → özel bileşene geçilecek prop'lar; JSON nesnesi\n• IsActive → pasif widget dashboard'a gönderilmez\nDikkat: builtin widget'ın Code değeri koddaki kayıtla birebir aynı olmalıdır; karşılığı olmayan kayıt hiçbir şey basmaz. Kullanıcının kendi yerleşimi (tasarım modu) kullanıcı bazında tutulur — Reset buradaki sıraya döner." }, { "Id": "b6c02876-79fd-5ba3-b3c6-b3467ec9b72c", @@ -75127,6 +75099,1546 @@ "ResourceName": "Platform", "Key": "App.Listform.ListformField.CreatorId", "Value": "Kayıt" + }, + { + "Id": "10bafbfd-8d24-59fd-9e13-344e52c51cfa", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.EducationSkills", + "Value": "Education & Skills" + }, + { + "Id": "fcc2731b-1e13-5076-8e23-b81936b9b4ed", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.EducationSkills", + "Value": "Eğitim ve Yetenekler" + }, + { + "Id": "930f29c5-22b1-5d36-896f-c6704fcbd7a4", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.FamilyEmergency", + "Value": "Family / Emergency" + }, + { + "Id": "2cf596f9-5c81-55a3-b23f-a0be1f54d22f", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.FamilyEmergency", + "Value": "Aile / Acil Durum" + }, + { + "Id": "33675c4e-96c4-5bf8-9fab-562dc3cf03e3", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial", + "Value": "Financial" + }, + { + "Id": "2be88fa0-ea48-5eea-ac63-e0fb198763fe", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial", + "Value": "Finansal" + }, + { + "Id": "371f14a5-b16d-548b-8dc4-0e292315d35b", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.Bank", + "Value": "Bank Information" + }, + { + "Id": "60311d08-44c9-560d-b937-1ae0d207c09e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.Bank", + "Value": "Banka Bilgileri" + }, + { + "Id": "ca2cc0df-9cb5-56fe-b7bf-62322b8821fe", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.InvalidIban", + "Value": "Enter a valid IBAN." + }, + { + "Id": "260f54e7-2a0e-5e15-aac3-6be35cd0397e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.InvalidIban", + "Value": "Geçerli bir IBAN girin." + }, + { + "Id": "e1c3411e-b487-5fb1-87b6-aabd5397a368", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.Salary", + "Value": "Salary Information" + }, + { + "Id": "189d4750-0cb9-557f-affc-227aa42351c8", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Financial.Salary", + "Value": "Ücret Bilgileri" + }, + { + "Id": "e13991d8-d6f9-5a00-bf64-b7ae69a080df", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.ProbationPeriodInvalid", + "Value": "The probation end date must be between the hire date and four months after it (two months by law, four with a collective agreement)." + }, + { + "Id": "39ef0c14-6de0-5f6c-aeb4-76454198eae8", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.ProbationPeriodInvalid", + "Value": "Deneme süresi bitişi işe giriş tarihi ile dört ay sonrası arasında olmalıdır (kanunen iki ay, toplu sözleşmeyle dört ay)." + }, + { + "Id": "50fc4968-208c-5d8b-b147-7e0a85dcf933", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.BirthFamily", + "Value": "Birth & Family" + }, + { + "Id": "c16b84e0-5a9f-50c5-ac99-e4648a63995d", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.BirthFamily", + "Value": "Doğum ve Aile" + }, + { + "Id": "4649e862-8ee1-5500-9167-47ec2a05a199", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Communication", + "Value": "Communication" + }, + { + "Id": "fd8074fe-9137-5d05-93ba-13108b005fc8", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Communication", + "Value": "İletişim Kanalları" + }, + { + "Id": "d9188d32-476b-5776-9b97-e3e5b463101f", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Contract", + "Value": "Contract" + }, + { + "Id": "dbc3c451-ae86-5c6d-b851-2f4df106e556", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Contract", + "Value": "Sözleşme" + }, + { + "Id": "4f737df3-141d-56fc-99c8-816acb223a7b", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Disability", + "Value": "Disability" + }, + { + "Id": "d597c3ce-b52f-5c2e-b394-88de19ee33a2", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Disability", + "Value": "Engellilik" + }, + { + "Id": "018fe9dd-d82e-509d-9120-adbfd27f69b7", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.DrivingLicense", + "Value": "Driving License" + }, + { + "Id": "a94a9f80-2645-5d25-bb11-19e8443aa655", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.DrivingLicense", + "Value": "Sürücü Belgesi" + }, + { + "Id": "73530a33-bff0-5657-ba89-a9607426ac84", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.ForeignNational", + "Value": "Foreign National" + }, + { + "Id": "4788d13d-7b16-55a4-97f8-5028eacf58e9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.ForeignNational", + "Value": "Yabancı Uyruklu" + }, + { + "Id": "2cffb7ed-48c6-54ed-99ac-aaf13c4dab32", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.IdentityCard", + "Value": "Identity Card" + }, + { + "Id": "ec7f34fa-c41e-5234-9e75-ea8eecddcafe", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.IdentityCard", + "Value": "Nüfus Cüzdanı" + }, + { + "Id": "64f6d63a-4487-5f83-883d-bf8950d94c53", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Military", + "Value": "Military Service" + }, + { + "Id": "995e3e74-41bb-5206-8c05-2bee8aeff133", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Military", + "Value": "Askerlik" + }, + { + "Id": "44e85e81-ba06-5315-a090-c44d524ab46a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Organization", + "Value": "Organization" + }, + { + "Id": "ed78bd05-76b4-57ff-9522-119aa508c680", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Organization", + "Value": "Organizasyon" + }, + { + "Id": "f502771e-fa78-5b5f-b581-94be5898abdd", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Termination", + "Value": "Termination" + }, + { + "Id": "f21c3774-9b9e-55fc-834d-a6190b8d3eee", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.Section.Termination", + "Value": "İşten Çıkış" + }, + { + "Id": "23aa3bff-6533-5e9c-aa6f-deca6fe2e89d", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ContractEndDate", + "Value": "Contract End Date" + }, + { + "Id": "097ccf57-51fb-5f1f-a368-b33c9ddfffa8", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ContractEndDate", + "Value": "Sözleşme Bitiş Tarihi" + }, + { + "Id": "9aa7e90b-2ab5-5002-9baa-2e3acea67241", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ContractType", + "Value": "Contract Type" + }, + { + "Id": "d25b43f2-2d8a-53a5-ab9a-3ba3c9c25cea", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ContractType", + "Value": "Sözleşme Türü" + }, + { + "Id": "f660eff2-84d1-5253-bdba-8e4358d2fceb", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityRate", + "Value": "Disability Rate (%)" + }, + { + "Id": "2840cc8e-2372-5c84-ba85-fb16ae1557fb", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityRate", + "Value": "Engellilik Oranı (%)" + }, + { + "Id": "4eb58b47-1387-5098-a7ec-b5ed06e6b38a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityReport", + "Value": "Disability Report" + }, + { + "Id": "70dc2a4b-dd92-596e-bfff-987c0b6a2bfe", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityReport", + "Value": "Engellilik Raporu" + }, + { + "Id": "ff7f9538-d51a-5b74-8680-d58ae459304e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityReportTooLarge", + "Value": "The report file cannot be larger than 5 MB." + }, + { + "Id": "d00f7949-9824-51da-a27f-0562c9876928", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DisabilityReportTooLarge", + "Value": "Rapor dosyası 5 MB'tan büyük olamaz." + }, + { + "Id": "9fc1648c-d328-5e41-a73a-2c766cc66b09", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseClass", + "Value": "License Class" + }, + { + "Id": "2999047d-a0ee-5f90-a6af-39ecd421770e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseClass", + "Value": "Ehliyet Sınıfı" + }, + { + "Id": "221dfda6-72dd-5359-970b-ba51fa833e72", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseExpiryDate", + "Value": "Valid Until" + }, + { + "Id": "eed89d41-8521-53cd-aafe-68c9f57f756d", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseExpiryDate", + "Value": "Geçerlilik Tarihi" + }, + { + "Id": "7502419f-71f5-51f9-9734-94ecc5c19ef2", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseIssueDate", + "Value": "Issue Date" + }, + { + "Id": "eed8ae2d-ada3-5cad-93e5-0bdc20571a54", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseIssueDate", + "Value": "Veriliş Tarihi" + }, + { + "Id": "a5a4dcf2-fad7-51ac-8bd9-344f4a64ecda", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseNo", + "Value": "License No" + }, + { + "Id": "6fb27829-9fd0-5cc9-8a68-6420cf96f766", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.DrivingLicenseNo", + "Value": "Ehliyet No" + }, + { + "Id": "29de5260-2741-555d-b750-9bc7dab54c6f", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.EmploymentType", + "Value": "Employment Type" + }, + { + "Id": "60b2daf8-b815-5fc0-b6af-b3622149c674", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.EmploymentType", + "Value": "Çalışma Şekli" + }, + { + "Id": "90642a78-0eab-597e-88c0-0143a4a6a87b", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.GrossSalary", + "Value": "Gross Salary" + }, + { + "Id": "e3a09cb8-c5b9-50d0-8007-50240d8c4c17", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.GrossSalary", + "Value": "Brüt Ücret" + }, + { + "Id": "d91cade3-5886-50f1-bbd5-93fd4af6c755", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.IsDisabled", + "Value": "Disabled" + }, + { + "Id": "91ded1ad-68f7-53c8-a966-a8e2cb6f67f9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.IsDisabled", + "Value": "Engelli" + }, + { + "Id": "285d1ad4-71e7-5f66-af06-1478ff789c8a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.MilitaryPostponeEndDate", + "Value": "Postponement End Date" + }, + { + "Id": "7cc2b001-1f62-5b63-af87-ef6839b88379", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.MilitaryPostponeEndDate", + "Value": "Tecil Bitiş Tarihi" + }, + { + "Id": "fe1e8f06-3ab5-5a94-84cb-3b17b08ea2e9", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.MilitaryStatus", + "Value": "Military Status" + }, + { + "Id": "5f80ac7b-6434-5a98-a4d3-e39d2770f3ed", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.MilitaryStatus", + "Value": "Askerlik Durumu" + }, + { + "Id": "86dd2484-c933-5683-ad3f-d2a583632418", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PassportExpiryDate", + "Value": "Passport Valid Until" + }, + { + "Id": "5f0c10e9-8149-5def-854f-4cb369a2e2b4", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PassportExpiryDate", + "Value": "Pasaport Geçerlilik Tarihi" + }, + { + "Id": "cb496141-dc12-5bc7-a9ea-21ef472d54c3", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PassportNo", + "Value": "Passport No" + }, + { + "Id": "f41cb281-8bac-5345-b12f-eb85dc109863", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PassportNo", + "Value": "Pasaport No" + }, + { + "Id": "12ade388-1a64-5612-b30d-9491047a9098", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PdksCardNo", + "Value": "Time Attendance Card No" + }, + { + "Id": "1df59483-9da0-5b35-b34c-472e791cd376", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.PdksCardNo", + "Value": "PDKS Kart No" + }, + { + "Id": "d1ad28b3-b829-5494-b9bc-213dfebd6abf", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ProbationEndDate", + "Value": "Probation End Date" + }, + { + "Id": "37affaa5-49b5-58ae-b2bc-a5bfaef31dc0", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ProbationEndDate", + "Value": "Deneme Süresi Bitişi" + }, + { + "Id": "5e7ec9f5-6636-5041-b739-7d4e80d1065a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.RegistrationNo", + "Value": "Employee No" + }, + { + "Id": "1aa93823-6170-5676-87a5-02470aaae0d4", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.RegistrationNo", + "Value": "Sicil No" + }, + { + "Id": "18d00123-cb3c-59fe-9cc2-025ecc527c69", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SalaryType", + "Value": "Salary Type" + }, + { + "Id": "f9a6a07c-5548-5a9f-af15-5f4be538ca99", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SalaryType", + "Value": "Ücret Tipi" + }, + { + "Id": "c64ad798-e954-57c6-a864-41f60d5905c5", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SecondaryEmail", + "Value": "Secondary Email" + }, + { + "Id": "524aece6-7cb4-52ab-80f0-65f10b40da42", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SecondaryEmail", + "Value": "İkinci E-posta" + }, + { + "Id": "5a9a6eec-da13-595e-b875-ec17197ed0de", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SecondaryPhoneNumber", + "Value": "Secondary Phone Number" + }, + { + "Id": "a1420b82-ca71-5649-9cc7-3945cef242fd", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SecondaryPhoneNumber", + "Value": "İkinci Telefon" + }, + { + "Id": "baaf3c35-41e7-55e6-8961-25fda6406cd1", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SeniorityStartDate", + "Value": "Seniority Start Date" + }, + { + "Id": "cca1bd6e-3387-5b01-9862-d9d7ffe53730", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.SeniorityStartDate", + "Value": "Kıdem Başlangıç Tarihi" + }, + { + "Id": "ceca21f1-21c2-505a-a9cb-688fd1835a01", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ShiftId", + "Value": "Shift Group" + }, + { + "Id": "dd81e2d0-fd59-5e98-bfdf-d90bc58de8a4", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.ShiftId", + "Value": "Vardiya Grubu" + }, + { + "Id": "4a841110-d628-5b1c-8727-e824c4ee6fcd", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.TerminationNote", + "Value": "Termination Note" + }, + { + "Id": "5a6bd0a7-8ed9-549c-b67a-636a1f3bde33", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.TerminationNote", + "Value": "Çıkış Açıklaması" + }, + { + "Id": "d2fab6a7-9025-55d5-81ce-677221e5d923", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.TerminationReasonId", + "Value": "Termination Reason (SGK Code)" + }, + { + "Id": "8e84b5a0-bf7e-54b8-9b31-f01b1b05feb5", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.TerminationReasonId", + "Value": "Çıkış Nedeni (SGK Kodu)" + }, + { + "Id": "ca0c13d1-8932-566f-b3f1-709ffdcb668e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.UploadReport", + "Value": "Upload" + }, + { + "Id": "306745bb-0562-563e-b363-701cdb4d558d", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.UploadReport", + "Value": "Yükle" + }, + { + "Id": "2f88b5f3-4084-5ab2-9ff7-44f0e36cd925", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.WorkPermitEndDate", + "Value": "Work Permit End Date" + }, + { + "Id": "5b88dccc-0438-562b-b2e4-f02362c21196", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.WorkPermitEndDate", + "Value": "Çalışma İzni Bitiş Tarihi" + }, + { + "Id": "0e8e567e-59c1-5b29-b1dd-5e5f44d4e281", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.WorkPermitNo", + "Value": "Work Permit No" + }, + { + "Id": "6d46dac9-0dd1-5ad2-be3d-fdedb6c5e5f5", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "Abp.Identity.User.UserInformation.WorkPermitNo", + "Value": "Çalışma İzni No" + }, + { + "Id": "7e25e378-bf8b-5eb3-ac36-9df785add139", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Definitions.TerminationReason", + "Value": "Termination Reasons (SGK)" + }, + { + "Id": "f3b2a802-6cce-5248-ac84-f2c7569ef9d2", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Definitions.TerminationReason", + "Value": "İşten Çıkış Nedenleri (SGK)" + }, + { + "Id": "95fbb47b-3ffc-5389-acb6-3f17f9e12f98", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Definitions.TerminationReason.Description", + "Value": "SGK employment termination codes" + }, + { + "Id": "650a591a-7c60-54b2-8e02-49276e2de81e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Definitions.TerminationReason.Description", + "Value": "SGK işten çıkış kodları" + }, + { + "Id": "5dc9fdd5-7b7c-517c-b3e8-a4c4451fbdbb", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserBenefit", + "Value": "Benefits" + }, + { + "Id": "64e19049-6d2e-50c6-9441-aef916ee362e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserBenefit", + "Value": "Yan Haklar" + }, + { + "Id": "ce128ba0-9484-5f57-bbc2-3dd759b1b54e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserBenefit.Description", + "Value": "Benefits granted to the employee" + }, + { + "Id": "e6e22647-f49a-5490-8b62-f0f6fd4a9cc2", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserBenefit.Description", + "Value": "Çalışana tanınan yan haklar" + }, + { + "Id": "0bebd3aa-fb3f-510a-b210-f3f7035521c3", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserCertificate", + "Value": "Qualification Certificates" + }, + { + "Id": "ac8b2a35-c07e-50e1-b771-c0d4b26b58fa", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserCertificate", + "Value": "Yeterlilik Belgeleri" + }, + { + "Id": "c82dce70-7f4d-50c8-a83b-0d4db18e4f96", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserCertificate.Description", + "Value": "Professional qualification certificates of the employee" + }, + { + "Id": "ac76b1d4-313a-5c24-ab4d-143f99c9efdd", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserCertificate.Description", + "Value": "Çalışanın mesleki yeterlilik belgeleri" + }, + { + "Id": "1d382b7a-f2ca-5567-8bdd-da661fcebc1f", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEducation", + "Value": "Education History" + }, + { + "Id": "73b99e80-64fb-59bd-adac-83bf9cd742c7", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEducation", + "Value": "Eğitim Geçmişi" + }, + { + "Id": "e8a03d52-8afa-5997-8586-66dd83fc7ef0", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEducation.Description", + "Value": "Schools the employee attended" + }, + { + "Id": "a1a4262b-a065-57e9-a031-940d1a03fba7", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEducation.Description", + "Value": "Çalışanın okuduğu okullar" + }, + { + "Id": "10f05eab-31a9-5775-906f-2330d1a5b51e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEmergencyContact", + "Value": "Emergency Contacts" + }, + { + "Id": "98272d79-448c-58cf-b5f2-42b538b531ac", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEmergencyContact", + "Value": "Acil Durum Kişileri" + }, + { + "Id": "baea2021-5bc3-55b1-b98c-61e01e85a489", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEmergencyContact.Description", + "Value": "People to call in an emergency" + }, + { + "Id": "44677ccf-6d65-5db6-8760-eeff418088b9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserEmergencyContact.Description", + "Value": "Acil durumda aranacak kişiler" + }, + { + "Id": "2ef7334b-4e71-5452-83e6-bd2972588f9c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserFamilyMember", + "Value": "Spouse & Children" + }, + { + "Id": "f4f07be8-6808-50c9-843a-372cb044c406", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserFamilyMember", + "Value": "Eş ve Çocuklar" + }, + { + "Id": "4390ad25-9381-558b-872f-19d82deca192", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserFamilyMember.Description", + "Value": "Spouse and children of the employee" + }, + { + "Id": "13d6fffb-0331-5a5b-ab3c-64b3648fad21", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserFamilyMember.Description", + "Value": "Çalışanın eşi ve çocukları" + }, + { + "Id": "077d60f4-b75d-5c8c-b5b3-86e7dfe7fd2e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserLanguage", + "Value": "Foreign Languages" + }, + { + "Id": "4833c9ca-68ac-55d2-b727-3fe40c6a211f", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserLanguage", + "Value": "Yabancı Diller" + }, + { + "Id": "99d224e5-f3c7-5f5b-8ded-fb106c080d61", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserLanguage.Description", + "Value": "Foreign languages of the employee and their levels" + }, + { + "Id": "6acef941-be81-528d-8324-f58d49733e26", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserLanguage.Description", + "Value": "Çalışanın yabancı dilleri ve seviyeleri" + }, + { + "Id": "2f56ab02-e8e8-52fa-9001-2bf80b8262dc", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserSkill", + "Value": "Skills" + }, + { + "Id": "57552f2f-5388-5958-a693-e9c14ad4662d", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserSkill", + "Value": "Yetenekler" + }, + { + "Id": "7ac706d3-0c1d-5c98-b25a-c1fcd7ae4723", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserSkill.Description", + "Value": "Skills of the employee on a 1-5 scale" + }, + { + "Id": "e39ae8bb-88bd-535c-ad99-3f177be33d1a", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.IdentityManagement.UserSkill.Description", + "Value": "Çalışanın 1-5 ölçeğinde yetenekleri" + }, + { + "Id": "ba6c5c63-9dfa-58fe-88e4-d7152ca33130", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.BenefitType", + "Value": "Benefit Type" + }, + { + "Id": "979cb935-ca6c-50e9-8bd5-00b69bc369bf", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.BenefitType", + "Value": "Yan Hak Türü" + }, + { + "Id": "f23f3334-4b19-50fe-88da-3763b57d8e69", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.CertificateNo", + "Value": "Certificate No" + }, + { + "Id": "fb62ae5d-3d7f-5d12-830b-40313d07cbcb", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.CertificateNo", + "Value": "Belge No" + }, + { + "Id": "34f4ca15-b316-50c7-8a7d-5430820d383e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.EducationLevel", + "Value": "Education Level" + }, + { + "Id": "1dc68fed-7910-59a6-a7cf-d37c0b92cf56", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.EducationLevel", + "Value": "Eğitim Düzeyi" + }, + { + "Id": "f9f4a7f3-f59d-5d52-8829-200b2bbd57db", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.EmploymentStatus", + "Value": "Employment Status" + }, + { + "Id": "81d2aeff-2c8b-5c52-bfdc-7a17014f5252", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.EmploymentStatus", + "Value": "Çalışma Durumu" + }, + { + "Id": "fda18847-22a5-5e2d-8b1b-ae29739293cc", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.GraduationDate", + "Value": "Graduation Date" + }, + { + "Id": "a60d6ceb-14eb-50e4-8f6b-0202cffbf664", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.GraduationDate", + "Value": "Mezuniyet Tarihi" + }, + { + "Id": "47e27fc3-0d63-58ac-8090-946ec511d4d5", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IdentityNumber", + "Value": "Identity Number" + }, + { + "Id": "244d8846-a052-5eda-a622-ef7ebced2d61", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IdentityNumber", + "Value": "TC Kimlik No" + }, + { + "Id": "010ad261-c6fd-55c1-b8b2-5e5157d9591c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsBenefitCovered", + "Value": "Benefit Coverage" + }, + { + "Id": "983ee117-d095-5b72-9a5b-701a0b108956", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsBenefitCovered", + "Value": "Yan Hak Kapsamında" + }, + { + "Id": "f52f712f-b24e-58aa-9b48-2c223cb27bc3", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsGraduated", + "Value": "Graduated" + }, + { + "Id": "2b101b51-5907-5c48-a967-57d9cfe98800", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsGraduated", + "Value": "Mezun" + }, + { + "Id": "8dba196c-d3a3-55ee-afce-8037199d866c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsInsuranceCovered", + "Value": "Insurance Coverage" + }, + { + "Id": "92c17607-e5d4-51d7-a31f-b0ee8bfb2f88", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IsInsuranceCovered", + "Value": "Sigorta Kapsamında" + }, + { + "Id": "2127c520-55b0-5ca6-98fb-c5889ecf7da1", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IssuedBy", + "Value": "Issued By" + }, + { + "Id": "8168f223-1c9d-5aae-969c-215ce62f859a", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.IssuedBy", + "Value": "Veren Kurum" + }, + { + "Id": "13d04b90-94db-592a-b054-8ce56c0a325c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Language", + "Value": "Language" + }, + { + "Id": "c47b95ed-5b17-5dc5-8967-cd76f1e76fd9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Language", + "Value": "Dil" + }, + { + "Id": "2282e21c-7cd2-550e-aa19-49e5302fd529", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Relationship", + "Value": "Relationship" + }, + { + "Id": "0dfe843a-787e-53c1-a9f7-5564a1dada18", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Relationship", + "Value": "Yakınlık" + }, + { + "Id": "87acb7c2-44dd-59a0-9182-62d78db94f12", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.SchoolName", + "Value": "School" + }, + { + "Id": "1bb0c8ba-917b-50e9-81f5-97bf89bbe18b", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.SchoolName", + "Value": "Okul" + }, + { + "Id": "904d75d4-b9fc-5dab-b05d-e3170bf7841a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Skill", + "Value": "Skill" + }, + { + "Id": "5cef9099-12af-55fa-904c-4f02a7f35cb1", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.Skill", + "Value": "Yetenek" + }, + { + "Id": "50b77386-0836-509f-8a8a-93b0ea40b5d6", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.StudyField", + "Value": "Field of Study" + }, + { + "Id": "a4760b2c-86b9-5914-bfeb-71c3a9c57c05", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Listform.ListformField.StudyField", + "Value": "Bölüm" + }, + { + "Id": "901fedbd-a6bb-5d1e-85c3-6884457a5d8e", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.Notifications.ProbationEnding", + "Value": "The probation period of {0} ends on {1}." + }, + { + "Id": "019721c1-29f0-5b11-b657-0ebb8bd287d4", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.Notifications.ProbationEnding", + "Value": "{0} adlı çalışanın deneme süresi {1} tarihinde bitiyor." + }, + { + "Id": "83bf283d-e90e-5476-80fe-69e2d25e72fb", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitHousing", + "Value": "Housing" + }, + { + "Id": "26a936fa-8fd9-5108-b08a-c1d643631263", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitHousing", + "Value": "Lojman / Kira" + }, + { + "Id": "88502d24-924a-51b8-a53a-eadc0932c734", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitMeal", + "Value": "Meal" + }, + { + "Id": "25555761-aa94-58fe-94a9-fe1fac2542be", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitMeal", + "Value": "Yemek" + }, + { + "Id": "ce2367df-7bd6-56ac-a43c-d95f9f2faa37", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitOther", + "Value": "Other" + }, + { + "Id": "9b34f0a5-e898-5a04-a82c-3734d131029f", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitOther", + "Value": "Diğer" + }, + { + "Id": "568a1cf0-61e4-571d-86ba-baf2ae2e5686", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPhone", + "Value": "Phone" + }, + { + "Id": "a9954728-0e9d-5377-a123-819aed1a15b6", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPhone", + "Value": "Telefon" + }, + { + "Id": "a5d0a933-6ee3-5f8c-9229-1f6c914c13e5", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPrivateHealthInsurance", + "Value": "Private Health Insurance" + }, + { + "Id": "e47df5b1-7f35-58c4-8ae9-3372af10314e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPrivateHealthInsurance", + "Value": "Özel Sağlık Sigortası" + }, + { + "Id": "e97ce4b4-dc10-5d6f-9d12-9d7d6133c61d", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPrivatePension", + "Value": "Private Pension" + }, + { + "Id": "887f1264-2348-5dae-bc87-8d8831a22a45", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitPrivatePension", + "Value": "Bireysel Emeklilik (BES)" + }, + { + "Id": "5f937617-28a6-523c-a34b-ed0e8d448614", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitTransportation", + "Value": "Transportation" + }, + { + "Id": "8b43c022-104b-57d8-bd37-73bc688d86f6", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitTransportation", + "Value": "Yol" + }, + { + "Id": "9960d023-18e7-5371-8969-f44cef907bb8", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitVehicle", + "Value": "Company Car" + }, + { + "Id": "13d6ffe9-1ae4-5e84-b5db-512c3bb802d9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.BenefitVehicle", + "Value": "Şirket Aracı" + }, + { + "Id": "f7802d4f-9843-5707-a747-f2a142d9fb64", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Child", + "Value": "Child" + }, + { + "Id": "1e33425e-2c6e-5c47-bba5-2561e5e13ed2", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Child", + "Value": "Çocuk" + }, + { + "Id": "1e8fd1e6-4edf-53a1-b716-a57eab683ddb", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Definite", + "Value": "Fixed-term" + }, + { + "Id": "00fff0bd-a137-582a-a380-addffc088a31", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Definite", + "Value": "Belirli Süreli" + }, + { + "Id": "67adf50b-d22d-5525-928b-6bb9458cefed", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Friend", + "Value": "Friend" + }, + { + "Id": "06b11ac5-0fa2-5863-83e1-1413b4809c38", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Friend", + "Value": "Arkadaş" + }, + { + "Id": "35d7418f-9371-53c0-8ca1-34520686df1c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.FullTime", + "Value": "Full-time" + }, + { + "Id": "0dc709b1-b6a1-5d1a-8217-bba9f34e0ad3", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.FullTime", + "Value": "Tam Zamanlı" + }, + { + "Id": "f091b9bf-2545-5719-9eae-473366b91f25", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Indefinite", + "Value": "Indefinite-term" + }, + { + "Id": "f1701e0e-a4f7-5424-9194-81219142e569", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Indefinite", + "Value": "Belirsiz Süreli" + }, + { + "Id": "c3a68c64-1399-51da-ad10-98962d3b6ff1", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryDone", + "Value": "Completed" + }, + { + "Id": "6e4aeb13-7ba5-5a65-a2c7-12ed66ae76c3", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryDone", + "Value": "Yapıldı" + }, + { + "Id": "d7d469b6-6913-51d7-a49d-dd0e65b8224c", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryExempt", + "Value": "Exempt" + }, + { + "Id": "e5e76ee2-ce34-5886-a3e4-bbd93f5aa42b", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryExempt", + "Value": "Muaf" + }, + { + "Id": "322dd515-47a2-53b6-825c-afbacfd69214", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryNotDone", + "Value": "Not Completed" + }, + { + "Id": "62ae64d6-bdb7-5230-9ae0-dcfd0dc9c8c4", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryNotDone", + "Value": "Yapılmadı" + }, + { + "Id": "f77e82bb-70bf-5c3a-8f03-754975d48dcc", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryPostponed", + "Value": "Postponed" + }, + { + "Id": "c075efe9-3892-55bd-bb4c-b3e8a25fdf02", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.MilitaryPostponed", + "Value": "Tecilli" + }, + { + "Id": "11c3f5d1-67bd-5b10-a140-599f634c2c69", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.NotWorking", + "Value": "Not Working" + }, + { + "Id": "454943cf-9354-56f2-a433-4447bcca9fa9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.NotWorking", + "Value": "Çalışmıyor" + }, + { + "Id": "74cea836-3240-58e9-9aed-883fcfe5a6fa", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Parent", + "Value": "Parent" + }, + { + "Id": "6397523d-d6a7-595c-9f96-a0ebcef0c3cb", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Parent", + "Value": "Anne / Baba" + }, + { + "Id": "6f7a9d2c-0f23-52bf-966c-8034c7a4e2ff", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.PartTime", + "Value": "Part-time" + }, + { + "Id": "17a09e3a-daf7-502c-9803-3389922ecb30", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.PartTime", + "Value": "Yarı Zamanlı" + }, + { + "Id": "10dbe960-292f-5d94-a70b-69f97f387030", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.ProbationReminderWorker", + "Value": "Probation Reminder Worker" + }, + { + "Id": "67c69dfc-8c09-58c0-8465-fcb32f7b44dc", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.ProbationReminderWorker", + "Value": "Deneme Süresi Hatırlatıcı" + }, + { + "Id": "6c179756-063e-59f4-b5e2-6f984a496179", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Relative", + "Value": "Relative" + }, + { + "Id": "ed1fb7a3-f58a-5663-8c2d-c205b1a414e1", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Relative", + "Value": "Akraba" + }, + { + "Id": "0199068c-f309-5934-bc1b-76ae0c5e189a", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Retired", + "Value": "Retired" + }, + { + "Id": "8f2216f5-fd61-526e-b568-cc7ca5d442bf", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Retired", + "Value": "Emekli" + }, + { + "Id": "adb7e529-f239-54e7-9736-abb9a6007096", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Sibling", + "Value": "Sibling" + }, + { + "Id": "b48cc21e-524c-558f-9b15-d379b7bbfd2e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Sibling", + "Value": "Kardeş" + }, + { + "Id": "01c72d30-30df-5c70-932b-4f5a31f7da73", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel1", + "Value": "1 - Beginner" + }, + { + "Id": "454c20c9-cf21-5b7c-8465-dae976cfcc61", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel1", + "Value": "1 - Başlangıç" + }, + { + "Id": "aa901daa-35c9-5c27-b203-ad1a4c147520", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel2", + "Value": "2 - Elementary" + }, + { + "Id": "71af88d4-485f-5586-a763-b51017b979d9", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel2", + "Value": "2 - Temel" + }, + { + "Id": "9b84d56d-aaf3-55ba-a1e7-485c2dcb40ab", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel3", + "Value": "3 - Intermediate" + }, + { + "Id": "7d482033-5849-5a2d-9954-0e42bec0c171", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel3", + "Value": "3 - Orta" + }, + { + "Id": "23cc4716-9340-5cd9-bc83-d6a3d36cc05d", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel4", + "Value": "4 - Advanced" + }, + { + "Id": "cb5f8e21-a5bf-53b8-b574-4db676862b4e", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel4", + "Value": "4 - İleri" + }, + { + "Id": "50a9657a-c688-51bd-aa07-edf7b5fbc911", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel5", + "Value": "5 - Expert" + }, + { + "Id": "30378c9d-0b19-5e75-be61-81c42bd6acb3", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.SkillLevel5", + "Value": "5 - Uzman" + }, + { + "Id": "80fb4602-9ee3-5f35-bdf6-8c3a0adb8838", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Spouse", + "Value": "Spouse" + }, + { + "Id": "915cd32e-d2ac-566a-89b2-f683a831327c", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Spouse", + "Value": "Eş" + }, + { + "Id": "e0e08ff6-d038-5da0-993c-7dc1bf36979d", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Student", + "Value": "Student" + }, + { + "Id": "e5c0c073-f94f-52b1-8231-36c0bb2feabf", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Student", + "Value": "Öğrenci" + }, + { + "Id": "04e1a7e4-afcc-5874-b040-99e4d1742ec3", + "CultureName": "en", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Working", + "Value": "Working" + }, + { + "Id": "3cf1b3b5-603a-5a18-ad36-fa1280d640cf", + "CultureName": "tr", + "ResourceName": "Platform", + "Key": "App.StaticLookup.Working", + "Value": "Çalışıyor" } ] } diff --git a/configs/seeds/host/data/App.Menus.Menu.json b/configs/seeds/host/data/App.Menus.Menu.json index 742cf0e9..9b6aeba5 100644 --- a/configs/seeds/host/data/App.Menus.Menu.json +++ b/configs/seeds/host/data/App.Menus.Menu.json @@ -259,6 +259,21 @@ "ElementId": null, "ModuleId": "Sas" }, + { + "Id": "f1effbfd-7fec-5056-845c-6223010eb2d6", + "Code": "App.Definitions.TerminationReason", + "DisplayName": "App.Definitions.TerminationReason", + "Order": 9, + "Url": "/admin/list/App.Definitions.TerminationReason", + "Icon": "FcExport", + "ParentCode": "App.Saas.Definitions", + "RequiredPermissionName": "App.Definitions.TerminationReason", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Sas" + }, { "Id": "b7c6c711-5b7d-413d-8ae8-530b18a22c2a", "Code": "App.Public", @@ -1039,131 +1054,11 @@ "ElementId": null, "ModuleId": "Adm" }, - { - "Id": "aaef98c6-ab15-4097-9d32-d611db7de57d", - "Code": "App.Administration.Intranet", - "DisplayName": "App.Intranet", - "Order": 7, - "Url": null, - "Icon": "FcConferenceCall", - "ParentCode": "App.Administration", - "RequiredPermissionName": null, - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "5cef6234-ae2d-4963-b7aa-84f58c5d1e8a", - "Code": "App.Intranet.Announcement", - "DisplayName": "App.Intranet.Announcement", - "Order": 1, - "Url": "/admin/list/App.Intranet.Announcement", - "Icon": "FcAdvertising", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Announcement", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "8eea0d26-4da7-4def-8228-bd340b518b29", - "Code": "App.Intranet.Survey", - "DisplayName": "App.Intranet.Survey", - "Order": 2, - "Url": "/admin/list/App.Intranet.Survey", - "Icon": "FcTodoList", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Survey", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "216da72b-e243-4f07-afaa-04a7b79dc977", - "Code": "App.Intranet.SocialPost", - "DisplayName": "App.Intranet.SocialPost", - "Order": 3, - "Url": "/admin/list/App.Intranet.SocialPost", - "Icon": "FcComments", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.SocialPost", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "01246207-7a2e-43cc-82b1-3a475b242926", - "Code": "App.Intranet.Events.EventType", - "DisplayName": "App.Intranet.Events.EventType", - "Order": 4, - "Url": "/admin/list/App.Intranet.Events.EventType", - "Icon": "FcPlanner", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Events.EventType", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "319118e2-1a91-44e2-8f4d-45b7327d4975", - "Code": "App.Intranet.Events.EventCategory", - "DisplayName": "App.Intranet.Events.EventCategory", - "Order": 5, - "Url": "/admin/list/App.Intranet.Events.EventCategory", - "Icon": "FcTreeStructure", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Events.EventCategory", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "7efe2b4b-407d-4bb8-9350-fa89b759111b", - "Code": "App.Intranet.Events.Event", - "DisplayName": "App.Intranet.Events.Event", - "Order": 6, - "Url": "/admin/list/App.Intranet.Events.Event", - "Icon": "FcCalendar", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Events.Event", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, - { - "Id": "9ef2a858-1465-407c-9636-c8802a5119d4", - "Code": "App.Intranet.Document", - "DisplayName": "App.Intranet.Document", - "Order": 7, - "Url": "/admin/intranet-documents", - "Icon": "FcOpenedFolder", - "ParentCode": "App.Administration.Intranet", - "RequiredPermissionName": "App.Intranet.Document", - "CssClass": null, - "Target": null, - "IsDisabled": false, - "ElementId": null, - "ModuleId": "Adm" - }, { "Id": "e599782a-f3bd-4f9e-9750-d23c55460876", "Code": "App.Administration.Restrictions", "DisplayName": "App.Platform.Restrictions", - "Order": 8, + "Order": 7, "Url": null, "Icon": "FaLock", "ParentCode": "App.Administration", @@ -1208,7 +1103,7 @@ "Id": "92c4e9c7-7272-4cf5-934f-9b6c37172942", "Code": "Abp.Identity", "DisplayName": "Abp.Identity", - "Order": 9, + "Order": 8, "Url": null, "Icon": "FcConferenceCall", "ParentCode": "App.Administration", @@ -1343,7 +1238,7 @@ "Id": "d4e11975-a4d9-4444-b742-e7eb651386fb", "Code": "App.Reports.Management", "DisplayName": "App.Reports.Management", - "Order": 10, + "Order": 9, "Url": null, "Icon": "FcDocument", "ParentCode": "App.Administration", @@ -1388,7 +1283,7 @@ "Id": "2df27f03-9f1e-455c-9c0d-05ffccfe9312", "Code": "App.Videoroom", "DisplayName": "App.Videoroom", - "Order": 11, + "Order": 10, "Url": "/admin/videoroom/dashboard", "Icon": "FcVideoCall", "ParentCode": "App.Administration", @@ -1403,7 +1298,7 @@ "Id": "5e5180bf-5b4d-4f3d-9a42-795942600bbf", "Code": "App.Forum", "DisplayName": "App.Forum", - "Order": 12, + "Order": 11, "Url": "/admin/forum", "Icon": "FcLink", "ParentCode": "App.Administration", @@ -1818,6 +1713,126 @@ "IsDisabled": false, "ElementId": null, "ModuleId": "Hr" + }, + { + "Id": "aaef98c6-ab15-4097-9d32-d611db7de57d", + "Code": "App.Hr.Intranet", + "DisplayName": "App.Hr.Intranet", + "Order": 9, + "Url": null, + "Icon": "FcConferenceCall", + "ParentCode": "App.Hr", + "RequiredPermissionName": null, + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "5cef6234-ae2d-4963-b7aa-84f58c5d1e8a", + "Code": "App.Hr.Intranet.Announcement", + "DisplayName": "App.Hr.Intranet.Announcement", + "Order": 1, + "Url": "/admin/list/App.Hr.Intranet.Announcement", + "Icon": "FcAdvertising", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Announcement", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "8eea0d26-4da7-4def-8228-bd340b518b29", + "Code": "App.Hr.Intranet.Survey", + "DisplayName": "App.Hr.Intranet.Survey", + "Order": 2, + "Url": "/admin/list/App.Hr.Intranet.Survey", + "Icon": "FcTodoList", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Survey", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "216da72b-e243-4f07-afaa-04a7b79dc977", + "Code": "App.Hr.Intranet.SocialPost", + "DisplayName": "App.Hr.Intranet.SocialPost", + "Order": 3, + "Url": "/admin/list/App.Hr.Intranet.SocialPost", + "Icon": "FcComments", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.SocialPost", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "01246207-7a2e-43cc-82b1-3a475b242926", + "Code": "App.Hr.Intranet.Events.EventType", + "DisplayName": "App.Hr.Intranet.Events.EventType", + "Order": 4, + "Url": "/admin/list/App.Hr.Intranet.Events.EventType", + "Icon": "FcPlanner", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Events.EventType", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "319118e2-1a91-44e2-8f4d-45b7327d4975", + "Code": "App.Hr.Intranet.Events.EventCategory", + "DisplayName": "App.Hr.Intranet.Events.EventCategory", + "Order": 5, + "Url": "/admin/list/App.Hr.Intranet.Events.EventCategory", + "Icon": "FcTreeStructure", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Events.EventCategory", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "7efe2b4b-407d-4bb8-9350-fa89b759111b", + "Code": "App.Hr.Intranet.Events.Event", + "DisplayName": "App.Hr.Intranet.Events.Event", + "Order": 6, + "Url": "/admin/list/App.Hr.Intranet.Events.Event", + "Icon": "FcCalendar", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Events.Event", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" + }, + { + "Id": "9ef2a858-1465-407c-9636-c8802a5119d4", + "Code": "App.Hr.Intranet.Document", + "DisplayName": "App.Hr.Intranet.Document", + "Order": 7, + "Url": "/admin/intranet-documents", + "Icon": "FcOpenedFolder", + "ParentCode": "App.Hr.Intranet", + "RequiredPermissionName": "App.Hr.Intranet.Document", + "CssClass": null, + "Target": null, + "IsDisabled": false, + "ElementId": null, + "ModuleId": "Hr" } ] } diff --git a/configs/seeds/host/data/App.Menus.Routes.json b/configs/seeds/host/data/App.Menus.Routes.json index 8b60c567..a88205b3 100644 --- a/configs/seeds/host/data/App.Menus.Routes.json +++ b/configs/seeds/host/data/App.Menus.Routes.json @@ -733,7 +733,7 @@ "ComponentType": "normal", "ComponentPath": "@/views/intranet/documents/IntranetDocuments", "RouteType": "protected", - "Authority": "App.Intranet.Document", + "Authority": "App.Hr.Intranet.Document", "SeoTitle": null, "SeoDescription": null, "SeoKeywords": null, diff --git a/configs/seeds/host/data/App.Notifications.NotificationRules.json b/configs/seeds/host/data/App.Notifications.NotificationRules.json index 1335ac81..546e91c6 100644 --- a/configs/seeds/host/data/App.Notifications.NotificationRules.json +++ b/configs/seeds/host/data/App.Notifications.NotificationRules.json @@ -34,6 +34,16 @@ "IsFixed": false, "IsCustomized": false }, + { + "Id": "940fb243-3d79-59cd-8cda-26c59a143306", + "NotificationTypeId": "8eaa322e-76bb-592a-8200-666442c03e23", + "RecipientType": "Role", + "RecipientId": "admin", + "Channel": "UiActivity", + "IsActive": true, + "IsFixed": false, + "IsCustomized": false + }, { "Id": "7d2e5a90-1c84-5b37-9e62-8a4f0d3b6c22", "NotificationTypeId": "3f6c8b41-9d27-5a63-8f1e-4b0a9c6d2e11", diff --git a/configs/seeds/host/data/App.Notifications.NotificationTypes.json b/configs/seeds/host/data/App.Notifications.NotificationTypes.json index 96779379..bd234c1e 100644 --- a/configs/seeds/host/data/App.Notifications.NotificationTypes.json +++ b/configs/seeds/host/data/App.Notifications.NotificationTypes.json @@ -19,6 +19,11 @@ "Name": "YeniKullanici", "Description": "Sisteme yeni bir kullanıcı eklendiğinde tetiklenir. Yönetici ekibin yetki ve rol atamasını yapması için haberdar olmasını sağlar." }, + { + "Id": "8eaa322e-76bb-592a-8200-666442c03e23", + "Name": "DenemeSuresiBitiyor", + "Description": "Bir çalışanın deneme süresinin bitmesine 15 gün kaldığında tetiklenir. İK ve yöneticinin sözleşmeyi sürdürme ya da deneme süresi içinde fesih kararını zamanında vermesi içindir; mesajda çalışanın adı ve bitiş tarihi geçer. Tetikleyici her gün çalışan Probation Reminder Worker işidir (kullanıcının ProbationEndDate alanı)." + }, { "Id": "3f6c8b41-9d27-5a63-8f1e-4b0a9c6d2e11", "Name": "Manuel", diff --git a/ui/src/components/template/MobileNav.tsx b/ui/src/components/template/MobileNav.tsx index c5a6e18b..378ac442 100644 --- a/ui/src/components/template/MobileNav.tsx +++ b/ui/src/components/template/MobileNav.tsx @@ -21,7 +21,7 @@ const intranetDashboardNavItem: NavigationTree = { key: ROUTES_ENUM.protected.dashboard, path: ROUTES_ENUM.protected.dashboard, title: 'Intranet', - translateKey: 'App.Intranet', + translateKey: 'App.Hr.Intranet', icon: 'FaHome', type: 'item', authority: [], diff --git a/ui/src/proxy/admin/models.ts b/ui/src/proxy/admin/models.ts index 0a6b34f6..90c2a61e 100644 --- a/ui/src/proxy/admin/models.ts +++ b/ui/src/proxy/admin/models.ts @@ -170,7 +170,6 @@ export interface UserInfoViewModel extends ExtensibleObject { marriageDate?: Date | string homeAddress?: string educationLevel?: string - graduationSchool?: string bloodType?: string motherHealthStatus?: string motherHealthNote?: string @@ -248,6 +247,32 @@ export interface UserInfoViewModel extends ExtensibleObject { shiftWorkFit?: boolean nightWorkFit?: boolean shiftNightDoctorId?: string + secondaryEmail?: string + secondaryPhoneNumber?: string + militaryStatus?: string + militaryPostponeEndDate?: Date | string + isDisabled: boolean + disabilityRate?: number + disabilityReport?: string + disabilityReportFileName?: string + passportNo?: string + passportExpiryDate?: Date | string + workPermitNo?: string + workPermitEndDate?: Date | string + registrationNo?: string + employmentType?: string + contractType?: string + contractEndDate?: Date | string + probationEndDate?: Date | string + seniorityStartDate?: Date | string + terminationReasonId?: string + terminationNote?: string + shiftId?: string + pdksCardNo?: string + drivingLicenseClass?: string + drivingLicenseNo?: string + drivingLicenseIssueDate?: Date | string + drivingLicenseExpiryDate?: Date | string } export interface AssignedRoleViewModel { @@ -292,3 +317,13 @@ export interface UserClaimModel { claimType: string claimValue: string } + +/** Banka ve ücret bilgisi; `UserInfoViewModel` içinde taşınmaz, ayrı yetkiyle okunur. */ +export interface UserFinancialDto { + id: string + bankName?: string + iban?: string + salaryType?: string + grossSalary?: number + salaryCurrency?: string +} diff --git a/ui/src/services/identity.service.ts b/ui/src/services/identity.service.ts index b940423d..860f8bf2 100644 --- a/ui/src/services/identity.service.ts +++ b/ui/src/services/identity.service.ts @@ -5,6 +5,7 @@ import { PermissionDefinitionRecord, UpdatePermissionsDto, UserClaimModel, + UserFinancialDto, UserInfoViewModel, } from '@/proxy/admin/models' import { ListResultDto, PagedAndSortedResultRequestDto, PagedResultDto } from '../proxy' @@ -63,6 +64,19 @@ export const putUserDetail = (input: UserInfoViewModel) => data: input, }) +export const getUserFinancial = (userId: string) => + apiService.fetchData({ + method: 'GET', + url: `/api/app/platform-identity/${userId}/financial`, + }) + +export const putUserFinancial = (input: UserFinancialDto) => + apiService.fetchData({ + method: 'PUT', + url: `/api/app/platform-identity/financial`, + data: input, + }) + export const putUserAvatar = (input: UserAvatarUpdateInput) => { const formData = new FormData() formData.append('userId', input.userId) diff --git a/ui/src/views/admin/profile/components/General.tsx b/ui/src/views/admin/profile/components/General.tsx index a99c4773..e8a1d6fc 100644 --- a/ui/src/views/admin/profile/components/General.tsx +++ b/ui/src/views/admin/profile/components/General.tsx @@ -27,7 +27,6 @@ import { FaPhone, FaPlus, FaHome, - FaUniversity, } from 'react-icons/fa' import * as Yup from 'yup' import { ProfileDto, UpdateProfileDto } from '@/proxy/account/models' @@ -352,14 +351,6 @@ const General = () => { )} /> - - } - value={getProfileExtraValue('GraduationSchool')} - > - isDisabled diff --git a/ui/src/views/admin/user-management/Details.tsx b/ui/src/views/admin/user-management/Details.tsx index 8e6eba8c..35931a73 100644 --- a/ui/src/views/admin/user-management/Details.tsx +++ b/ui/src/views/admin/user-management/Details.tsx @@ -35,7 +35,7 @@ import { CountryDto, getCountry } from '@/services/country.service' import { useLocalization } from '@/utils/hooks/useLocalization' import dayjs from 'dayjs' import { Field, FieldArray, FieldProps, Form, Formik, FormikHelpers } from 'formik' -import { useEffect, useMemo, useRef, useState } from 'react' +import { ReactNode, useEffect, useMemo, useRef, useState } from 'react' import PageTitle from '@/components/shared/PageTitle' import { FaBuilding, @@ -51,10 +51,10 @@ import { FaFacebookMessenger, FaTelegramPlane, FaHome, - FaUniversity, FaCalendarAlt, FaBriefcase, FaIdCard, + FaIdBadge, FaMapMarkerAlt, FaCity, FaBook, @@ -67,6 +67,13 @@ import { FaExclamationTriangle, FaUsers, FaPlus, + FaGraduationCap, + FaHandHoldingHeart, + FaMoneyCheckAlt, + FaPassport, + FaPercent, + FaUpload, + FaHourglassHalf, } from 'react-icons/fa' import { CircleStencil, @@ -86,12 +93,49 @@ import { useStoreActions, useStoreState } from '@/store' import { useSetting } from '@/utils/hooks/useSetting' import PlatformViewHost from '@/components/componentEditor/PlatformViewHost' import HealthCardTab from './HealthCardTab' +import EducationSkillsTab from './EducationSkillsTab' +import FamilyEmergencyTab from './FamilyEmergencyTab' +import FinancialTab from './FinancialTab' +import { + CheckboxField, + DateField, + Section, + SelectField, + TextField, +} from './userFormFields' +import { useUserFieldLookup } from './useUserFieldLookup' export interface ClaimTypeDto { claimType: string claimValue: string } +const militaryStatuses = ['Done', 'Exempt', 'Postponed', 'NotDone'] +const employmentTypes = ['FullTime', 'PartTime'] +const contractTypes = ['Indefinite', 'Definite'] +const drivingLicenseClasses = ['M', 'A1', 'A2', 'A', 'B1', 'B', 'BE', 'C1', 'C1E', 'C', 'CE', 'D1', 'D1E', 'D', 'DE', 'F', 'G'] +const maritalStatuses = [ + ['Bekar', 'Single'], + ['Evli', 'Married'], + ['Boşanmış', 'Divorced'], + ['Dul', 'Widowed'], +] as const + +// Uyruk ülke adıyla saklanır; ad dile göre değişebildiği için Türkiye telefon koduyla tanınır. +const TURKEY_PHONE_CODE = 90 + +const DISABILITY_REPORT_ACCEPT = '.pdf,.jpg,.jpeg,.png' +// Rapor base64 olarak kullanıcı kaydında durur; boyut sınırı kaydın şişmesini önler. +const DISABILITY_REPORT_MAX_SIZE = 5 * 1024 * 1024 + +// 4857 s. İş Kanunu md. 15: en fazla iki ay, toplu sözleşmeyle dört ay. Üst sınır dört aydır. +const PROBATION_MAX_MONTHS = 4 +const isProbationInvalid = (hireDate?: Date | string, probationEndDate?: Date | string) => + !!hireDate && + !!probationEndDate && + (dayjs(probationEndDate).isBefore(dayjs(hireDate), 'day') || + dayjs(probationEndDate).isAfter(dayjs(hireDate).add(PROBATION_MAX_MONTHS, 'month'), 'day')) + function UserDetails() { const { userId } = useParams() const { translate } = useLocalization() @@ -107,6 +151,9 @@ function UserDetails() { const { setUser } = useStoreActions((actions) => actions.auth.user) const { setting } = useSetting() + const shiftOptions = useUserFieldLookup('ShiftId') + const terminationReasonOptions = useUserFieldLookup('TerminationReasonId') + const reportInputRef = useRef(null) // Yeni satırın UserId değeri de bu filtreden dolar (applyNewRowDefaults). const workExperienceSearchParams = useMemo( () => new URLSearchParams({ filter: JSON.stringify(['UserId', '=', userId]) }), @@ -180,6 +227,33 @@ function UserDetails() { return valid } + const isForeignNational = (nationality?: string) => { + const country = countries.find((c) => c.name === nationality) + return !!country && country.phoneCode !== TURKEY_PHONE_CODE + } + + const readDisabilityReport = ( + file: File, + setFieldValue: (field: string, value: unknown) => void, + ) => { + if (file.size > DISABILITY_REPORT_MAX_SIZE) { + toast.push( + + {translate('::Abp.Identity.User.UserInformation.DisabilityReportTooLarge')} + , + { placement: 'bottom-end' }, + ) + return + } + + const reader = new FileReader() + reader.onload = () => { + setFieldValue('disabilityReport', reader.result as string) + setFieldValue('disabilityReportFileName', file.name) + } + reader.readAsDataURL(file) + } + const getCroppedAvatar = () => new Promise((resolve, reject) => { const canvas = cropperRef.current?.getCanvas({ @@ -233,6 +307,7 @@ function UserDetails() { } } + return userDetails ? ( <> @@ -242,17 +317,26 @@ function UserDetails() { }> {translate('::Abp.Account.General')} - }> - {translate('::Abp.Identity.Permissions')} + }> + {translate('::Abp.Identity.User.IndentityInformation')} }> {translate('::Abp.Identity.User.WorkInformation')} + }> + {translate('::Abp.Identity.User.EducationSkills')} + + }> + {translate('::Abp.Identity.User.FamilyEmergency')} + + }> + {translate('::Abp.Identity.User.Financial')} + }> {translate('::Abp.Identity.User.HealthCard')} - }> - {translate('::Abp.Identity.User.IndentityInformation')} + }> + {translate('::Abp.Identity.Permissions')} }> {translate('::Abp.Identity.User.LockoutManagement')} @@ -323,227 +407,127 @@ function UserDetails() { setSubmitting(false) }} > - {({ isSubmitting, values }) => { + {({ isSubmitting, values, setFieldValue }) => { return (
-
- -
- {/* Personal Information */} -
-
- {translate( - '::Abp.Identity.User.UserInformation.ContactInformation', - )} -
- - } - component={Input} - /> - + +
+
+ } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + + + {({ field, form }: FieldProps) => { + const userTypes: SelectBoxOptionByNumber[] = [ + { + value: 0, + label: translate('::Abp.Account.UserType.Internal'), + }, + { + value: 1, + label: translate('::Abp.Account.UserType.External'), + }, + ] + return ( + o.value === values.userType)} - onChange={(option) => - form.setFieldValue(field.name, option?.value ?? null) - } - /> - ) - }} - - -
- -
-
- {translate( - '::Abp.Identity.User.UserInformation.AdditionalInformation', - )} -
- - } - /> - - - - - {({ field, form }: FieldProps) => { - const nationalityOptions: SelectBoxOption[] = countries.map( - (c) => ({ value: c.name, label: c.name }), - ) - return ( - o.value === values.gender)} - onChange={(option) => - form.setFieldValue(field.name, option?.value ?? null) - } - /> - ) - }} - - - - - {({ field, form }: FieldProps) => { - const educationOptions: SelectBoxOption[] = [ - { - value: 'İlkokul', - label: translate('::App.EducationLevel.Primary'), - }, - { - value: 'Ortaokul', - label: translate('::App.EducationLevel.MiddleSchool'), - }, - { - value: 'Lise', - label: translate('::App.EducationLevel.HighSchool'), - }, - { - value: 'Ön Lisans', - label: translate('::App.EducationLevel.Associate'), - }, - { - value: 'Lisans', - label: translate('::App.EducationLevel.Bachelor'), - }, - { - value: 'Yüksek Lisans', - label: translate('::App.EducationLevel.Master'), - }, - { - value: 'Doktora', - label: translate('::App.EducationLevel.PhD'), - }, - ] - return ( - { + const file = e.target.files?.[0] + e.target.value = '' + if (file) { + readDisabilityReport(file, setFieldValue) + } + }} + /> + + {values.disabilityReport && ( + <> + + {values.disabilityReportFileName} + +
+ + + )} +
- -
+
+
+ +
+ { + setSubmitting(true) + await putUserDetail({ ...values }) + + toast.push( + + {translate('::App.Platform.Save')} + , + { + placement: 'bottom-end', + }, + ) + + getUser() + setSubmitting(false) + }} + > + {({ isSubmitting, values }) => { + const text = (name: string, key: string, icon: ReactNode) => ( + + ) + + return ( + + +
+
+
+ {text('identityNumber', 'IdentityNumber', )} + {text('serialNo', 'SerialNo', )} + {text('issuedPlace', 'IssuedPlace', )} + } + /> + {text('province', 'Province', )} + } + /> + {text('village', 'Village', )} + {text('volumeNo', 'VolumeNo', )} + {text('familySequenceNo', 'FamilySequenceNo', )} + {text('sequenceNo', 'SequenceNo', )} +
+
+ +
+
+ {text('birthPlace', 'BirthPlace', )} + } + /> + {text('fatherName', 'FatherName', )} + {text('motherName', 'MotherName', )} + ({ + value, + label: translate(`::App.MaritalStatus.${key}`), + }))} + /> + } + /> +
+
+ + {isForeignNational(values.nationality) && ( +
+
+ {text('passportNo', 'PassportNo', )} + } + /> + {text('workPermitNo', 'WorkPermitNo', )} + } + /> +
+
+ )} +
+
+ +
+ +
+ + ) + }} +
+
+
+ + +
+ + isProbationInvalid(values.hireDate, values.probationEndDate) + ? { + probationEndDate: translate( + '::Abp.Identity.User.ProbationPeriodInvalid', + ), + } + : {} + } + onSubmit={async (values, { setSubmitting }) => { + setSubmitting(true) + await putUserDetail({ ...values }) + + toast.push( + + {translate('::App.Platform.Save')} + , + { + placement: 'bottom-end', + }, + ) + + getUser() + setSubmitting(false) + }} + > + {({ isSubmitting, values, errors }) => { + const departmentOptions: SelectBoxOption[] = values.departments.map( + (department) => ({ + value: department.id, + label: department.name, + }), + ) + + const jobPositionOptions: SelectBoxOptionWithGroup[] = values.jobPositions.map( + (jobPosition) => ({ + value: jobPosition.id, + label: jobPosition.name, + group: jobPosition.departmentId, + }), + ) + + return ( +
+ +
+
+ + + {({ field, form }: FieldProps) => ( + option.group === values.departmentId, + )} + isClearable={true} + value={jobPositionOptions.filter( + (option) => option.value === values.jobPositionId, + )} + onChange={(option) => + form.setFieldValue(field.name, option?.value) + } + /> + )} + + +
+ } + /> + } + /> + + } + /> +
+
+ +
+
+ ({ + value, + label: translate(`::App.StaticLookup.${value}`), + }))} + /> + ({ + value, + label: translate(`::App.StaticLookup.${value}`), + }))} + /> + } + /> + {values.contractType === 'Definite' && ( + } + /> + )} + } + error={errors.probationEndDate as string | undefined} + /> + } + /> +
+
+ +
+ } + /> + + +
+ +
+
+ ({ + value, + label: value, + }))} + /> + } + /> + } + /> + } + /> +
+
+ +
+ } + /> + } + /> +
+
+
+ +
+ +
+
+ ) + }} +
+ +
+
+ {translate('::App.IdentityManagement.UserWorkExperience')} +
+ +
+
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+ + +
+ +
+
+
- -
- { - setSubmitting(true) - await putUserDetail({ ...values }) - - toast.push( - - {translate('::App.Platform.Save')} - , - { - placement: 'bottom-end', - }, - ) - - getUser() - setSubmitting(false) - }} - > - {({ isSubmitting, values }) => { - const departments = values.departments - const jobPositions = values.jobPositions - - const departmentOptions: SelectBoxOption[] = departments.map((department) => ({ - value: department.id, - label: department.name, - })) - - const jobPositionOptions: SelectBoxOptionWithGroup[] = jobPositions.map( - (jobPosition) => ({ - value: jobPosition.id, - label: jobPosition.name, - group: jobPosition.departmentId, - }), - ) - - return ( -
-
- -
-
- - - {({ field, form }: FieldProps) => ( - option.group === values.departmentId, - )} - isClearable={true} - value={jobPositionOptions.filter( - (option) => option.value === values.jobPositionId, - )} - onChange={(option) => - form.setFieldValue(field.name, option?.value) - } - /> - )} - - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - - {({ field, form }: FieldProps) => ( - } - onChange={(date) => { - form.setFieldValue( - field.name, - date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null, - ) - }} - /> - )} - - -
- -
- - - {({ field, form }: FieldProps) => ( - } - onChange={(date) => { - form.setFieldValue( - field.name, - date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null, - ) - }} - /> - )} - - -
-
-
-
- -
- -
-
- ) - }} -
- -
-
- {translate('::App.IdentityManagement.UserWorkExperience')} -
- -
-
-
- - -
- -
-
- - -
- { - setSubmitting(true) - await putUserDetail({ ...values }) - - toast.push( - - {translate('::App.Platform.Save')} - , - { - placement: 'bottom-end', - }, - ) - - getUser() - setSubmitting(false) - }} - > - {({ isSubmitting, values }) => { - const maritalStatusOptions: SelectBoxOption[] = [ - { - value: 'Bekar', - label: translate('::App.MaritalStatus.Single'), - }, - { - value: 'Evli', - label: translate('::App.MaritalStatus.Married'), - }, - { - value: 'Boşanmış', - label: translate('::App.MaritalStatus.Divorced'), - }, - { - value: 'Dul', - label: translate('::App.MaritalStatus.Widowed'), - }, - ] - - return ( -
- -
-
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - - {({ field, form }: FieldProps) => ( - } - onChange={(date) => { - form.setFieldValue( - field.name, - date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null, - ) - }} - /> - )} - - -
- -
- - } - /> - -
- -
- - - {({ field, form }: FieldProps) => ( - } - onChange={(date) => { - form.setFieldValue( - field.name, - date ? dayjs(date).format('YYYY-MM-DDTHH:mm:ss') : null, - ) - }} - /> - )} - - -
- -
- - } - /> - -
- -
- - } - /> - -
- -
- - - {({ field, form }: FieldProps) => ( - selected.includes(o.value ?? ''))} + onChange={(option) => { + const value = isMulti + ? ((option as SelectBoxOption[] | null) ?? []).map((o) => o.value).join('|') || null + : ((option as SelectBoxOption | null)?.value ?? null) + form.setFieldValue(field.name, value) + }} + /> + ) + }} + + +) diff --git a/ui/src/views/intranet/documents/IntranetDocuments.tsx b/ui/src/views/intranet/documents/IntranetDocuments.tsx index 10f25a62..83b65f3b 100644 --- a/ui/src/views/intranet/documents/IntranetDocuments.tsx +++ b/ui/src/views/intranet/documents/IntranetDocuments.tsx @@ -34,9 +34,9 @@ import { const TOAST_PLACEMENT = { placement: 'bottom-end' } as const const PERMISSION = { - UPLOAD: 'App.Intranet.Document.Create', - UPDATE: 'App.Intranet.Document.Update', - DELETE: 'App.Intranet.Document.Delete', + UPLOAD: 'App.Hr.Intranet.Document.Create', + UPDATE: 'App.Hr.Intranet.Document.Update', + DELETE: 'App.Hr.Intranet.Document.Delete', } as const type ViewMode = 'kanban' | 'list' @@ -91,7 +91,7 @@ const IntranetDocuments = () => { setSelectedIds([]) } catch (error) { console.error('Failed to load intranet documents:', error) - notify('danger', translate('::App.Intranet.Document.LoadFailed')) + notify('danger', translate('::App.Hr.Intranet.Document.LoadFailed')) setDocuments([]) } finally { setLoading(false) @@ -124,7 +124,7 @@ const IntranetDocuments = () => { } else { grouped.set(key, { key, - label: key ? key.toUpperCase() : translate('::App.Intranet.Document.Unknown'), + label: key ? key.toUpperCase() : translate('::App.Hr.Intranet.Document.Unknown'), items: [item], }) } @@ -177,7 +177,7 @@ const IntranetDocuments = () => { const uploadPendingFiles = async () => { if (pendingUploads.some((item) => !item.name.trim())) { - notify('warning', translate('::App.Intranet.Document.DisplayNameHint')) + notify('warning', translate('::App.Hr.Intranet.Document.DisplayNameHint')) return } @@ -195,7 +195,7 @@ const IntranetDocuments = () => { setUploadOpen(false) setPendingUploads([]) await load() - notify('success', translate('::App.Intranet.Document.Uploaded')) + notify('success', translate('::App.Hr.Intranet.Document.Uploaded')) } catch (error) { console.error('Intranet document upload failed:', error) notify('danger', translate('::App.Platform.Error')) @@ -215,7 +215,7 @@ const IntranetDocuments = () => { tenantId, ) await load() - notify('success', translate('::App.Intranet.Document.StatusChanged')) + notify('success', translate('::App.Hr.Intranet.Document.StatusChanged')) } catch (error) { console.error('Failed to change publication state:', error) notify('danger', translate('::App.Platform.Error')) @@ -230,7 +230,7 @@ const IntranetDocuments = () => { await fileManagementService.bulkDeleteItems(selectedIds, tenantId) setDeleteOpen(false) await load() - notify('success', translate('::App.Intranet.Document.Deleted')) + notify('success', translate('::App.Hr.Intranet.Document.Deleted')) } catch (error) { console.error('Failed to delete intranet documents:', error) notify('danger', translate('::App.Platform.Error')) @@ -259,7 +259,7 @@ const IntranetDocuments = () => { : 'bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300' } > - {translate(isActive ? '::App.Intranet.Document.Active' : '::App.Intranet.Document.Passive')} + {translate(isActive ? '::App.Hr.Intranet.Document.Active' : '::App.Hr.Intranet.Document.Passive')} ) @@ -272,8 +272,8 @@ const IntranetDocuments = () => { size="xs" title={translate( document.isActive - ? '::App.Intranet.Document.Unpublish' - : '::App.Intranet.Document.Publish', + ? '::App.Hr.Intranet.Document.Unpublish' + : '::App.Hr.Intranet.Document.Publish', )} variant="plain" onClick={() => changePublication([document], !document.isActive)} @@ -318,7 +318,7 @@ const IntranetDocuments = () => { const renderKanban = () => columns.length === 0 ? (
- {translate('::App.Intranet.Document.Empty')} + {translate('::App.Hr.Intranet.Document.Empty')}
) : (
@@ -347,7 +347,7 @@ const IntranetDocuments = () => { {translate('::App.Listform.ListformField.Name')} {translate('::App.Listform.ListformField.Type')} {translate('::App.Listform.ListformField.Size')} - {translate('::App.Intranet.Document.Active')} + {translate('::App.Hr.Intranet.Document.Active')} @@ -381,7 +381,7 @@ const IntranetDocuments = () => { {visibleDocuments.length === 0 && ( - {translate('::App.Intranet.Document.Empty')} + {translate('::App.Hr.Intranet.Document.Empty')} )} @@ -392,7 +392,7 @@ const IntranetDocuments = () => { return ( - +
@@ -415,7 +415,7 @@ const IntranetDocuments = () => { size="sm" onClick={() => changePublication(publishable, true)} > - {translate('::App.Intranet.Document.Publish')} + {translate('::App.Hr.Intranet.Document.Publish')} )} @@ -444,7 +444,7 @@ const IntranetDocuments = () => {
- {translate('::App.Intranet.Document.ShowUnpublished')} + {translate('::App.Hr.Intranet.Document.ShowUnpublished')} {