// using System; using MiaoJiZhang.Infrastructure.Persistence; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace MiaoJiZhang.Infrastructure.Persistence.Migrations { [DbContext(typeof(AppDbContext))] partial class AppDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 64); MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AdminAuditLog", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Action") .IsRequired() .HasMaxLength(80) .HasColumnType("varchar(80)"); b.Property("AdminUserId") .HasColumnType("bigint"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("Detail") .HasMaxLength(1000) .HasColumnType("varchar(1000)"); b.Property("HttpMethod") .IsRequired() .HasMaxLength(12) .HasColumnType("varchar(12)"); b.Property("IpAddress") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("Path") .IsRequired() .HasMaxLength(300) .HasColumnType("varchar(300)"); b.Property("Resource") .IsRequired() .HasMaxLength(120) .HasColumnType("varchar(120)"); b.Property("StatusCode") .HasColumnType("int"); b.Property("Success") .HasColumnType("tinyint(1)"); b.Property("Username") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.HasKey("Id"); b.HasIndex("CreatedAt"); b.HasIndex("AdminUserId", "CreatedAt"); b.ToTable("AdminAuditLogs"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AdminSession", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AbsoluteExpiresAt") .HasColumnType("datetime(6)"); b.Property("AdminUserId") .HasColumnType("bigint"); b.Property("AuthVersion") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("CsrfTokenHash") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("ExpiresAt") .HasColumnType("datetime(6)"); b.Property("IpAddress") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("LastSeenAt") .HasColumnType("datetime(6)"); b.Property("RevokedAt") .HasColumnType("datetime(6)"); b.Property("TokenHash") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("UserAgent") .HasMaxLength(300) .HasColumnType("varchar(300)"); b.HasKey("Id"); b.HasIndex("TokenHash") .IsUnique(); b.HasIndex("AdminUserId", "RevokedAt", "ExpiresAt"); b.ToTable("AdminSessions"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AdminUser", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AuthVersion") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("FailedLoginCount") .HasColumnType("int"); b.Property("IsActive") .HasColumnType("tinyint(1)"); b.Property("LastLoginAt") .HasColumnType("datetime(6)"); b.Property("LockedUntil") .HasColumnType("datetime(6)"); b.Property("MustChangePassword") .HasColumnType("tinyint(1)"); b.Property("PasswordHash") .IsRequired() .HasMaxLength(128) .HasColumnType("varchar(128)"); b.Property("Role") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("Username") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.HasKey("Id"); b.HasIndex("Username") .IsUnique(); b.HasIndex("IsActive", "Role"); b.ToTable("AdminUsers"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AiAvatar", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("DefaultName") .IsRequired() .HasColumnType("longtext"); b.Property("ImageUrl") .HasColumnType("longtext"); b.Property("IsEnabled") .HasColumnType("tinyint(1)"); b.Property("Key") .IsRequired() .HasColumnType("varchar(255)"); b.Property("SpeechTic") .IsRequired() .HasColumnType("longtext"); b.HasKey("Id"); b.HasIndex("Key") .IsUnique(); b.ToTable("AiAvatars"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AiCompanionSetting", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AvatarKey") .IsRequired() .HasColumnType("longtext"); b.Property("CustomName") .HasColumnType("longtext"); b.Property("PersonaKey") .IsRequired() .HasColumnType("longtext"); b.Property("ProactiveLevel") .HasColumnType("int"); b.Property("RoastLevel") .HasColumnType("int"); b.Property("StickerFrequency") .HasColumnType("int"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("AiCompanionSettings"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AiPersona", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Description") .IsRequired() .HasColumnType("longtext"); b.Property("IsEnabled") .HasColumnType("tinyint(1)"); b.Property("Key") .IsRequired() .HasColumnType("varchar(255)"); b.Property("Name") .IsRequired() .HasColumnType("longtext"); b.Property("PromptTemplate") .IsRequired() .HasColumnType("longtext"); b.Property("SampleLine") .IsRequired() .HasColumnType("longtext"); b.Property("Version") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Key") .IsUnique(); b.ToTable("AiPersonas"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AppConfig", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Key") .IsRequired() .HasColumnType("varchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("Value") .IsRequired() .HasColumnType("longtext"); b.Property("Version") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("Key") .IsUnique(); b.ToTable("AppConfigs"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Budget", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Amount") .HasPrecision(12, 2) .HasColumnType("decimal(12,2)"); b.Property("CategoryId") .HasColumnType("bigint"); b.Property("LedgerId") .HasColumnType("bigint"); b.Property("Period") .HasColumnType("int"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("LedgerId", "Period", "CategoryId") .IsUnique(); b.ToTable("Budgets"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.BudgetNotificationReceipt", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("BudgetId") .HasColumnType("bigint"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("Period") .HasColumnType("int"); b.Property("Threshold") .HasColumnType("int"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("UserId", "Period"); b.HasIndex("BudgetId", "Period", "Threshold") .IsUnique(); b.ToTable("BudgetNotificationReceipts"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Category", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("ColorKey") .IsRequired() .HasMaxLength(32) .HasColumnType("varchar(32)"); b.Property("IconKey") .IsRequired() .HasColumnType("longtext"); b.Property("IsDeleted") .HasColumnType("tinyint(1)"); b.Property("Name") .IsRequired() .HasColumnType("longtext"); b.Property("SortOrder") .HasColumnType("int"); b.Property("Type") .HasColumnType("int"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.ToTable("Categories"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.ChatMessage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Content") .IsRequired() .HasColumnType("longtext"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("Role") .HasColumnType("int"); b.Property("TransactionId") .HasColumnType("bigint"); b.Property("Type") .HasColumnType("int"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("UserId", "CreatedAt"); b.ToTable("ChatMessages"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Ledger", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("IconKey") .IsRequired() .HasColumnType("longtext"); b.Property("IsDefault") .HasColumnType("tinyint(1)"); b.Property("Name") .IsRequired() .HasColumnType("longtext"); b.Property("OwnerId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("OwnerId"); b.ToTable("Ledgers"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushDelivery", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AcceptedAt") .HasColumnType("datetime(6)"); b.Property("AttemptCount") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("ErrorCode") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("ErrorMessage") .HasMaxLength(400) .HasColumnType("varchar(400)"); b.Property("LeaseExpiresAt") .HasColumnType("datetime(6)"); b.Property("LeaseId") .HasMaxLength(36) .HasColumnType("varchar(36)"); b.Property("NextAttemptAt") .HasColumnType("datetime(6)"); b.Property("Provider") .IsRequired() .HasMaxLength(16) .HasColumnType("varchar(16)"); b.Property("ProviderMessageId") .HasMaxLength(128) .HasColumnType("varchar(128)"); b.Property("PushDeviceId") .HasColumnType("bigint"); b.Property("PushMessageId") .HasColumnType("bigint"); b.Property("State") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("PushDeviceId"); b.HasIndex("PushMessageId", "PushDeviceId") .IsUnique(); b.HasIndex("State", "NextAttemptAt", "LeaseExpiresAt"); b.ToTable("PushDeliveries"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushDevice", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AppVersion") .IsRequired() .HasMaxLength(32) .HasColumnType("varchar(32)"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("DisabledReason") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("Flavor") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("InstallationId") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("IsActive") .HasColumnType("tinyint(1)"); b.Property("LastSeenAt") .HasColumnType("datetime(6)"); b.Property("NotificationsAllowed") .HasColumnType("tinyint(1)"); b.Property("PackageName") .IsRequired() .HasMaxLength(128) .HasColumnType("varchar(128)"); b.Property("Provider") .IsRequired() .HasMaxLength(16) .HasColumnType("varchar(16)"); b.Property("TokenCiphertext") .IsRequired() .HasMaxLength(6144) .HasColumnType("varchar(6144)"); b.Property("TokenHash") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("UnbindTokenHash") .IsRequired() .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("UserId") .HasColumnType("bigint"); b.Property("VersionCode") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("LastSeenAt"); b.HasIndex("PackageName", "InstallationId") .IsUnique(); b.HasIndex("UserId", "IsActive"); b.HasIndex("Provider", "PackageName", "TokenHash") .IsUnique(); b.ToTable("PushDevices"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushMessage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Action") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("Body") .IsRequired() .HasMaxLength(240) .HasColumnType("varchar(240)"); b.Property("CancelledAt") .HasColumnType("datetime(6)"); b.Property("Category") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("CompletedAt") .HasColumnType("datetime(6)"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("EntityId") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("Flavor") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("IsTest") .HasColumnType("tinyint(1)"); b.Property("MaxVersionCode") .HasColumnType("int"); b.Property("MinVersionCode") .HasColumnType("int"); b.Property("ProviderFilter") .HasMaxLength(16) .HasColumnType("varchar(16)"); b.Property("PublicId") .IsRequired() .HasMaxLength(36) .HasColumnType("varchar(36)"); b.Property("ScheduledAt") .HasColumnType("datetime(6)"); b.Property("Source") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("StartedAt") .HasColumnType("datetime(6)"); b.Property("State") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("TargetUserId") .HasColumnType("bigint"); b.Property("TestDeviceId") .HasColumnType("bigint"); b.Property("Title") .IsRequired() .HasMaxLength(80) .HasColumnType("varchar(80)"); b.Property("TtlSeconds") .HasColumnType("int"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.HasKey("Id"); b.HasIndex("PublicId") .IsUnique(); b.HasIndex("State", "ScheduledAt"); b.HasIndex("TargetUserId", "CreatedAt"); b.ToTable("PushMessages"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Sticker", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("GroupKey") .IsRequired() .HasColumnType("longtext"); b.Property("ImageUrl") .HasColumnType("longtext"); b.Property("IsEnabled") .HasColumnType("tinyint(1)"); b.Property("Key") .IsRequired() .HasColumnType("varchar(255)"); b.Property("Label") .IsRequired() .HasColumnType("longtext"); b.Property("TriggerTags") .HasColumnType("longtext"); b.HasKey("Id"); b.HasIndex("Key") .IsUnique(); b.ToTable("Stickers"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Transaction", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Amount") .HasPrecision(12, 2) .HasColumnType("decimal(12,2)"); b.Property("CategoryId") .HasColumnType("bigint"); b.Property("ClientRequestId") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("Counterparty") .HasMaxLength(100) .HasColumnType("varchar(100)"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("DeletedAt") .HasColumnType("datetime(6)"); b.Property("EvidenceFingerprint") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("IsDeleted") .HasColumnType("tinyint(1)"); b.Property("LedgerId") .HasColumnType("bigint"); b.Property("Note") .HasColumnType("longtext"); b.Property("OccurredAt") .HasColumnType("datetime(6)"); b.Property("PaymentMethod") .HasColumnType("longtext"); b.Property("Provider") .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("ProviderTransactionId") .HasMaxLength(128) .HasColumnType("varchar(128)"); b.Property("RecognitionConfidence") .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("RecognitionOccurrenceId") .HasMaxLength(64) .HasColumnType("varchar(64)"); b.Property("Source") .HasColumnType("int"); b.Property("SourceChatMessageId") .HasColumnType("bigint"); b.Property("SourceText") .HasColumnType("longtext"); b.Property("TransferDirection") .HasColumnType("int"); b.Property("Type") .HasColumnType("int"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("CategoryId"); b.HasIndex("LedgerId", "OccurredAt"); b.HasIndex("UserId", "ClientRequestId") .IsUnique(); b.HasIndex("UserId", "IsDeleted"); b.HasIndex("UserId", "RecognitionOccurrenceId") .IsUnique(); b.HasIndex("UserId", "Provider", "ProviderTransactionId") .IsUnique(); b.ToTable("Transactions"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("AccountClosureRequestedAt") .HasColumnType("datetime(6)"); b.Property("AccountClosureScheduledAt") .HasColumnType("datetime(6)"); b.Property("AiChatLimit") .HasColumnType("int"); b.Property("AiChatPeriod") .HasColumnType("int"); b.Property("AiChatUsed") .HasColumnType("int"); b.Property("AiChatWindowStartedAt") .HasColumnType("datetime(6)"); b.Property("AppMode") .HasColumnType("int"); b.Property("AppleUserId") .HasColumnType("longtext"); b.Property("AuthVersion") .HasColumnType("int"); b.Property("AvatarUrl") .HasColumnType("longtext"); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("Email") .HasColumnType("varchar(255)"); b.Property("EmailVerified") .HasColumnType("tinyint(1)"); b.Property("IsBanned") .HasColumnType("tinyint(1)"); b.Property("LastLoginAt") .HasColumnType("datetime(6)"); b.Property("Nickname") .HasMaxLength(32) .HasColumnType("varchar(32)"); b.Property("PasswordHash") .IsRequired() .HasColumnType("longtext"); b.Property("Phone") .HasColumnType("varchar(255)"); b.Property("PhoneVerified") .HasColumnType("tinyint(1)"); b.Property("Username") .IsRequired() .HasMaxLength(32) .HasColumnType("varchar(32)"); b.Property("WeChatOpenId") .HasColumnType("varchar(255)"); b.Property("WeChatUnionId") .HasColumnType("longtext"); b.HasKey("Id"); b.HasIndex("AccountClosureScheduledAt"); b.HasIndex("Email") .IsUnique(); b.HasIndex("Phone") .IsUnique(); b.HasIndex("Username") .IsUnique(); b.HasIndex("WeChatOpenId") .IsUnique(); b.ToTable("Users"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.UserFeaturePermission", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime(6)"); b.Property("IsEnabled") .HasColumnType("tinyint(1)"); b.Property("PermissionKey") .IsRequired() .HasMaxLength(32) .HasColumnType("varchar(32)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("UserId", "PermissionKey") .IsUnique(); b.ToTable("UserFeaturePermissions"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.UserPushPreference", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("Category") .IsRequired() .HasMaxLength(24) .HasColumnType("varchar(24)"); b.Property("IsEnabled") .HasColumnType("tinyint(1)"); b.Property("UpdatedAt") .HasColumnType("datetime(6)"); b.Property("UserId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("UserId", "Category") .IsUnique(); b.ToTable("UserPushPreferences"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AdminSession", b => { b.HasOne("MiaoJiZhang.Domain.Entities.AdminUser", "AdminUser") .WithMany("Sessions") .HasForeignKey("AdminUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AdminUser"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AiCompanionSetting", b => { b.HasOne("MiaoJiZhang.Domain.Entities.User", "User") .WithOne("AiCompanion") .HasForeignKey("MiaoJiZhang.Domain.Entities.AiCompanionSetting", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Budget", b => { b.HasOne("MiaoJiZhang.Domain.Entities.Ledger", "Ledger") .WithMany("Budgets") .HasForeignKey("LedgerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Ledger"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.BudgetNotificationReceipt", b => { b.HasOne("MiaoJiZhang.Domain.Entities.Budget", "Budget") .WithMany() .HasForeignKey("BudgetId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MiaoJiZhang.Domain.Entities.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Budget"); b.Navigation("User"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Ledger", b => { b.HasOne("MiaoJiZhang.Domain.Entities.User", "Owner") .WithMany("Ledgers") .HasForeignKey("OwnerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Owner"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushDelivery", b => { b.HasOne("MiaoJiZhang.Domain.Entities.PushDevice", "PushDevice") .WithMany("Deliveries") .HasForeignKey("PushDeviceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MiaoJiZhang.Domain.Entities.PushMessage", "PushMessage") .WithMany("Deliveries") .HasForeignKey("PushMessageId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("PushDevice"); b.Navigation("PushMessage"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushDevice", b => { b.HasOne("MiaoJiZhang.Domain.Entities.User", "User") .WithMany("PushDevices") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Transaction", b => { b.HasOne("MiaoJiZhang.Domain.Entities.Category", "Category") .WithMany() .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MiaoJiZhang.Domain.Entities.Ledger", "Ledger") .WithMany("Transactions") .HasForeignKey("LedgerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Category"); b.Navigation("Ledger"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.UserFeaturePermission", b => { b.HasOne("MiaoJiZhang.Domain.Entities.User", "User") .WithMany("FeaturePermissions") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.UserPushPreference", b => { b.HasOne("MiaoJiZhang.Domain.Entities.User", "User") .WithMany("PushPreferences") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.AdminUser", b => { b.Navigation("Sessions"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.Ledger", b => { b.Navigation("Budgets"); b.Navigation("Transactions"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushDevice", b => { b.Navigation("Deliveries"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.PushMessage", b => { b.Navigation("Deliveries"); }); modelBuilder.Entity("MiaoJiZhang.Domain.Entities.User", b => { b.Navigation("AiCompanion"); b.Navigation("FeaturePermissions"); b.Navigation("Ledgers"); b.Navigation("PushDevices"); b.Navigation("PushPreferences"); }); #pragma warning restore 612, 618 } } }