diff --git a/backend/dev.Dockerfile b/backend/dev.Dockerfile
index 42b5c5c8d..47224d580 100644
--- a/backend/dev.Dockerfile
+++ b/backend/dev.Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/sdk:7.0
+FROM mcr.microsoft.com/dotnet/sdk:8.0
# needed in sln file
RUN mkdir /build && echo '' > /build/docker-compose.dcproj
diff --git a/backend/global.json b/backend/global.json
new file mode 100644
index 000000000..b5b37b60d
--- /dev/null
+++ b/backend/global.json
@@ -0,0 +1,7 @@
+{
+ "sdk": {
+ "version": "8.0.0",
+ "rollForward": "latestMajor",
+ "allowPrerelease": false
+ }
+}
\ No newline at end of file
diff --git a/backend/src/AcmStatisticsBackend.Application/AcmStatisticsBackend.Application.csproj b/backend/src/AcmStatisticsBackend.Application/AcmStatisticsBackend.Application.csproj
index 4d815c251..fd3b1e4a1 100644
--- a/backend/src/AcmStatisticsBackend.Application/AcmStatisticsBackend.Application.csproj
+++ b/backend/src/AcmStatisticsBackend.Application/AcmStatisticsBackend.Application.csproj
@@ -1,7 +1,7 @@
1.0.0.0
- net7.0
+ net8.0
AcmStatisticsBackend.Application
AcmStatisticsBackend.Application
false
@@ -21,6 +21,9 @@
-
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/backend/src/AcmStatisticsBackend.Application/Crawlers/Dto/QueryWorkerHistoryDto.cs b/backend/src/AcmStatisticsBackend.Application/Crawlers/Dto/QueryWorkerHistoryDto.cs
index 3fe54bd40..2d593646b 100644
--- a/backend/src/AcmStatisticsBackend.Application/Crawlers/Dto/QueryWorkerHistoryDto.cs
+++ b/backend/src/AcmStatisticsBackend.Application/Crawlers/Dto/QueryWorkerHistoryDto.cs
@@ -3,7 +3,6 @@
using System.Diagnostics.CodeAnalysis;
using Abp.AutoMapper;
using Abp.Runtime.Validation;
-using Castle.Core.Internal;
namespace AcmStatisticsBackend.Crawlers.Dto
{
@@ -63,7 +62,7 @@ public class QueryWorkerHistoryDto : ICustomValidate
public void AddValidationErrors(CustomValidationContext context)
{
- if (!ErrorMessage.IsNullOrEmpty())
+ if (!string.IsNullOrEmpty(ErrorMessage))
{
if (SolvedList != null || SubmissionsByCrawlerName != null)
{
diff --git a/backend/src/AcmStatisticsBackend.Core/AcmStatisticsBackend.Core.csproj b/backend/src/AcmStatisticsBackend.Core/AcmStatisticsBackend.Core.csproj
index 608df666e..b824c812a 100644
--- a/backend/src/AcmStatisticsBackend.Core/AcmStatisticsBackend.Core.csproj
+++ b/backend/src/AcmStatisticsBackend.Core/AcmStatisticsBackend.Core.csproj
@@ -1,7 +1,7 @@
1.0.0.0
- net7.0
+ net8.0
AcmStatisticsBackend.Core
AcmStatisticsBackend.Core
false
@@ -14,9 +14,9 @@
-
-
-
-
+
+
+
+
diff --git a/backend/src/AcmStatisticsBackend.Core/ServiceClients/CrawlerApiBackendClient.cs b/backend/src/AcmStatisticsBackend.Core/ServiceClients/CrawlerApiBackendClient.cs
index 0ea2de170..4065ecfa9 100644
--- a/backend/src/AcmStatisticsBackend.Core/ServiceClients/CrawlerApiBackendClient.cs
+++ b/backend/src/AcmStatisticsBackend.Core/ServiceClients/CrawlerApiBackendClient.cs
@@ -37,7 +37,7 @@ public async Task> GetCrawlerMeta()
#pragma warning disable SA1300
private class GetMetaReturn
{
- public string error { get; set; }
+ public bool error { get; set; }
public IDictionary data { get; set; }
}
diff --git a/backend/src/AcmStatisticsBackend.EntityFrameworkCore/AcmStatisticsBackend.EntityFrameworkCore.csproj b/backend/src/AcmStatisticsBackend.EntityFrameworkCore/AcmStatisticsBackend.EntityFrameworkCore.csproj
index 4f514e7a4..11660a235 100644
--- a/backend/src/AcmStatisticsBackend.EntityFrameworkCore/AcmStatisticsBackend.EntityFrameworkCore.csproj
+++ b/backend/src/AcmStatisticsBackend.EntityFrameworkCore/AcmStatisticsBackend.EntityFrameworkCore.csproj
@@ -1,17 +1,17 @@
- net7.0
+ net8.0
AcmStatisticsBackend
true
true
true
-
+
all
runtime; build; native; contentfiles; analyzers
-
+
diff --git a/backend/src/AcmStatisticsBackend.EntityFrameworkCore/Migrations/20250813025256_UpgradeAbp840.Designer.cs b/backend/src/AcmStatisticsBackend.EntityFrameworkCore/Migrations/20250813025256_UpgradeAbp840.Designer.cs
new file mode 100644
index 000000000..bdda75aeb
--- /dev/null
+++ b/backend/src/AcmStatisticsBackend.EntityFrameworkCore/Migrations/20250813025256_UpgradeAbp840.Designer.cs
@@ -0,0 +1,2332 @@
+//
+using System;
+using AcmStatisticsBackend.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace AcmStatisticsBackend.Migrations
+{
+ [DbContext(typeof(AcmStatisticsBackendDbContext))]
+ [Migration("20250813025256_UpgradeAbp840")]
+ partial class UpgradeAbp840
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.19")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("Abp.Application.Editions.Edition", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DisplayName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(32)
+ .HasColumnType("varchar(32)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AbpEditions");
+ });
+
+ modelBuilder.Entity("Abp.Application.Features.FeatureSetting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Discriminator")
+ .IsRequired()
+ .HasMaxLength(21)
+ .HasColumnType("varchar(21)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(2000)
+ .HasColumnType("varchar(2000)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AbpFeatures");
+
+ b.HasDiscriminator().HasValue("FeatureSetting");
+
+ b.UseTphMappingStrategy();
+ });
+
+ modelBuilder.Entity("Abp.Auditing.AuditLog", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BrowserInfo")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("ClientIpAddress")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("ClientName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("CustomData")
+ .HasMaxLength(2000)
+ .HasColumnType("varchar(2000)");
+
+ b.Property("Exception")
+ .HasMaxLength(2000)
+ .HasColumnType("varchar(2000)");
+
+ b.Property("ExceptionMessage")
+ .HasMaxLength(1024)
+ .HasColumnType("varchar(1024)");
+
+ b.Property("ExecutionDuration")
+ .HasColumnType("int");
+
+ b.Property("ExecutionTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ImpersonatorTenantId")
+ .HasColumnType("int");
+
+ b.Property("ImpersonatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("MethodName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("Parameters")
+ .HasMaxLength(1024)
+ .HasColumnType("varchar(1024)");
+
+ b.Property("ReturnValue")
+ .HasColumnType("longtext");
+
+ b.Property("ServiceName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "ExecutionDuration");
+
+ b.HasIndex("TenantId", "ExecutionTime");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.ToTable("AbpAuditLogs");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.PermissionSetting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Discriminator")
+ .IsRequired()
+ .HasMaxLength(21)
+ .HasColumnType("varchar(21)");
+
+ b.Property("IsGranted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name");
+
+ b.ToTable("AbpPermissions");
+
+ b.HasDiscriminator().HasValue("PermissionSetting");
+
+ b.UseTphMappingStrategy();
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Roles.RoleClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("ClaimValue")
+ .HasColumnType("longtext");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("RoleId")
+ .HasColumnType("int");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.HasIndex("TenantId", "ClaimType");
+
+ b.ToTable("AbpRoleClaims");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserAccount", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("EmailAddress")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("bigint");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.Property("UserLinkId")
+ .HasColumnType("bigint");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EmailAddress");
+
+ b.HasIndex("UserName");
+
+ b.HasIndex("TenantId", "EmailAddress");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.HasIndex("TenantId", "UserName");
+
+ b.ToTable("AbpUserAccounts");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("ClaimValue")
+ .HasColumnType("longtext");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("TenantId", "ClaimType");
+
+ b.ToTable("AbpUserClaims");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserLogin", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("LoginProvider")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("ProviderKey")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("ProviderKey", "TenantId")
+ .IsUnique();
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.HasIndex("TenantId", "LoginProvider", "ProviderKey");
+
+ b.ToTable("AbpUserLogins");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserLoginAttempt", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BrowserInfo")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("ClientIpAddress")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("ClientName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Result")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("TenancyName")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.Property("UserNameOrEmailAddress")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId", "TenantId");
+
+ b.HasIndex("TenancyName", "UserNameOrEmailAddress", "Result");
+
+ b.ToTable("AbpUserLoginAttempts");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserOrganizationUnit", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("IsDeleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("OrganizationUnitId")
+ .HasColumnType("bigint");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "OrganizationUnitId");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.ToTable("AbpUserOrganizationUnits");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserRole", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("RoleId")
+ .HasColumnType("int");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("TenantId", "RoleId");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.ToTable("AbpUserRoles");
+ });
+
+ modelBuilder.Entity("Abp.Authorization.Users.UserToken", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ExpireDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LoginProvider")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("Name")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.Property("Value")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.ToTable("AbpUserTokens");
+ });
+
+ modelBuilder.Entity("Abp.BackgroundJobs.BackgroundJobInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("IsAbandoned")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("JobArgs")
+ .IsRequired()
+ .HasMaxLength(1048576)
+ .HasColumnType("longtext");
+
+ b.Property("JobType")
+ .IsRequired()
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("LastTryTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("NextTryTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Priority")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("TryCount")
+ .HasColumnType("smallint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IsAbandoned", "NextTryTime");
+
+ b.ToTable("AbpBackgroundJobs");
+ });
+
+ modelBuilder.Entity("Abp.Configuration.Setting", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.Property("Value")
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("TenantId", "Name", "UserId")
+ .IsUnique();
+
+ b.ToTable("AbpSettings");
+ });
+
+ modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DynamicPropertyId")
+ .HasColumnType("int");
+
+ b.Property("EntityFullName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DynamicPropertyId");
+
+ b.HasIndex("EntityFullName", "DynamicPropertyId", "TenantId")
+ .IsUnique();
+
+ b.ToTable("AbpDynamicEntityProperties");
+ });
+
+ modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicEntityPropertyValue", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DynamicEntityPropertyId")
+ .HasColumnType("int");
+
+ b.Property("EntityId")
+ .HasColumnType("longtext");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DynamicEntityPropertyId");
+
+ b.ToTable("AbpDynamicEntityPropertyValues");
+ });
+
+ modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicProperty", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DisplayName")
+ .HasColumnType("longtext");
+
+ b.Property("InputType")
+ .HasColumnType("longtext");
+
+ b.Property("Permission")
+ .HasColumnType("longtext");
+
+ b.Property("PropertyName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PropertyName", "TenantId")
+ .IsUnique();
+
+ b.ToTable("AbpDynamicProperties");
+ });
+
+ modelBuilder.Entity("Abp.DynamicEntityProperties.DynamicPropertyValue", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("DynamicPropertyId")
+ .HasColumnType("int");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DynamicPropertyId");
+
+ b.ToTable("AbpDynamicPropertyValues");
+ });
+
+ modelBuilder.Entity("Abp.EntityHistory.EntityChange", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("ChangeTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ChangeType")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("EntityChangeSetId")
+ .HasColumnType("bigint");
+
+ b.Property("EntityId")
+ .HasMaxLength(48)
+ .HasColumnType("varchar(48)");
+
+ b.Property("EntityTypeFullName")
+ .HasMaxLength(192)
+ .HasColumnType("varchar(192)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityChangeSetId");
+
+ b.HasIndex("EntityTypeFullName", "EntityId");
+
+ b.ToTable("AbpEntityChanges");
+ });
+
+ modelBuilder.Entity("Abp.EntityHistory.EntityChangeSet", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BrowserInfo")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("ClientIpAddress")
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("ClientName")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ExtensionData")
+ .HasColumnType("longtext");
+
+ b.Property("ImpersonatorTenantId")
+ .HasColumnType("int");
+
+ b.Property("ImpersonatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Reason")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "CreationTime");
+
+ b.HasIndex("TenantId", "Reason");
+
+ b.HasIndex("TenantId", "UserId");
+
+ b.ToTable("AbpEntityChangeSets");
+ });
+
+ modelBuilder.Entity("Abp.EntityHistory.EntityPropertyChange", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("EntityChangeId")
+ .HasColumnType("bigint");
+
+ b.Property("NewValue")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("NewValueHash")
+ .HasColumnType("longtext");
+
+ b.Property("OriginalValue")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("OriginalValueHash")
+ .HasColumnType("longtext");
+
+ b.Property("PropertyName")
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("PropertyTypeFullName")
+ .HasMaxLength(192)
+ .HasColumnType("varchar(192)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityChangeId");
+
+ b.ToTable("AbpEntityPropertyChanges");
+ });
+
+ modelBuilder.Entity("Abp.Localization.ApplicationLanguage", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeleterUserId")
+ .HasColumnType("bigint");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DisplayName")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)");
+
+ b.Property("Icon")
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsDisabled")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Name");
+
+ b.ToTable("AbpLanguages");
+ });
+
+ modelBuilder.Entity("Abp.Localization.ApplicationLanguageText", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Key")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("LanguageName")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("LastModifierUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Source")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .IsRequired()
+ .HasMaxLength(67108864)
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId", "Source", "LanguageName", "Key");
+
+ b.ToTable("AbpLanguageTexts");
+ });
+
+ modelBuilder.Entity("Abp.Notifications.NotificationInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Data")
+ .HasMaxLength(1048576)
+ .HasColumnType("longtext");
+
+ b.Property("DataTypeName")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("EntityId")
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("EntityTypeAssemblyQualifiedName")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("EntityTypeName")
+ .HasMaxLength(250)
+ .HasColumnType("varchar(250)");
+
+ b.Property("ExcludedUserIds")
+ .HasMaxLength(131072)
+ .HasColumnType("longtext");
+
+ b.Property("NotificationName")
+ .IsRequired()
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("Severity")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("TargetNotifiers")
+ .HasMaxLength(1024)
+ .HasColumnType("varchar(1024)");
+
+ b.Property("TenantIds")
+ .HasMaxLength(131072)
+ .HasColumnType("longtext");
+
+ b.Property("UserIds")
+ .HasMaxLength(131072)
+ .HasColumnType("longtext");
+
+ b.HasKey("Id");
+
+ b.ToTable("AbpNotifications");
+ });
+
+ modelBuilder.Entity("Abp.Notifications.NotificationSubscriptionInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("EntityId")
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("EntityTypeAssemblyQualifiedName")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("EntityTypeName")
+ .HasMaxLength(250)
+ .HasColumnType("varchar(250)");
+
+ b.Property("NotificationName")
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("TargetNotifiers")
+ .HasMaxLength(1024)
+ .HasColumnType("varchar(1024)");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.Property("UserId")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NotificationName", "EntityTypeName", "EntityId", "UserId");
+
+ b.HasIndex("TenantId", "NotificationName", "EntityTypeName", "EntityId", "UserId");
+
+ b.ToTable("AbpNotificationSubscriptions");
+ });
+
+ modelBuilder.Entity("Abp.Notifications.TenantNotificationInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CreatorUserId")
+ .HasColumnType("bigint");
+
+ b.Property("Data")
+ .HasMaxLength(1048576)
+ .HasColumnType("longtext");
+
+ b.Property("DataTypeName")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("EntityId")
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("EntityTypeAssemblyQualifiedName")
+ .HasMaxLength(512)
+ .HasColumnType("varchar(512)");
+
+ b.Property("EntityTypeName")
+ .HasMaxLength(250)
+ .HasColumnType("varchar(250)");
+
+ b.Property("NotificationName")
+ .IsRequired()
+ .HasMaxLength(96)
+ .HasColumnType("varchar(96)");
+
+ b.Property("Severity")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("TenantId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TenantId");
+
+ b.ToTable("AbpTenantNotifications");
+ });
+
+ modelBuilder.Entity("Abp.Notifications.UserNotificationInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property