//
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("20250222130451_a2")]
partial class a2
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.13")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("bitforum.Models.Account.EmailVerifyNumber", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Code")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("nvarchar(10)")
.HasComment("Code");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("Email")
.IsRequired()
.HasMaxLength(60)
.HasColumnType("nvarchar(60)")
.HasComment("이메일");
b.Property("Expiration")
.HasColumnType("datetime2")
.HasComment("만료 일시");
b.Property("IsVerified")
.HasColumnType("bit")
.HasComment("인증 여부");
b.Property("Type")
.HasColumnType("int")
.HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");
b.HasKey("ID");
b.HasIndex(new[] { "Code" }, "IX_EmailVerifyNumber_Code");
b.HasIndex(new[] { "Email" }, "IX_EmailVerifyNumber_Email");
b.HasIndex(new[] { "Expiration" }, "IX_EmailVerifyNumber_Expiration");
b.HasIndex(new[] { "IsVerified" }, "IX_EmailVerifyNumber_IsVerified");
b.HasIndex(new[] { "Type" }, "IX_EmailVerifyNumber_Type");
b.ToTable("EmailVerifyNumber", t =>
{
t.HasComment("이메일 인증 번호들");
});
});
modelBuilder.Entity("bitforum.Models.Account.EmailVerifyToken", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Additional")
.HasColumnType("nvarchar(max)")
.HasComment("추가 정보(JSON)");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("Email")
.IsRequired()
.HasMaxLength(60)
.HasColumnType("nvarchar(60)")
.HasComment("이메일");
b.Property("Expiration")
.HasColumnType("datetime2")
.HasComment("만료 일시");
b.Property("IsVerified")
.HasColumnType("bit")
.HasComment("인증 여부");
b.Property("Token")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)")
.HasComment("Token");
b.Property("Type")
.HasColumnType("int")
.HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");
b.HasKey("ID");
b.HasIndex(new[] { "Email" }, "IX_EmailVerifyToken_Email");
b.HasIndex(new[] { "Expiration" }, "IX_EmailVerifyToken_Expiration");
b.HasIndex(new[] { "IsVerified" }, "IX_EmailVerifyToken_IsVerified");
b.HasIndex(new[] { "Token" }, "IX_EmailVerifyToken_Token");
b.HasIndex(new[] { "Type" }, "IX_EmailVerifyToken_Type");
b.ToTable("EmailVerifyToken", t =>
{
t.HasComment("이메일 인증 토큰들");
});
});
modelBuilder.Entity("bitforum.Models.Account.Member", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("AuthCertifiedAt")
.HasColumnType("datetime2")
.HasComment("본인인증 일시");
b.Property("Birthday")
.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(60)
.HasColumnType("nvarchar(60)")
.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")
.HasColumnType("int")
.HasComment("성별");
b.Property("GradeID")
.HasColumnType("int")
.HasComment("회원등급 ID");
b.Property("Icon")
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("아이콘");
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("LastEmailChangedAt")
.HasColumnType("datetime2")
.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("LastNameChangedAt")
.HasColumnType("datetime2")
.HasComment("마지막 별명 변경 일시");
b.Property("Name")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)")
.HasComment("별명");
b.Property("Password")
.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[] { "CreatedAt" }, "IX_Member_CreatedAt");
b.HasIndex(new[] { "DeletedAt" }, "IX_Member_DeletedAt");
b.HasIndex(new[] { "Email" }, "IX_Member_Email")
.IsUnique();
b.HasIndex(new[] { "FullName" }, "IX_Member_FullName");
b.HasIndex(new[] { "Gender" }, "IX_Member_Gender");
b.HasIndex(new[] { "IsAdmin" }, "IX_Member_IsAdmin");
b.HasIndex(new[] { "IsAuthCertified" }, "IX_Member_IsAuthCertified");
b.HasIndex(new[] { "IsDenied" }, "IX_Member_IsDenied");
b.HasIndex(new[] { "IsEmailVerified" }, "IX_Member_IsEmailVerified");
b.HasIndex(new[] { "IsWithdraw" }, "IX_Member_IsWithdraw");
b.HasIndex(new[] { "Name" }, "IX_Member_Name")
.IsUnique()
.HasFilter("[Name] IS NOT NULL");
b.HasIndex(new[] { "Phone" }, "IX_Member_Phone");
b.HasIndex(new[] { "SID" }, "IX_Member_SID")
.IsUnique();
b.ToTable("Member", t =>
{
t.HasComment("회원 정보");
});
});
modelBuilder.Entity("bitforum.Models.Account.MemberApprove", b =>
{
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 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("MemberID");
b.ToTable("MemberApprove", t =>
{
t.HasComment("회원 동의 및 수신 여부");
});
});
modelBuilder.Entity("bitforum.Models.Account.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[] { "IsActive" }, "IX_MemberGrade_IsActive");
b.HasIndex(new[] { "KorName" }, "IX_MemberGrade_KorName")
.IsUnique();
b.HasIndex(new[] { "Order" }, "IX_MemberGrade_Order");
b.ToTable("MemberGrade", t =>
{
t.HasComment("회원 등급");
});
});
modelBuilder.Entity("bitforum.Models.Account.RefreshToken", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("Expiration")
.HasColumnType("datetime2")
.HasComment("만료 일시");
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 ID");
b.Property("Token")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)")
.HasComment("Token");
b.HasKey("ID");
b.ToTable("RefreshToken");
});
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.Log.EmailChangeLog", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("AfterEmail")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasComment("바꾼 이메일");
b.Property("BeforeEmail")
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasComment("이전 이메일");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 ID");
b.HasKey("ID");
b.HasIndex(new[] { "MemberID" }, "IX_EmailChangeLog_MemberID");
b.ToTable("EmailChangeLog", t =>
{
t.HasComment("이메일 변경 내역");
});
});
modelBuilder.Entity("bitforum.Models.Log.EmailLog", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("FromAddress")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)")
.HasComment("발신 주소");
b.Property("FromName")
.HasMaxLength(60)
.HasColumnType("nvarchar(60)")
.HasComment("발신자");
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 ID");
b.Property("Message")
.HasColumnType("nvarchar(max)")
.HasComment("내용");
b.Property("ProcessedAt")
.HasColumnType("datetime2")
.HasComment("처리 일시");
b.Property("Status")
.IsRequired()
.HasColumnType("nvarchar(20)")
.HasComment("처리 여부");
b.Property("Subject")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("제목");
b.Property("ToAddress")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)")
.HasComment("수신 주소");
b.Property("ToName")
.HasMaxLength(60)
.HasColumnType("nvarchar(60)")
.HasComment("수신자");
b.HasKey("ID");
b.HasIndex(new[] { "MemberID" }, "IX_EmailLog_MemberID");
b.HasIndex(new[] { "Status" }, "IX_EmailLog_Status");
b.ToTable("EmailLog");
});
modelBuilder.Entity("bitforum.Models.Log.LoginLog", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Account")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)")
.HasComment("로그인 시도한 계정");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("IpAddress")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)")
.HasComment("IP Address");
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 ID");
b.Property("Reason")
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("실패 이유");
b.Property("Referer")
.HasColumnType("nvarchar(max)")
.HasComment("이전 페이지 주소");
b.Property("Success")
.HasColumnType("bit")
.HasComment("로그인 성공 여부 (0: 실패, 1: 성공)");
b.Property("Url")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)")
.HasComment("요청 주소");
b.Property("UserAgent")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)")
.HasComment("User Agent");
b.HasKey("ID");
b.HasIndex("MemberID");
b.ToTable("LoginLog", t =>
{
t.HasComment("로그인 기록");
});
});
modelBuilder.Entity("bitforum.Models.Log.NameChangeLog", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("AfterName")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasComment("바꾼 별명");
b.Property("BeforeName")
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasComment("이전 별명");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("MemberID")
.HasColumnType("int")
.HasComment("회원 ID");
b.HasKey("ID");
b.HasIndex(new[] { "MemberID" }, "IX_NameChangeLog_MemberID");
b.ToTable("NameChangeLog", t =>
{
t.HasComment("별명 변경 내역");
});
});
modelBuilder.Entity("bitforum.Models.Page.Banner.BannerItem", b =>
{
b.Property("ID")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("EndAt")
.HasColumnType("datetime2")
.HasComment("사용 기간 - 종료");
b.Property("Height")
.HasColumnType("int")
.HasComment("세로 크기");
b.Property("Image")
.HasMaxLength(1024)
.HasColumnType("nvarchar(1024)")
.HasComment("이미지");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Link")
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("주소");
b.Property("Order")
.HasColumnType("int")
.HasComment("순서");
b.Property("PositionID")
.HasColumnType("int")
.HasComment("배너 위치 ID");
b.Property("StartAt")
.HasColumnType("datetime2")
.HasComment("사용 기간 - 시작");
b.Property("Subject")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("배너 명");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
b.Property("Views")
.HasColumnType("int")
.HasComment("조회 수");
b.Property("Width")
.HasColumnType("int")
.HasComment("가로 크기");
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")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Code")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)")
.HasComment("위치 구분");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Subject")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("위치 명");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
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")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Code")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)")
.HasComment("주소");
b.Property("Content")
.HasColumnType("nvarchar(max)")
.HasComment("내용");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Subject")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("nvarchar(120)")
.HasComment("제목");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
b.Property("Views")
.HasColumnType("int")
.HasComment("조회 수");
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")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Code")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)")
.HasComment("주소");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Order")
.HasColumnType("int")
.HasComment("순서");
b.Property("Subject")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("분류 명");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
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")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Answer")
.HasColumnType("nvarchar(max)")
.HasComment("답변");
b.Property("CategoryID")
.HasColumnType("int")
.HasComment("분류 ID");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Order")
.HasColumnType("int")
.HasComment("순서");
b.Property("Question")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("질문");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
b.Property("Views")
.HasColumnType("int")
.HasComment("조회 수");
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")
.HasComment("PK");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID"));
b.Property("Content")
.HasColumnType("nvarchar(max)")
.HasComment("내용");
b.Property("CreatedAt")
.HasColumnType("datetime2")
.HasComment("등록 일시");
b.Property("EndAt")
.HasColumnType("datetime2")
.HasComment("사용 기간 - 종료");
b.Property("IsActive")
.HasColumnType("bit")
.HasComment("사용 여부");
b.Property("Link")
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("주소");
b.Property("Order")
.HasColumnType("smallint")
.HasComment("순서");
b.Property("StartAt")
.HasColumnType("datetime2")
.HasComment("사용 기간 - 시작");
b.Property("Subject")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("nvarchar(255)")
.HasComment("제목");
b.Property("UpdatedAt")
.HasColumnType("datetime2")
.HasComment("수정 일시");
b.Property("Views")
.HasColumnType("int")
.HasComment("조회 수");
b.HasKey("ID");
b.HasIndex(new[] { "IsActive" }, "IX_Popup_IsActive");
b.HasIndex(new[] { "Order" }, "IX_Popup_Order");
b.ToTable("Popup");
});
modelBuilder.Entity("bitforum.Models.Account.Member", b =>
{
b.HasOne("bitforum.Models.Account.MemberGrade", "MemberGrade")
.WithMany()
.HasForeignKey("GradeID");
b.Navigation("MemberGrade");
});
modelBuilder.Entity("bitforum.Models.Account.MemberApprove", b =>
{
b.HasOne("bitforum.Models.Account.Member", "Member")
.WithOne("MemberApprove")
.HasForeignKey("bitforum.Models.Account.MemberApprove", "MemberID")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("Member");
});
modelBuilder.Entity("bitforum.Models.Log.EmailChangeLog", b =>
{
b.HasOne("bitforum.Models.Account.Member", "Member")
.WithMany("EmailChangeLog")
.HasForeignKey("MemberID")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("Member");
});
modelBuilder.Entity("bitforum.Models.Log.EmailLog", b =>
{
b.HasOne("bitforum.Models.Account.Member", "Member")
.WithMany("EmailLog")
.HasForeignKey("MemberID")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Member");
});
modelBuilder.Entity("bitforum.Models.Log.LoginLog", b =>
{
b.HasOne("bitforum.Models.Account.Member", "Member")
.WithMany("LoginLog")
.HasForeignKey("MemberID")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Member");
});
modelBuilder.Entity("bitforum.Models.Log.NameChangeLog", b =>
{
b.HasOne("bitforum.Models.Account.Member", "Member")
.WithMany("NameChangeLog")
.HasForeignKey("MemberID")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("Member");
});
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.Account.Member", b =>
{
b.Navigation("EmailChangeLog");
b.Navigation("EmailLog");
b.Navigation("LoginLog");
b.Navigation("MemberApprove");
b.Navigation("NameChangeLog");
});
modelBuilder.Entity("bitforum.Models.Page.Banner.BannerPosition", b =>
{
b.Navigation("BannerItem");
});
modelBuilder.Entity("bitforum.Models.Page.Faq.FaqCategory", b =>
{
b.Navigation("FaqItem");
});
#pragma warning restore 612, 618
}
}
}