Partner tablosu Customer ve Supply kaldırıldı

This commit is contained in:
Sedat Öztürk 2025-11-01 11:16:20 +03:00
parent 84b9ea23b0
commit 73243fa390
18 changed files with 3664 additions and 4556 deletions

View file

@ -26,7 +26,7 @@ public static class MenuPrefixExtensions
{
return menu switch
{
MenuPrefix.Platform => "P",
MenuPrefix.Platform => "Plat",
MenuPrefix.Saas => "Sas",
MenuPrefix.Administration => "Adm",
MenuPrefix.Intranet => "Net",

View file

@ -138,14 +138,12 @@ public enum TableNameEnum
MaterialType,
MaterialGroup,
PaymentTerm,
SupplyType,
SupplyCardType,
CustomerType,
CustomerSegment,
Partner,
PartnerBank,
PartnerCertificate,
PartnerContact,
SupplyType,
SupplyCardType,
Supply,
CustomerType,
CustomerSegment,
Customer
PartnerContact
}

View file

@ -0,0 +1,25 @@
using Kurs.Platform.Enums;
namespace Kurs.Platform;
public static class TablePrefix
{
private const string PlatformPrefix = "P";
private const string TenantPrefix = "T";
private const string BranchPrefix = "B";
public static string PlatformByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
return $"{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{PlatformPrefix}_{tableName}";
}
public static string TenantByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
return $"{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{TenantPrefix}_{tableName}";
}
public static string BranchByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
return $"{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{BranchPrefix}_{tableName}";
}
}

View file

@ -43,40 +43,6 @@ public static class PlatformConsts
public const string DbSchema = null;
}
public static string FullNameTable(TableNameEnum TableName)
{
return TableNameResolver.GetFullTableName($"{TableName}");
}
public static string FullNameView(TableNameEnum TableName)
{
return TableNameResolver.GetFullViewName($"{TableName}");
}
public static class TablePrefix
{
public static string PlatformByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
string DbTablePlatform = "P";
return $"{DbTablePlatform}_{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{tableName}";
}
public static string TenantByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
string DbTableTenant = "T";
return $"{DbTableTenant}_{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{tableName}";
}
public static string BranchByName(MenuPrefix MenuGroup, TableNameEnum tableName)
{
string DbTableBranch = "B";
return $"{DbTableBranch}_{MenuPrefixExtensions.ToPrefix(MenuGroup)}_{tableName}";
}
}
public static class Permissions
{
public const string MenuGroup = "MenuGroup";
@ -1480,4 +1446,14 @@ public static class PlatformConsts
return ReflectionHelper.GetPublicConstantsRecursively(typeof(IdentityPermissions));
}
}
public static string FullNameTable(TableNameEnum TableName)
{
return TableNameResolver.GetFullTableName($"{TableName}");
}
public static string FullNameView(TableNameEnum TableName)
{
return TableNameResolver.GetFullViewName($"{TableName}");
}
}

View file

@ -8,174 +8,174 @@ public static class TableNameResolver
public const string ViewPrefix = "V_";
// 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)
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) },
{ nameof(TableNameEnum.Language), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.LanguageKey), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.LanguageText), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.SettingDefinition), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.Notification), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.NotificationRule), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.BackgroundWorker_MailQueue), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.BackgroundWorker_MailQueueEvents), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.BackgroundWorker_MailQueueTableFormat), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.AiBot), (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) },
{ nameof(TableNameEnum.Route), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Menu), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.DataSource), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ListForm), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ListFormField), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ListFormCustomization), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ListFormImport), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ListFormImportExecute), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ContactTag), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ContactTitle), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Currency), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.CountryGroup), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Country), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.City), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.District), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.BackgroundWorker), (TablePrefix.PlatformByName, MenuPrefix.Platform) },
{ nameof(TableNameEnum.ForumCategory), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ForumTopic), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ForumPost), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
// 🔹 TENANT TABLOLARI (GENEL)
{ nameof(TableNameEnum.Activity), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Saas) },
{ 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.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) },
{ nameof(TableNameEnum.Activity), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Branch), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.BranchUsers), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.GlobalSearch), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.CustomEntity), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.CustomEntityField), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ApiMigration), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ApiEndpoint), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.CustomEndpoint), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.CustomComponent), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ReportCategory), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ReportTemplate), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ReportParameter), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.ReportGenerated), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.IpRestriction), (TablePrefix.TenantByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Sector), (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.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.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) },
{ nameof(TableNameEnum.PartnerBank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PartnerCertificate), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PartnerContact), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.SkillType), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Skill), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.SkillLevel), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.UomCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Uom), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Behavior), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.EducationStatus), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Disease), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Psychologist), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Vaccine), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Lawyer), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Document), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Vehicle), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.WorkHour), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.About), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Service), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Product), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PaymentMethod), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.InstallmentOption), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Order), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.OrderItem), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.BlogCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.BlogPost), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Demo), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Contact), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.Partner), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PartnerBank), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PartnerCertificate), (TablePrefix.TenantByName, MenuPrefix.Administration) },
{ nameof(TableNameEnum.PartnerContact), (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) },
{ nameof(TableNameEnum.Interesting), (TablePrefix.TenantByName, MenuPrefix.Participant) },
{ nameof(TableNameEnum.Source), (TablePrefix.TenantByName, MenuPrefix.Participant) },
{ nameof(TableNameEnum.NoteType), (TablePrefix.TenantByName, MenuPrefix.Participant) },
{ nameof(TableNameEnum.SalesRejectionReason), (TablePrefix.TenantByName, MenuPrefix.Participant) },
{ nameof(TableNameEnum.MeetingMethod), (TablePrefix.TenantByName, MenuPrefix.Participant) },
{ nameof(TableNameEnum.MeetingResult), (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) },
{ nameof(TableNameEnum.Schedule), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ScheduleLesson), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.RegistrationType), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.RegistrationMethod), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ClassType), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.Class), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.Level), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.LessonPeriod), (TablePrefix.BranchByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ClassCancellationReason), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.Program), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.Classroom), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ClassroomParticipant), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ClassroomAttandance), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.ClassroomChat), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.QuestionTag), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.QuestionPool), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.Question), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.QuestionOption), (TablePrefix.TenantByName, MenuPrefix.Coordinator) },
// 🔹 HR
{ nameof(TableNameEnum.Department), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.EmploymentType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.JobPosition), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Badge), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.CostCenter), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Employee), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Leave), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Overtime), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Payroll), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.PayrollItem), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Template360), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Performance360), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Expense), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Survey), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.SurveyQuestion), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.SurveyQuestionOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.SurveyAnswer), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.SurveyResponse), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Department), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.EmploymentType), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.JobPosition), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Badge), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.CostCenter), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Employee), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Leave), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Overtime), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Payroll), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.PayrollItem), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Template360), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Performance360), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Expense), (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.SurveyAnswer), (TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.SurveyResponse), (TablePrefix.TenantByName, MenuPrefix.Hr) },
// Intranet
{ nameof(TableNameEnum.EventCategory), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Event), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventPhoto), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventComment), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Training), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Certificate), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Meal), (PlatformConsts.TablePrefix.BranchByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Reservation), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.ShuttleRoute), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Announcement), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Visitor), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialPost), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialLocation), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialMedia), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialPollOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialComment), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialLike), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventCategory), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventType), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Event), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventPhoto), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.EventComment), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Training), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Certificate), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Meal), (TablePrefix.BranchByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Reservation), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.ShuttleRoute), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Announcement), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.Visitor), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialPost), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialLocation), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialMedia), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialPollOption), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialComment), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
{ nameof(TableNameEnum.SocialLike), (TablePrefix.TenantByName, MenuPrefix.Intranet) },
//Supply Chain
{ nameof(TableNameEnum.MaterialType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.MaterialGroup), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.PaymentTerm), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.SupplyType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.SupplyCardType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.Supply), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.MaterialType), (TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.MaterialGroup), (TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.PaymentTerm), (TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.SupplyType), (TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
{ nameof(TableNameEnum.SupplyCardType), (TablePrefix.TenantByName, MenuPrefix.SupplyChain) },
//Crm
{ nameof(TableNameEnum.Customer), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.CustomerSegment), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.CustomerType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.CustomerSegment), (TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.CustomerType), (TablePrefix.TenantByName, MenuPrefix.Crm) },
// 🔹 ACCOUNTING
{ nameof(TableNameEnum.Bank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },
{ nameof(TableNameEnum.BankAccount), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },
{ nameof(TableNameEnum.Bank), (TablePrefix.TenantByName, MenuPrefix.Accounting) },
{ nameof(TableNameEnum.BankAccount), (TablePrefix.TenantByName, MenuPrefix.Accounting) },
};
public static string GetFullTableName(string tableName)

View file

@ -73,4 +73,6 @@ public class Employee : FullAuditedEntity<Guid>, IMultiTenant
public ICollection<Certificate> Certificates { get; set; }
public ICollection<Expense> ExpenseRequests { get; set; }
public ICollection<SurveyResponse> SurveyResponses { get; set; }
public ICollection<Partner> Partners { get; set; }
}

View file

@ -1,23 +0,0 @@
using System;
namespace Kurs.Platform.Entities;
public class Customer : Partner
{
public PartnerType PartyType { get; set; } = PartnerType.Customer;
public Guid? CustomerTypeId { get; set; }
public CustomerType? CustomerType { get; set; }
public Guid? CustomerSegmentId { get; set; }
public CustomerSegment? CustomerSegment { get; set; }
public Guid AssignedEmployeeId { get; set; }
public Employee? AssignedEmployee { get; set; }
public string TeamCode { get; set; } // Organization Unit Code
public decimal TotalRevenue { get; set; } // Toplam Gelir
public decimal AverageOrderValue { get; set; } // Ortalama Sipariş Değeri
public decimal LifetimeValue { get; set; } // Müşteri Ömrü Değeri
}

View file

@ -13,5 +13,5 @@ public class CustomerSegment : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; }
public bool IsActive { get; set; }
public ICollection<Customer> Customers { get; set; }
public ICollection<Partner> Partners { get; set; }
}

View file

@ -13,6 +13,6 @@ public class CustomerType : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; }
public bool IsActive { get; set; }
public ICollection<Customer> Customers { get; set; }
public ICollection<Partner> Partners { get; set; }
}

View file

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
@ -12,6 +14,8 @@ public class Partner : FullAuditedEntity<Guid>, IMultiTenant
public string Code { get; set; }
public string Name { get; set; }
public PartnerType PartyType { get; set; }
public Guid? SectorId { get; set; }
public Sector? Sector { get; set; }
@ -38,13 +42,66 @@ public class Partner : FullAuditedEntity<Guid>, IMultiTenant
public PaymentTerm? PaymentTerm { get; set; }
public decimal CreditLimit { get; set; }
public DateTime LastOrderDate { get; set; }
public DateTime? LastOrderDate { get; set; }
public PartnerStatus Status { get; set; }
public ICollection<PartnerCertificate> Certificates { get; set; }
public ICollection<PartnerBank> Banks { get; set; }
public ICollection<PartnerCertificate> Certificates { get; set; }
public ICollection<PartnerContact> Contacts { get; set; }
//Customer ile ilgil bilgiler
public Guid? CustomerTypeId { get; set; }
public CustomerType? CustomerType { get; set; }
public Guid? CustomerSegmentId { get; set; }
public CustomerSegment? CustomerSegment { get; set; }
public Guid? AssignedEmployeeId { get; set; }
public Employee? AssignedEmployee { get; set; }
public string? TeamCode { get; set; } // Organization Unit Code
public decimal TotalRevenue { get; set; } // Toplam Gelir
public decimal AverageOrderValue { get; set; } // Ortalama Sipariş Değeri
public decimal LifetimeValue { get; set; } // Müşteri Ömrü Değeri
//Supplier ile ilgili bilgiler
public Guid? SupplierTypeId { get; set; }
public SupplyType? SupplierType { get; set; }
public Guid? SupplyCardTypeId { get; set; }
public SupplyCardType? SupplyCardType { get; set; }
public string? CardNumber { get; set; }
public DateTime? ValidFrom { get; set; }
public DateTime? ValidTo { get; set; }
public decimal CurrentBalance { get; set; }
public decimal DiscountRate { get; set; }
public string? PerformanceMetricsJson { get; set; }
public PerformanceMetrics PerformanceMetrics
{
get
{
if (!string.IsNullOrEmpty(PerformanceMetricsJson))
return JsonSerializer.Deserialize<PerformanceMetrics>(PerformanceMetricsJson);
return new PerformanceMetrics();
}
set { PerformanceMetricsJson = JsonSerializer.Serialize(value); }
}
}
[NotMapped]
public class PerformanceMetrics
{
public int DeliveryPerformance { get; set; }
public int QualityRating { get; set; }
public int PriceCompetitiveness { get; set; }
public int Responsiveness { get; set; }
public int ComplianceRating { get; set; }
public int OverallScore { get; set; }
public DateTime LastEvaluationDate { get; set; }
}

View file

@ -1,49 +0,0 @@
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json;
namespace Kurs.Platform.Entities;
public class Supply : Partner
{
public PartnerType PartyType { get; set; } = PartnerType.Supplier;
public Guid? SupplierTypeId { get; set; }
public SupplyType? SupplierType { get; set; }
public string CardNumber { get; set; }
public Guid? SupplyCardTypeId { get; set; }
public SupplyCardType? SupplyCardType { get; set; }
public DateTime ValidFrom { get; set; }
public DateTime ValidTo { get; set; }
public decimal CurrentBalance { get; set; }
public decimal DiscountRate { get; set; }
public string? PerformanceMetricsJson { get; set; }
[NotMapped]
public PerformanceMetrics PerformanceMetrics
{
get
{
if (!string.IsNullOrEmpty(PerformanceMetricsJson))
return JsonSerializer.Deserialize<PerformanceMetrics>(PerformanceMetricsJson);
return new PerformanceMetrics();
}
set { PerformanceMetricsJson = JsonSerializer.Serialize(value); }
}
}
public class PerformanceMetrics
{
public int DeliveryPerformance { get; set; }
public int QualityRating { get; set; }
public int PriceCompetitiveness { get; set; }
public int Responsiveness { get; set; }
public int ComplianceRating { get; set; }
public int OverallScore { get; set; }
public DateTime LastEvaluationDate { get; set; }
}

View file

@ -13,5 +13,5 @@ public class SupplyCardType : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; }
public bool IsActive { get; set; }
public ICollection<Supply> Supplies { get; set; }
public ICollection<Partner> Partners { get; set; }
}

View file

@ -13,5 +13,5 @@ public class SupplyType : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; }
public bool IsActive { get; set; }
public ICollection<Supply> Supplies { get; set; }
public ICollection<Partner> Partners { get; set; }
}

View file

@ -37,7 +37,7 @@ public class PlatformDbContext :
IIdentityDbContext,
ITenantManagementDbContext
{
#region Saas from the modules
#region Saas
public DbSet<Tenant> Tenants { get; set; }
public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
public DbSet<AiBot> AiBots { get; set; }
@ -77,7 +77,7 @@ public class PlatformDbContext :
public DbSet<District> Districts { get; set; }
#endregion
#region Administrator from the modules
#region Administrator
public DbSet<IdentityUser> Users { get; set; }
public DbSet<IdentityRole> Roles { get; set; }
public DbSet<IdentityClaimType> ClaimTypes { get; set; }
@ -112,7 +112,6 @@ public class PlatformDbContext :
public DbSet<Vehicle> Vehicles { get; set; }
public DbSet<Psychologist> Psychologists { get; set; }
public DbSet<Lawyer> Lawyers { get; set; }
public DbSet<Partner> Partners { get; set; }
#endregion
#region Intranet
@ -135,7 +134,7 @@ public class PlatformDbContext :
public DbSet<SocialLike> SocialLikes { get; set; }
#endregion
#region Participant from the modules
#region Participant
public DbSet<MeetingMethod> MeetingMethods { get; set; }
public DbSet<MeetingResult> MeetingResults { get; set; }
public DbSet<Source> Sources { get; set; }
@ -144,7 +143,7 @@ public class PlatformDbContext :
public DbSet<NoteType> NoteTypes { get; set; }
#endregion
#region Coordinator from the modules
#region Coordinator
public DbSet<Program> Programs { get; set; }
public DbSet<Schedule> Schedules { get; set; }
public DbSet<ScheduleLesson> ScheduleLessons { get; set; }
@ -196,13 +195,12 @@ public class PlatformDbContext :
public DbSet<MaterialGroup> MaterialGroups { get; set; }
public DbSet<PaymentTerm> PaymentTerms { get; set; }
public DbSet<Partner> Partners { get; set; }
public DbSet<SupplyType> SupplyTypes { get; set; }
public DbSet<SupplyCardType> SupplyCardTypes { get; set; }
public DbSet<Supply> Supplies { get; set; }
public DbSet<CustomerType> CustomerTypes { get; set; }
public DbSet<CustomerSegment> CustomerSegments { get; set; }
public DbSet<Customer> Customers { get; set; }
public DbSet<PartnerBank> PartnerBanks { get; set; }
public DbSet<PartnerCertificate> PartnerCertificates { get; set; }
@ -2253,46 +2251,6 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<Supply>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Supply)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(p => p.Code).IsRequired().HasMaxLength(64);
b.Property(p => p.Name).IsRequired().HasMaxLength(256);
b.Property(p => p.TaxNumber).IsRequired();
b.Property(p => p.TaxOffice).HasMaxLength(128);
b.Property(p => p.Country).IsRequired().HasMaxLength(64);
b.Property(p => p.City).IsRequired().HasMaxLength(64);
b.Property(p => p.District).HasMaxLength(64);
b.Property(p => p.Street).HasMaxLength(128);
b.Property(p => p.Address1).HasMaxLength(256);
b.Property(p => p.Address2).HasMaxLength(256);
b.Property(p => p.PostalCode).HasMaxLength(16);
b.Property(p => p.Phone).HasMaxLength(32);
b.Property(p => p.Mobile).HasMaxLength(32);
b.Property(p => p.Fax).HasMaxLength(32);
b.Property(p => p.Email).HasMaxLength(128);
b.Property(p => p.Website).HasMaxLength(128);
b.Property(p => p.CreditLimit).HasPrecision(18, 2);
b.Property(p => p.Status).IsRequired();
b.Property(x => x.CardNumber).HasMaxLength(64);
b.Property(x => x.CurrentBalance).HasDefaultValue(0);
b.Property(x => x.DiscountRate).HasDefaultValue(0);
b.Property(a => a.PerformanceMetricsJson).HasColumnType("text");
b.HasOne(x => x.SupplierType)
.WithMany(x => x.Supplies)
.HasForeignKey(x => x.SupplierTypeId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.SupplyCardType)
.WithMany(x => x.Supplies)
.HasForeignKey(x => x.SupplyCardTypeId)
.OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<CustomerType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.CustomerType)), Prefix.DbSchema);
@ -2313,11 +2271,9 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Ignore<Partner>();
builder.Entity<Customer>(b =>
builder.Entity<Partner>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Customer)), Prefix.DbSchema);
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Partner)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(p => p.Code).IsRequired().HasMaxLength(64);
@ -2336,23 +2292,46 @@ public class PlatformDbContext :
b.Property(p => p.Fax).HasMaxLength(32);
b.Property(p => p.Email).HasMaxLength(128);
b.Property(p => p.Website).HasMaxLength(128);
b.Property(p => p.CreditLimit).HasPrecision(18, 2);
b.Property(p => p.Status).IsRequired();
b.Property(p => p.CreditLimit).HasPrecision(18, 2).HasDefaultValue(0);
//Supplier configuration
b.Property(x => x.CardNumber).HasMaxLength(64);
b.Property(x => x.CurrentBalance).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.DiscountRate).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(a => a.PerformanceMetricsJson).HasColumnType("text");
//Customer configuration
b.Property(x => x.TeamCode).HasMaxLength(95);
b.Property(x => x.TotalRevenue).HasDefaultValue(0);
b.Property(x => x.AverageOrderValue).HasDefaultValue(0);
b.Property(x => x.LifetimeValue).HasDefaultValue(0);
b.Property(p => p.CreditLimit).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.TotalRevenue).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.AverageOrderValue).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.LifetimeValue).HasPrecision(18, 2).HasDefaultValue(0);
b.HasOne(x => x.SupplierType)
.WithMany(x => x.Partners)
.HasForeignKey(x => x.SupplierTypeId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.SupplyCardType)
.WithMany(x => x.Partners)
.HasForeignKey(x => x.SupplyCardTypeId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.CustomerType)
.WithMany(x => x.Customers)
.WithMany(x => x.Partners)
.HasForeignKey(x => x.CustomerTypeId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.CustomerSegment)
.WithMany(x => x.Customers)
.WithMany(x => x.Partners)
.HasForeignKey(x => x.CustomerSegmentId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.AssignedEmployee)
.WithMany(x => x.Partners)
.HasForeignKey(x => x.AssignedEmployeeId)
.OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<PartnerBank>(b =>
@ -2367,9 +2346,9 @@ public class PlatformDbContext :
b.Property(pb => pb.AccountOwner).IsRequired().HasMaxLength(128);
b.Property(pb => pb.BranchName).HasMaxLength(128);
b.Property(pb => pb.AccountType).HasMaxLength(64);
b.Property(pb => pb.Balance).HasPrecision(18, 2);
b.Property(pb => pb.OverdraftLimit).HasPrecision(18, 2);
b.Property(pb => pb.DailyTransferLimit).HasPrecision(18, 2);
b.Property(pb => pb.Balance).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(pb => pb.OverdraftLimit).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(pb => pb.DailyTransferLimit).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(pb => pb.IsDefault).HasDefaultValue(false);
b.Property(pb => pb.IsActive).HasDefaultValue(true);

View file

@ -83,7 +83,7 @@ public class DatabaseViewSeeder : IDataSeedContributor, ITransientDependency
+ COALESCE(lvl4.Name, '''')
+ CASE WHEN lvl4.Name IS NOT NULL THEN N'' -> '' ELSE N'''' END
+ lvl5.Name AS HierarchyPath
FROM T_Scp_MaterialGroup lvl5
FROM {fullTableName} lvl5
LEFT JOIN {fullTableName} lvl4 ON lvl5.ParentGroupId = lvl4.Id
LEFT JOIN {fullTableName} lvl3 ON lvl4.ParentGroupId = lvl3.Id
LEFT JOIN {fullTableName} lvl2 ON lvl3.ParentGroupId = lvl2.Id