AiBot ListformSeeder

This commit is contained in:
Sedat ÖZTÜRK 2025-12-03 17:52:02 +03:00
parent 0f790b1183
commit ddc8054bb4
11 changed files with 312 additions and 47 deletions

View file

@ -1,7 +1,10 @@
{ {
"AiBots": [ "AiBots": [
{ {
"BotName": "Chat Bot" "BotName": "Chat Bot",
"Description": "A general purpose chat bot that can answer questions and have conversations.",
"ApiUrl": "https://api.openai.com/v1/chat/completions",
"IsActive": true
} }
], ],
"Settings": [ "Settings": [

View file

@ -27,6 +27,9 @@ namespace Erp.Platform.Data.Seeds;
public class AiBotSeedDto public class AiBotSeedDto
{ {
public string BotName { get; set; } public string BotName { get; set; }
public string Description { get; set; }
public string ApiUrl { get; set; }
public bool IsActive { get; set; }
} }
public class LanguageTextsSeedDto public class LanguageTextsSeedDto
@ -674,6 +677,9 @@ public class HostDataSeeder : IDataSeedContributor, ITransientDependency
await _aiBotRepository.InsertAsync(new AiBot await _aiBotRepository.InsertAsync(new AiBot
{ {
BotName = item.BotName, BotName = item.BotName,
Description = item.Description,
ApiUrl = item.ApiUrl,
IsActive = item.IsActive
}); });
} }
} }

View file

@ -3151,6 +3151,12 @@
"en": "Access Failed Count", "en": "Access Failed Count",
"tr": "Başarısız Erişim Sayısı" "tr": "Başarısız Erişim Sayısı"
}, },
{
"resourceName": "Platform",
"key": "App.AiBot",
"en": "AI Bots",
"tr": "Yapay Zeka Botları"
},
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "Abp.Identity.Ai", "key": "Abp.Identity.Ai",

View file

@ -56,7 +56,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -528,7 +529,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = true, IsSubForm = true,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -989,7 +991,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -1361,7 +1364,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -1506,6 +1510,147 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
} }
#endregion #endregion
#region AiBot
listFormName = AppCodes.AiBot;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
{
var listForm = await _listFormRepository.InsertAsync(
new ListForm()
{
ListFormType = ListFormTypeEnum.List,
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,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot)),
KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Int32,
SortMode = GridOptions.SortModeSingle,
FilterRowJson = DefaultFilterRowJson,
HeaderFilterJson = DefaultHeaderFilterJson,
SearchPanelJson = DefaultSearchPanelJson,
GroupPanelJson = DefaultGroupPanelJson,
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(listFormName),
PagerOptionJson = DefaultPagerOptionJson,
DeleteCommand = $"DELETE FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.AiBot))}\" WHERE \"Id\"=@Id",
DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "Id", FieldDbType = DbType.Int32, Value = "@ID", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}),
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 350, true, true, true, true, false),
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
{
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [
new EditingFormItemDto { Order=1, DataField="BotName", ColSpan=1, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=2, DataField="Description", ColSpan=1, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=3, DataField="ApiUrl", ColSpan=1, IsRequired=true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=4, DataField="IsActive", ColSpan=1, IsRequired=true, EditorType2=EditorTypes.dxCheckBox }
]}
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
})
}
);
#region AiBot Fields
await _listFormFieldRepository.InsertManyAsync(
[
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
Width = 100,
ListOrderNo = 1,
Visible = false,
IsActive = true,
IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "BotName",
Width = 100,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Description",
Width = 400,
ListOrderNo = 3,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "ApiUrl",
Width = 400,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
Width = 100,
ListOrderNo = 5,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
#region Language #region Language
listFormName = AppCodes.Languages.Language; listFormName = AppCodes.Languages.Language;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
@ -1513,7 +1658,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -1663,7 +1809,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = true, IsSubForm = true,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -1843,7 +1990,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -2017,7 +2165,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -2298,7 +2447,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -2429,7 +2579,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -2900,7 +3051,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3131,7 +3283,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3322,7 +3475,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3548,7 +3702,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3656,7 +3811,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm() new ListForm()
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3764,7 +3920,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -3919,7 +4076,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -4005,7 +4163,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -4208,7 +4367,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,
@ -4355,7 +4515,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
var listForm = await _listFormRepository.InsertAsync( var listForm = await _listFormRepository.InsertAsync(
new ListForm new ListForm
{ {
ListFormType = ListFormTypeEnum.List, ExportJson = DefaultExportJson, ListFormType = ListFormTypeEnum.List,
ExportJson = DefaultExportJson,
IsSubForm = false, IsSubForm = false,
ShowNote = true, ShowNote = true,
LayoutJson = DefaultLayoutJson, LayoutJson = DefaultLayoutJson,

View file

@ -1022,7 +1022,7 @@
"ParentCode": null, "ParentCode": null,
"Code": "App.Platform", "Code": "App.Platform",
"DisplayName": "App.Platform", "DisplayName": "App.Platform",
"Order": 100, "Order": 100000,
"Url": null, "Url": null,
"Icon": "FcTabletAndroid", "Icon": "FcTabletAndroid",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -1088,11 +1088,21 @@
"RequiredPermissionName": "App.Settings.GlobalSearch", "RequiredPermissionName": "App.Settings.GlobalSearch",
"IsDisabled": false "IsDisabled": false
}, },
{
"ParentCode": "App.Saas",
"Code": "App.AiBot",
"DisplayName": "App.AiBot",
"Order": 4,
"Url": "/admin/list/App.AiBot",
"Icon": "FcDepartment",
"RequiredPermissionName": "App.AiBot",
"IsDisabled": false
},
{ {
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.Languages", "Code": "App.Languages",
"DisplayName": "App.Languages", "DisplayName": "App.Languages",
"Order": 4, "Order": 5,
"Url": null, "Url": null,
"Icon": "FcGlobe", "Icon": "FcGlobe",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -1122,7 +1132,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.Routes", "Code": "App.Routes",
"DisplayName": "App.Routes", "DisplayName": "App.Routes",
"Order": 5, "Order": 6,
"Url": "/admin/list/App.Routes", "Url": "/admin/list/App.Routes",
"Icon": "FaSynagogue", "Icon": "FaSynagogue",
"RequiredPermissionName": "App.Routes", "RequiredPermissionName": "App.Routes",
@ -1132,7 +1142,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.Menus", "Code": "App.Menus",
"DisplayName": "App.Menus", "DisplayName": "App.Menus",
"Order": 6, "Order": 7,
"Url": null, "Url": null,
"Icon": "FaSchlix", "Icon": "FaSchlix",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -1162,7 +1172,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.Listforms", "Code": "App.Listforms",
"DisplayName": "App.Listforms", "DisplayName": "App.Listforms",
"Order": 7, "Order": 8,
"Url": null, "Url": null,
"Icon": "FcList", "Icon": "FcList",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -1202,7 +1212,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.Notifications", "Code": "App.Notifications",
"DisplayName": "App.Notifications", "DisplayName": "App.Notifications",
"Order": 8, "Order": 9,
"Url": null, "Url": null,
"Icon": "FcWorkflow", "Icon": "FcWorkflow",
"RequiredPermissionName": null, "RequiredPermissionName": null,
@ -1232,7 +1242,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.BackgroundWorkers", "Code": "App.BackgroundWorkers",
"DisplayName": "App.BackgroundWorkers", "DisplayName": "App.BackgroundWorkers",
"Order": 9, "Order": 10,
"Url": "/admin/list/App.BackgroundWorkers", "Url": "/admin/list/App.BackgroundWorkers",
"Icon": "FcScatterPlot", "Icon": "FcScatterPlot",
"RequiredPermissionName": "App.BackgroundWorkers", "RequiredPermissionName": "App.BackgroundWorkers",
@ -1242,7 +1252,7 @@
"ParentCode": "App.Saas", "ParentCode": "App.Saas",
"Code": "App.ForumManagement", "Code": "App.ForumManagement",
"DisplayName": "App.ForumManagement", "DisplayName": "App.ForumManagement",
"Order": 10, "Order": 11,
"Url": "/admin/forumManagement", "Url": "/admin/forumManagement",
"Icon": "FcReading", "Icon": "FcReading",
"RequiredPermissionName": "App.ForumManagement", "RequiredPermissionName": "App.ForumManagement",

View file

@ -1,9 +1,5 @@
{ {
"PermissionGroupDefinitionRecords": [ "PermissionGroupDefinitionRecords": [
{
"Name": "App.Platform",
"DisplayName": "App.Platform"
},
{ {
"Name": "App.Saas", "Name": "App.Saas",
"DisplayName": "App.Saas" "DisplayName": "App.Saas"
@ -55,6 +51,10 @@
{ {
"Name": "App.Accounting", "Name": "App.Accounting",
"DisplayName": "App.Accounting" "DisplayName": "App.Accounting"
},
{
"Name": "App.Platform",
"DisplayName": "App.Platform"
} }
], ],
"PermissionDefinitionRecords": [ "PermissionDefinitionRecords": [
@ -67,15 +67,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs" "MenuGroup": "Erp|Kurs"
}, },
{
"GroupName": "App.Platform",
"Name": "App.Product.ListComponent",
"ParentName": null,
"DisplayName": "App.Product.ListComponent",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{ {
"GroupName": "App.Saas", "GroupName": "App.Saas",
"Name": "AbpTenantManagement.Tenants", "Name": "AbpTenantManagement.Tenants",
@ -220,6 +211,71 @@
"MultiTenancySide": 2, "MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs" "MenuGroup": "Erp|Kurs"
}, },
{
"GroupName": "App.Saas",
"Name": "App.AiBot",
"ParentName": null,
"DisplayName": "App.AiBot",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Create",
"ParentName": "App.AiBot",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Delete",
"ParentName": "App.AiBot",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Export",
"ParentName": "App.AiBot",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Import",
"ParentName": "App.AiBot",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Note",
"ParentName": "App.AiBot",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Saas",
"Name": "App.AiBot.Update",
"ParentName": "App.AiBot",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Erp|Kurs"
},
{ {
"GroupName": "App.Saas", "GroupName": "App.Saas",
"Name": "App.Settings.SettingDefinitions", "Name": "App.Settings.SettingDefinitions",
@ -13037,4 +13093,4 @@
"MenuGroup": "Erp" "MenuGroup": "Erp"
} }
] ]
} }

View file

@ -329,6 +329,7 @@ public static class SeedConsts
public const string GlobalSearch = Default + ".GlobalSearch"; public const string GlobalSearch = Default + ".GlobalSearch";
public const string SettingDefinitions = Default + ".SettingDefinitions"; public const string SettingDefinitions = Default + ".SettingDefinitions";
} }
public const string AiBot = Prefix.App + ".AiBot";
public static class Languages public static class Languages
{ {
public const string Default = Prefix.App + ".Languages"; public const string Default = Prefix.App + ".Languages";

View file

@ -6,6 +6,7 @@ namespace Erp.Platform.Entities;
public class AiBot : Entity<Guid> public class AiBot : Entity<Guid>
{ {
public string BotName { get; set; } public string BotName { get; set; }
public string Description { get; set; }
public string ApiUrl { get; set; }
public bool IsActive { get; set; }
} }

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Erp.Platform.Migrations namespace Erp.Platform.Migrations
{ {
[DbContext(typeof(PlatformDbContext))] [DbContext(typeof(PlatformDbContext))]
[Migration("20251202182338_Initial")] [Migration("20251203145036_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -720,11 +720,20 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("ApiUrl")
.HasColumnType("nvarchar(max)");
b.Property<string>("BotName") b.Property<string>("BotName")
.IsRequired() .IsRequired()
.HasMaxLength(128) .HasMaxLength(128)
.HasColumnType("nvarchar(128)"); .HasColumnType("nvarchar(128)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsActive")
.HasColumnType("bit");
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Plat_H_AiBot", (string)null); b.ToTable("Plat_H_AiBot", (string)null);

View file

@ -1645,7 +1645,10 @@ namespace Erp.Platform.Migrations
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
BotName = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false) BotName = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
ApiUrl = table.Column<string>(type: "nvarchar(max)", nullable: true),
IsActive = table.Column<bool>(type: "bit", nullable: false)
}, },
constraints: table => constraints: table =>
{ {

View file

@ -717,11 +717,20 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("ApiUrl")
.HasColumnType("nvarchar(max)");
b.Property<string>("BotName") b.Property<string>("BotName")
.IsRequired() .IsRequired()
.HasMaxLength(128) .HasMaxLength(128)
.HasColumnType("nvarchar(128)"); .HasColumnType("nvarchar(128)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsActive")
.HasColumnType("bit");
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Plat_H_AiBot", (string)null); b.ToTable("Plat_H_AiBot", (string)null);