//
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
}
}
}