// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace bitforum.Migrations.DefaultDb { [DbContext(typeof(DefaultDbContext))] [Migration("20250124020320_UpdateMember")] partial class UpdateMember { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("bitforum.Models.Config", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("Description") .HasColumnType("nvarchar(max)"); b.Property("Key") .IsRequired() .HasColumnType("nvarchar(450)"); b.Property("Value") .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("Key") .IsUnique(); b.ToTable("Config"); }); modelBuilder.Entity("bitforum.Models.Page.Banner.BannerItem", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("EndAt") .HasColumnType("datetime2"); b.Property("Height") .HasColumnType("int"); b.Property("Image") .HasMaxLength(1024) .HasColumnType("nvarchar(1024)"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Link") .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("Order") .HasColumnType("int"); b.Property("PositionID") .HasColumnType("int"); b.Property("StartAt") .HasColumnType("datetime2"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("Views") .HasColumnType("int"); b.Property("Width") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex("PositionID"); b.HasIndex(new[] { "IsActive" }, "IX_BannerItem_IsActive"); b.HasIndex(new[] { "Order" }, "IX_BannerItem_Order"); b.ToTable("BannerItem"); }); modelBuilder.Entity("bitforum.Models.Page.Banner.BannerPosition", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.HasKey("ID"); b.HasIndex(new[] { "Code" }, "IX_BannerPosition_Code") .IsUnique(); b.HasIndex(new[] { "IsActive" }, "IX_BannerPosition_IsActive"); b.ToTable("BannerPosition"); }); modelBuilder.Entity("bitforum.Models.Page.Document", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)"); b.Property("Content") .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Subject") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("Views") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex(new[] { "Code" }, "IX_Document_Code") .IsUnique(); b.HasIndex(new[] { "IsActive" }, "IX_Document_IsActive"); b.ToTable("Document"); }); modelBuilder.Entity("bitforum.Models.Page.Faq.FaqCategory", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Order") .HasColumnType("int"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.HasKey("ID"); b.HasIndex(new[] { "Code" }, "IX_FaqCategory_Code") .IsUnique(); b.HasIndex(new[] { "Order" }, "IX_FaqCategory_Order"); b.ToTable("FaqCategory"); }); modelBuilder.Entity("bitforum.Models.Page.Faq.FaqItem", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Answer") .HasColumnType("nvarchar(max)"); b.Property("CategoryID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Order") .HasColumnType("int"); b.Property("Question") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("Views") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex("CategoryID"); b.HasIndex(new[] { "IsActive" }, "IX_FaqItem_IsActive"); b.HasIndex(new[] { "Order" }, "IX_FaqItem_Order"); b.ToTable("FaqItem"); }); modelBuilder.Entity("bitforum.Models.Page.Popup", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Content") .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("EndAt") .HasColumnType("datetime2"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Link") .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("Order") .HasColumnType("int"); b.Property("StartAt") .HasColumnType("datetime2"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("Views") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex(new[] { "IsActive" }, "IX_Popup_IsActive"); b.ToTable("Popup"); }); modelBuilder.Entity("bitforum.Models.User.Member", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); b.Property("AuthCertifiedAt") .HasColumnType("datetime2") .HasComment("본인인증 일시"); b.Property("Birthday") .HasMaxLength(10) .HasColumnType("date") .HasComment("생년월일"); b.Property("Coin") .HasColumnType("bigint") .HasComment("코인"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("가입 일시"); b.Property("DeletedAt") .HasColumnType("datetime2") .HasComment("탈퇴 일시"); b.Property("DeviceInfo") .HasMaxLength(400) .HasColumnType("nvarchar(400)") .HasComment("로그인 단말기 정보"); b.Property("Email") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("이메일"); b.Property("EmailVerifiedAt") .HasColumnType("datetime2") .HasComment("이메일 인증 일시"); b.Property("Exp") .HasColumnType("int") .HasComment("경험치"); b.Property("FirstName") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("본명(성)"); b.Property("Followed") .HasColumnType("int") .HasComment("구독자"); b.Property("Following") .HasColumnType("int") .HasComment("구독 중"); b.Property("FullName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("본명"); b.Property("Gender") .HasMaxLength(6) .HasColumnType("int") .HasComment("성별"); b.Property("GradeID") .HasColumnType("int") .HasComment("회원등급 ID"); b.Property("Intro") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("자기소개"); b.Property("IsAdmin") .HasColumnType("bit") .HasComment("운영진 여부"); b.Property("IsAuthCertified") .HasColumnType("bit") .HasComment("본인 인증 여부"); b.Property("IsDenied") .HasColumnType("bit") .HasComment("차단 여부"); b.Property("IsEmailVerified") .HasColumnType("bit") .HasComment("이메일 인증 여부"); b.Property("IsWithdraw") .HasColumnType("bit") .HasComment("탈퇴 여부"); b.Property("LastLoginAt") .HasColumnType("datetime2") .HasComment("마지막 로그인 일시"); b.Property("LastLoginIp") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("마지막 로그인 IP"); b.Property("LastName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("본명(이름)"); b.Property("Name") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("별명"); b.Property("Password") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("비밀번호"); b.Property("PasswordUpdatedAt") .HasColumnType("datetime2") .HasComment("비밀번호 변경 일시"); b.Property("Phone") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("연락처"); b.Property("Photo") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("사진"); b.Property("SID") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("SID"); b.Property("SignupIP") .IsRequired() .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("회원가입 시 IP"); b.Property("Summary") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("한마디"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("GradeID"); b.HasIndex(new[] { "Email" }, "IX_Member_Email") .IsUnique(); b.HasIndex(new[] { "Name" }, "IX_Member_Name") .IsUnique() .HasFilter("[Name] IS NOT NULL"); b.HasIndex(new[] { "SID" }, "IX_Member_SID") .IsUnique(); b.ToTable("Member", t => { t.HasComment("회원 정보"); }); }); modelBuilder.Entity("bitforum.Models.User.MemberApprove", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("회원 ID"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("IsDisclosureInvest") .HasColumnType("bit") .HasComment("투자 현황 공개 여부"); b.Property("IsReceiveEmail") .HasColumnType("bit") .HasComment("E-MAIL 수신 여부"); b.Property("IsReceiveNote") .HasColumnType("bit") .HasComment("쪽지 수신 여부"); b.Property("IsReceiveSMS") .HasColumnType("bit") .HasComment("SMS 수신 여부"); b.HasKey("ID"); b.ToTable("MemberApprove", t => { t.HasComment("회원 동의 및 수신 여부"); }); }); modelBuilder.Entity("bitforum.Models.User.MemberGrade", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Description") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("설명"); b.Property("EngName") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)") .HasComment("영문 명"); b.Property("Image") .HasColumnType("nvarchar(max)") .HasComment("이미지"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("KorName") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)") .HasComment("한글 명"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("RequiredCoin") .HasColumnType("int") .HasComment("최소 코인(Coin)"); b.Property("RequiredExp") .HasColumnType("int") .HasComment("최소 경험치(Exp)"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex(new[] { "EngName" }, "IX_MemberGrade_EngName") .IsUnique(); b.HasIndex(new[] { "KorName" }, "IX_MemberGrade_KorName") .IsUnique(); b.ToTable("MemberGrade", t => { t.HasComment("회원 등급"); }); }); modelBuilder.Entity("bitforum.Models.Page.Banner.BannerItem", b => { b.HasOne("bitforum.Models.Page.Banner.BannerPosition", "BannerPosition") .WithMany("BannerItem") .HasForeignKey("PositionID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("BannerPosition"); }); modelBuilder.Entity("bitforum.Models.Page.Faq.FaqItem", b => { b.HasOne("bitforum.Models.Page.Faq.FaqCategory", "FaqCategory") .WithMany("FaqItem") .HasForeignKey("CategoryID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("FaqCategory"); }); modelBuilder.Entity("bitforum.Models.User.Member", b => { b.HasOne("bitforum.Models.User.MemberGrade", "MemberGrade") .WithMany() .HasForeignKey("GradeID"); b.HasOne("bitforum.Models.User.MemberApprove", "MemberApproves") .WithOne("Member") .HasForeignKey("bitforum.Models.User.Member", "ID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("MemberApproves"); b.Navigation("MemberGrade"); }); modelBuilder.Entity("bitforum.Models.Page.Banner.BannerPosition", b => { b.Navigation("BannerItem"); }); modelBuilder.Entity("bitforum.Models.Page.Faq.FaqCategory", b => { b.Navigation("FaqItem"); }); modelBuilder.Entity("bitforum.Models.User.MemberApprove", b => { b.Navigation("Member") .IsRequired(); }); #pragma warning restore 612, 618 } } }