2025-10-20 11:32:41 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Kurs.Platform.Enums;
|
|
|
|
|
|
|
|
|
|
|
|
public static class TableNameResolver
|
|
|
|
|
|
{
|
|
|
|
|
|
// Tüm tabloların hangi prefix tipine ve menü grubuna ait olduğunu belirten harita
|
|
|
|
|
|
private static readonly Dictionary<string, (Func<MenuPrefix, TableNameEnum, string> Method, MenuPrefix PrefixGroup)> _map
|
|
|
|
|
|
= new(StringComparer.OrdinalIgnoreCase)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 🔹 MODULE TABLOLARI
|
|
|
|
|
|
{ nameof(TableNameEnum.Language), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.LanguageKey), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.LanguageText), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.SettingDefinition), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Notification), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.NotificationRule), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueue), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueueEvents), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BackgroundWorker_MailQueueTableFormat), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.AiBot), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 PLATFORM TABLOLARI
|
|
|
|
|
|
{ nameof(TableNameEnum.Route), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Menu), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.DataSource), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ListForm), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ListFormField), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ListFormCustomization), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ListFormImport), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ListFormImportExecute), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ContactTag), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ContactTitle), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Currency), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.CountryGroup), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Country), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.City), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.District), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BackgroundWorker), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ForumCategory), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ForumTopic), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ForumPost), (PlatformConsts.TablePrefix.PlatformByName, MenuPrefix.Saas) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 TENANT TABLOLARI (GENEL)
|
|
|
|
|
|
{ nameof(TableNameEnum.Branch), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BranchUsers), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.GlobalSearch), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Activity), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Platform) },
|
|
|
|
|
|
{ nameof(TableNameEnum.CustomEntity), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.CustomEntityField), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ApiMigration), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ApiEndpoint), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.CustomEndpoint), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.CustomComponent), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ReportCategory), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ReportTemplate), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ReportParameter), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ReportGenerated), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.IpRestriction), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Sector), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 ADMINISTRATION
|
|
|
|
|
|
{ nameof(TableNameEnum.SkillType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Skill), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.SkillLevel), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.UomCategory), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Uom), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Behavior), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.EducationStatus), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.EventCategory), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.EventType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Event), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
2025-10-20 20:40:32 +00:00
|
|
|
|
{ nameof(TableNameEnum.EventPhoto), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.EventComment), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
2025-10-20 11:32:41 +00:00
|
|
|
|
{ nameof(TableNameEnum.Disease), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Psychologist), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Vaccine), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Lawyer), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Meal), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Document), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Vehicle), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.WorkHour), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.About), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Service), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Product), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.PaymentMethod), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.InstallmentOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Order), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.OrderItem), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BlogCategory), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BlogPost), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Demo), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Contact), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 PARTICIPANT
|
|
|
|
|
|
{ nameof(TableNameEnum.Interesting), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Source), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
{ nameof(TableNameEnum.NoteType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
{ nameof(TableNameEnum.SalesRejectionReason), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
{ nameof(TableNameEnum.MeetingMethod), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
{ nameof(TableNameEnum.MeetingResult), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Participant) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 COORDINATOR
|
|
|
|
|
|
{ nameof(TableNameEnum.Schedule), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ScheduleLesson), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.RegistrationType), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.RegistrationMethod), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ClassType), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Class), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Level), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.LessonPeriod), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ClassCancellationReason), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Program), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Classroom), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ClassroomParticipant), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ClassroomAttandance), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.ClassroomChat), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.QuestionTag), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.QuestionPool), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.Question), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
{ nameof(TableNameEnum.QuestionOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
|
|
|
|
|
|
|
|
|
|
|
|
// 🔹 ACCOUNTING
|
|
|
|
|
|
{ nameof(TableNameEnum.Bank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },
|
|
|
|
|
|
{ nameof(TableNameEnum.BankAccount), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public static string GetFullTableName(string tableName)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!Enum.TryParse<TableNameEnum>(tableName, out var tableEnum))
|
|
|
|
|
|
throw new ArgumentException($"'{tableName}' geçerli bir TableNameEnum değil.");
|
|
|
|
|
|
|
|
|
|
|
|
if (!_map.TryGetValue(tableName, out var entry))
|
|
|
|
|
|
throw new KeyNotFoundException($"'{tableName}' için tablo eşlemesi bulunamadı.");
|
|
|
|
|
|
|
|
|
|
|
|
return entry.Method(entry.PrefixGroup, tableEnum);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|