// <auto-generated />
using System;
using Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace Infrastructure.Migrations.AppDb
{
    [DbContext(typeof(AppDbContext))]
    [Migration("20260212080501_AddPasswordHashToMember")]
    partial class AddPasswordHashToMember
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "10.0.2")
                .HasAnnotation("Relational:MaxIdentifierLength", 128);

            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

            modelBuilder.Entity("Domain.Entities.Common.Config", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("LastUpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 수정일시");

                    b.Property<byte[]>("RowVersion")
                        .IsConcurrencyToken()
                        .IsRequired()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("rowversion")
                        .HasComment("동시성 제어용");

                    b.HasKey("ID");

                    b.ToTable("Config", null, t =>
                        {
                            t.HasComment("운영 정보 설정 값");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Director.AdminAccessLog", b =>
                {
                    b.Property<long>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("생성 일시");

                    b.Property<long>("ElapsedMs")
                        .HasColumnType("bigint")
                        .HasComment("처리 시간 (밀리초)");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(45)
                        .HasColumnType("nvarchar(45)")
                        .HasComment("IP 주소");

                    b.Property<string>("MenuName")
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)")
                        .HasComment("메뉴 이름");

                    b.Property<string>("Method")
                        .IsRequired()
                        .HasMaxLength(10)
                        .HasColumnType("nvarchar(10)")
                        .HasComment("HTTP Method");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(2048)
                        .HasColumnType("nvarchar(2048)")
                        .HasComment("요청 경로");

                    b.Property<string>("QueryString")
                        .HasMaxLength(2048)
                        .HasColumnType("nvarchar(2048)")
                        .HasComment("쿼리 스트링");

                    b.Property<int>("StatusCode")
                        .HasColumnType("int")
                        .HasComment("응답 상태 코드");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.Property<string>("UserID")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("nvarchar(64)")
                        .HasComment("관리자 사용자 ID");

                    b.Property<string>("UserName")
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)")
                        .HasComment("관리자 사용자 이름");

                    b.HasKey("ID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("UserID");

                    b.ToTable("AdminAccessLog", null, t =>
                        {
                            t.HasComment("관리자 접근 기록");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Director.AdminLoginLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Account")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)")
                        .HasComment("로그인 시도 계정");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("생성 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(45)
                        .HasColumnType("nvarchar(45)")
                        .HasComment("IP 주소");

                    b.Property<string>("Reason")
                        .HasMaxLength(225)
                        .HasColumnType("nvarchar(225)")
                        .HasComment("실패 사유");

                    b.Property<bool>("Success")
                        .HasColumnType("bit")
                        .HasComment("로그인 성공 여부");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("Account");

                    b.HasIndex("CreatedAt");

                    b.ToTable("AdminLoginLog", null, t =>
                        {
                            t.HasComment("관리자 로그인 기록");
                        });
                });

            modelBuilder.Entity("Domain.Entities.EmailVerification.EmailVerifyNumber", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(10)
                        .HasColumnType("nvarchar(10)")
                        .HasComment("Code");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("이메일");

                    b.Property<DateTime>("Expiration")
                        .HasColumnType("datetime2")
                        .HasComment("만료 일시");

                    b.Property<bool>("IsVerified")
                        .HasColumnType("bit")
                        .HasComment("인증 여부");

                    b.Property<int>("Type")
                        .HasColumnType("int")
                        .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");

                    b.HasKey("ID");

                    b.HasIndex("Code");

                    b.HasIndex("Email");

                    b.HasIndex("Expiration");

                    b.HasIndex("IsVerified");

                    b.HasIndex("Type");

                    b.HasIndex("Type", "Code");

                    b.HasIndex("Type", "Code", "IsVerified");

                    b.ToTable("EmailVerifyNumber", null, t =>
                        {
                            t.HasComment("이메일 인증 번호들");
                        });
                });

            modelBuilder.Entity("Domain.Entities.EmailVerification.EmailVerifyToken", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Additional")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("추가 정보(JSON)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("이메일");

                    b.Property<DateTime>("Expiration")
                        .HasColumnType("datetime2")
                        .HasComment("만료 일시");

                    b.Property<bool>("IsVerified")
                        .HasColumnType("bit")
                        .HasComment("인증 여부");

                    b.Property<string>("Token")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)")
                        .HasComment("Token");

                    b.Property<int>("Type")
                        .HasColumnType("int")
                        .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");

                    b.HasKey("ID");

                    b.HasIndex("Email");

                    b.HasIndex("Expiration");

                    b.HasIndex("IsVerified");

                    b.HasIndex("Token");

                    b.HasIndex("Type");

                    b.HasIndex("Type", "Email", "Token");

                    b.HasIndex("Type", "Email", "Token", "IsVerified");

                    b.ToTable("EmailVerifyToken", null, t =>
                        {
                            t.HasComment("이메일 인증 토큰들");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardGroupID")
                        .HasColumnType("int")
                        .HasComment("분류 ID");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("게시판 주소");

                    b.Property<int>("Comments")
                        .HasColumnType("int")
                        .HasComment("댓글 수");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<bool>("IsSearch")
                        .HasColumnType("bit")
                        .HasComment("검색 여부");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(70)
                        .HasColumnType("nvarchar(70)")
                        .HasComment("게시판 이름");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<int>("Posts")
                        .HasColumnType("int")
                        .HasComment("게시글 수");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("BoardGroupID");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("Comments");

                    b.HasIndex("IsActive");

                    b.HasIndex("IsSearch");

                    b.HasIndex("Name");

                    b.HasIndex("Order");

                    b.HasIndex("Posts");

                    b.HasIndex("Code", "IsActive");

                    b.HasIndex("Code", "IsSearch");

                    b.HasIndex("IsSearch", "IsActive");

                    b.ToTable("Board", null, t =>
                        {
                            t.HasComment("게시판");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardGroup", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<short>("Boards")
                        .HasColumnType("smallint")
                        .HasComment("게시판 수");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("게시판 분류 주소");

                    b.Property<int>("Comments")
                        .HasColumnType("int")
                        .HasComment("댓글 수");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(70)
                        .HasColumnType("nvarchar(70)")
                        .HasComment("게시판 분류 명");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<int>("Posts")
                        .HasColumnType("int")
                        .HasComment("게시글 수");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("Order");

                    b.HasIndex("Order", "CreatedAt");

                    b.HasIndex("Code", "Order", "CreatedAt");

                    b.ToTable("BoardGroup", null, t =>
                        {
                            t.HasComment("게시판 분류");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<bool>("CanDelete")
                        .HasColumnType("bit")
                        .HasComment("삭제 권한");

                    b.Property<bool>("CanEdit")
                        .HasColumnType("bit")
                        .HasComment("수정 권한");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("관리자 ID");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("MemberID");

                    b.HasIndex("BoardID", "MemberID");

                    b.ToTable("BoardManager", null, t =>
                        {
                            t.HasComment("게시판 관리자");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.HasKey("ID");

                    b.HasIndex("BoardID")
                        .IsUnique();

                    b.ToTable("BoardMeta", null, t =>
                        {
                            t.HasComment("게시판 설정");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<string>("Color")
                        .HasMaxLength(10)
                        .HasColumnType("nvarchar(10)")
                        .HasComment("색상");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("말머리");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("정렬 순서");

                    b.Property<int>("Posts")
                        .HasColumnType("int")
                        .HasComment("사용 게시글 수");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("BoardID", "IsActive", "Order", "CreatedAt");

                    b.ToTable("BoardPrefix", null, t =>
                        {
                            t.HasComment("게시판 말머리");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("댓글 내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("datetime2");

                    b.Property<short>("Depth")
                        .HasColumnType("smallint")
                        .HasComment("댓글 깊이");

                    b.Property<int>("Dislikes")
                        .HasColumnType("int");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<byte>("Files")
                        .HasColumnType("tinyint");

                    b.Property<int>("Images")
                        .HasColumnType("int");

                    b.Property<string>("IpAddress")
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit")
                        .HasComment("삭제 여부");

                    b.Property<bool>("IsReply")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSecret")
                        .HasColumnType("bit");

                    b.Property<int>("Likes")
                        .HasColumnType("int");

                    b.Property<byte>("Medias")
                        .HasColumnType("tinyint");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<int?>("MentionMemberID")
                        .HasColumnType("int")
                        .HasComment("언급 대상 회원 ID");

                    b.Property<string>("Name")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("ParentID")
                        .HasColumnType("int")
                        .HasComment("부모 댓글 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<int>("Replies")
                        .HasColumnType("int");

                    b.Property<int>("Reports")
                        .HasColumnType("int");

                    b.Property<string>("SID")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("Score")
                        .HasColumnType("int")
                        .HasComment("점수");

                    b.Property<byte>("Status")
                        .HasColumnType("tinyint")
                        .HasComment("댓글 상태");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("UserAgent")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("MemberID");

                    b.HasIndex("MentionMemberID");

                    b.HasIndex("ParentID");

                    b.HasIndex("PostID");

                    b.HasIndex("PostID", "IsDeleted", "ParentID", "CreatedAt")
                        .IsDescending(false, false, false, true);

                    b.HasIndex("PostID", "IsDeleted", "ParentID", "Score", "ID")
                        .IsDescending(false, false, false, true, true);

                    b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "CreatedAt")
                        .IsDescending(false, false, false, false, true);

                    b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "Score", "ID")
                        .IsDescending(false, false, false, false, true, true);

                    b.ToTable("Comment", null, t =>
                        {
                            t.HasComment("댓글");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<int>("CommentID")
                        .HasColumnType("int");

                    b.Property<string>("ContentType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<int>("Downloads")
                        .HasColumnType("int");

                    b.Property<string>("Extension")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("HashedName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<long?>("Size")
                        .HasColumnType("bigint");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("PostID");

                    b.HasIndex("UUID")
                        .IsUnique();

                    b.ToTable("CommentFile", null, t =>
                        {
                            t.HasComment("댓글 파일");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<int>("CommentID")
                        .HasColumnType("int");

                    b.Property<string>("ContentType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("Extension")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("HashedName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<short?>("Height")
                        .HasColumnType("smallint");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<long?>("Size")
                        .HasColumnType("bigint");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<short?>("Width")
                        .HasColumnType("smallint");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("PostID");

                    b.HasIndex("UUID")
                        .IsUnique();

                    b.ToTable("CommentImage", null, t =>
                        {
                            t.HasComment("댓글 이미지");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<int>("Clicks")
                        .HasColumnType("int");

                    b.Property<int>("CommentID")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("PostID");

                    b.ToTable("CommentLink", null, t =>
                        {
                            t.HasComment("댓글 링크");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<int>("CommentID")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("PostID");

                    b.ToTable("CommentMedia", null, t =>
                        {
                            t.HasComment("댓글 미디어");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<int>("Length")
                        .HasColumnType("int")
                        .HasComment("길이");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("언급된 회원 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<string>("RawHandle")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("nvarchar(64)")
                        .HasComment("원문 회원 언급값");

                    b.Property<int>("Start")
                        .HasColumnType("int")
                        .HasComment("본문 내 시작 인덱스");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID")
                        .IsUnique();

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("CommentID", "ID");

                    b.HasIndex("CommentID", "MemberID", "ID");

                    b.HasIndex("CommentID", "MemberID", "Start");

                    b.ToTable("CommentMention", null, t =>
                        {
                            t.HasComment("댓글 멘션");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<byte>("Reaction")
                        .HasColumnType("tinyint")
                        .HasComment("반응 구분");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-agent");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("Reaction");

                    b.HasIndex("CommentID", "ID");

                    b.HasIndex("CommentID", "MemberID")
                        .IsUnique();

                    b.ToTable("CommentReaction", null, t =>
                        {
                            t.HasComment("댓글 반응");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Memo")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("처리 내용");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<string>("Reason")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("신고 내용");

                    b.Property<byte>("Status")
                        .HasColumnType("tinyint")
                        .HasComment("처리 상태");

                    b.Property<byte>("Type")
                        .HasColumnType("tinyint")
                        .HasComment("신고 사유");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-agent");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("CommentID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("Status");

                    b.HasIndex("Type");

                    b.HasIndex("CommentID", "ID");

                    b.HasIndex("CommentID", "MemberID")
                        .IsUnique();

                    b.ToTable("CommentReport", null, t =>
                        {
                            t.HasComment("댓글 신고");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("CommentFileID")
                        .HasColumnType("int")
                        .HasComment("댓글 파일 ID");

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("CommentFileID");

                    b.HasIndex("CommentID");

                    b.HasIndex("MemberID");

                    b.HasIndex("CommentID", "CommentFileID");

                    b.HasIndex("CommentID", "CommentFileID", "MemberID");

                    b.ToTable("CommentFileDownLog", null, t =>
                        {
                            t.HasComment("댓글 파일 다운로드 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<int>("CommentLinkID")
                        .HasColumnType("int")
                        .HasComment("댓글 링크 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("CommentID");

                    b.HasIndex("CommentLinkID");

                    b.HasIndex("MemberID");

                    b.HasIndex("CommentID", "CommentLinkID");

                    b.HasIndex("CommentID", "CommentLinkID", "MemberID");

                    b.ToTable("CommentLinkClickLog", null, t =>
                        {
                            t.HasComment("댓글 링크 클릭 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("CommentID")
                        .HasColumnType("int")
                        .HasComment("댓글 ID");

                    b.Property<string>("ContentDiff")
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("변경 내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Note")
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)")
                        .HasComment("비고");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("CommentID");

                    b.HasIndex("ContentDiff");

                    b.HasIndex("MemberID");

                    b.HasIndex("CommentID", "ID");

                    b.HasIndex("CommentID", "MemberID");

                    b.HasIndex("CommentID", "MemberID", "ID");

                    b.ToTable("CommentUpdateLog", null, t =>
                        {
                            t.HasComment("댓글 수정 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<int>("PostFileID")
                        .HasColumnType("int")
                        .HasComment("게시글 파일 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostFileID");

                    b.HasIndex("PostID");

                    b.HasIndex("PostID", "PostFileID");

                    b.HasIndex("PostID", "PostFileID", "MemberID");

                    b.ToTable("PostFileDownLog", null, t =>
                        {
                            t.HasComment("게시글 파일 다운로드 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<int>("PostLinkID")
                        .HasColumnType("int")
                        .HasComment("게시글 파일 ID");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("PostLinkID");

                    b.HasIndex("PostID", "PostLinkID");

                    b.HasIndex("PostID", "PostLinkID", "MemberID");

                    b.ToTable("PostLinkClickLog", null, t =>
                        {
                            t.HasComment("게시글 링크 클릭 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("ContentDiff")
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("변경 내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Note")
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)")
                        .HasComment("비고");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<string>("SubjectDiff")
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("변경 제목");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.HasKey("ID");

                    b.HasIndex("ContentDiff");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("SubjectDiff");

                    b.HasIndex("PostID", "ID");

                    b.HasIndex("PostID", "MemberID");

                    b.HasIndex("PostID", "MemberID", "ID");

                    b.ToTable("PostUpdateLog", null, t =>
                        {
                            t.HasComment("게시글 수정 로그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<int?>("BoardPrefixID")
                        .HasColumnType("int")
                        .HasComment("게시글 말머리 ID");

                    b.Property<int>("Bookmarks")
                        .HasColumnType("int")
                        .HasComment("즐겨찾기 수");

                    b.Property<int>("Comments")
                        .HasColumnType("int")
                        .HasComment("댓글 수");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasMaxLength(8000)
                        .HasColumnType("nvarchar(max)")
                        .HasComment("내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("datetime2")
                        .HasComment("삭제 일시");

                    b.Property<int>("Dislikes")
                        .HasColumnType("int")
                        .HasComment("싫어요");

                    b.Property<string>("Email")
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("회원 이메일");

                    b.Property<byte>("Files")
                        .HasColumnType("tinyint")
                        .HasComment("파일 수");

                    b.Property<byte>("Images")
                        .HasColumnType("tinyint")
                        .HasComment("이미지 수");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP");

                    b.Property<bool>("IsAnonymous")
                        .HasColumnType("bit")
                        .HasComment("익명 글 여부");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit")
                        .HasComment("삭제 여부");

                    b.Property<bool>("IsNotice")
                        .HasColumnType("bit")
                        .HasComment("일반 공지 여부");

                    b.Property<bool>("IsReply")
                        .HasColumnType("bit")
                        .HasComment("답변 여부");

                    b.Property<bool>("IsSecret")
                        .HasColumnType("bit")
                        .HasComment("비밀글 여부");

                    b.Property<bool>("IsSpeaker")
                        .HasColumnType("bit")
                        .HasComment("전체 공지 여부");

                    b.Property<DateTime?>("LastCommentUpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 댓글 일시");

                    b.Property<DateTime?>("LastReplyUpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 답변 일시");

                    b.Property<int>("Likes")
                        .HasColumnType("int")
                        .HasComment("좋아요");

                    b.Property<byte>("Medias")
                        .HasColumnType("tinyint")
                        .HasComment("미디어 수");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Name")
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("회원 이름");

                    b.Property<int>("Reports")
                        .HasColumnType("int")
                        .HasComment("신고 수");

                    b.Property<string>("SID")
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("회원 SID");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("제목");

                    b.Property<byte>("Tags")
                        .HasColumnType("tinyint")
                        .HasComment("Tag 수");

                    b.Property<string>("Thumbnail")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("대표 이미지");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-Agent");

                    b.Property<int>("Views")
                        .HasColumnType("int")
                        .HasComment("조회 수");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("BoardPrefixID");

                    b.HasIndex("MemberID");

                    b.HasIndex("ID", "BoardID");

                    b.HasIndex("ID", "BoardID", "IsDeleted");

                    b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Comments");

                    b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "CreatedAt");

                    b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Likes");

                    b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Views");

                    b.ToTable("Post", null, t =>
                        {
                            t.HasComment("게시글");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostBookmark", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("IpAddress")
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("MemberID")
                        .HasColumnType("int");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<string>("UserAgent")
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("PostID", "MemberID")
                        .IsUnique();

                    b.ToTable("PostBookmark", null, t =>
                        {
                            t.HasComment("게시글 즐겨찾기");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostFile", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<string>("ContentType")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<int>("Downloads")
                        .HasColumnType("int");

                    b.Property<string>("Extension")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("HashedName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<long?>("Size")
                        .HasColumnType("bigint");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("PostID");

                    b.HasIndex("UUID")
                        .IsUnique();

                    b.ToTable("PostFile", null, t =>
                        {
                            t.HasComment("게시글 파일");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostImage", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<string>("ContentType")
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)")
                        .HasComment("MIME 타입");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2")
                        .HasComment("비활성 일시");

                    b.Property<string>("Extension")
                        .HasMaxLength(10)
                        .HasColumnType("nvarchar(10)")
                        .HasComment("확장자");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("원본 파일명");

                    b.Property<string>("HashedName")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("저장 파일명");

                    b.Property<short?>("Height")
                        .HasColumnType("smallint")
                        .HasComment("세로 해상도(px)");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit")
                        .HasComment("비활성 여부");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("nvarchar(500)")
                        .HasComment("저장 경로");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<long?>("Size")
                        .HasColumnType("bigint")
                        .HasComment("용량(byte)");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("이미지 ID");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("URL");

                    b.Property<short?>("Width")
                        .HasColumnType("smallint")
                        .HasComment("가로 해상도(px)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("PostID");

                    b.HasIndex("UUID")
                        .IsUnique();

                    b.HasIndex("PostID", "HashedName");

                    b.HasIndex("PostID", "HashedName", "IsDisabled");

                    b.ToTable("PostImage", null, t =>
                        {
                            t.HasComment("게시글 이미지");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostLink", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<int>("Clicks")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<Guid>("UUID")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("PostID");

                    b.ToTable("PostLink", null, t =>
                        {
                            t.HasComment("게시글 링크");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostMedia", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("DisabledAt")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDisabled")
                        .HasColumnType("bit");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("PostID");

                    b.ToTable("PostMedia", null, t =>
                        {
                            t.HasComment("게시글 미디어");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReaction", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<byte>("Reaction")
                        .HasColumnType("tinyint")
                        .HasComment("반응 구분");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-agent");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("Reaction");

                    b.HasIndex("PostID", "MemberID")
                        .IsUnique();

                    b.ToTable("PostReaction", null, t =>
                        {
                            t.HasComment("게시글 반응");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReport", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int")
                        .HasComment("게시판 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Memo")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("처리 내용");

                    b.Property<int>("PostID")
                        .HasColumnType("int")
                        .HasComment("게시글 ID");

                    b.Property<string>("Reason")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("신고 내용");

                    b.Property<byte>("Status")
                        .HasColumnType("tinyint")
                        .HasComment("처리 상태");

                    b.Property<byte>("Type")
                        .HasColumnType("tinyint")
                        .HasComment("신고 사유");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-agent");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("MemberID");

                    b.HasIndex("PostID");

                    b.HasIndex("Status");

                    b.HasIndex("Type");

                    b.HasIndex("PostID", "MemberID")
                        .IsUnique();

                    b.ToTable("PostReport", null, t =>
                        {
                            t.HasComment("게시글 신고");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostTag", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BoardID")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<int>("PostID")
                        .HasColumnType("int");

                    b.Property<int>("TagID")
                        .HasColumnType("int");

                    b.HasKey("ID");

                    b.HasIndex("BoardID");

                    b.HasIndex("PostID");

                    b.HasIndex("TagID");

                    b.ToTable("PostTag", null, t =>
                        {
                            t.HasComment("게시글 태그 연결");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.Tag", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("nvarchar(450)");

                    b.Property<string>("Slug")
                        .IsRequired()
                        .HasColumnType("nvarchar(450)");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2");

                    b.Property<long>("UsageCount")
                        .HasColumnType("bigint");

                    b.HasKey("ID");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("Slug")
                        .IsUnique();

                    b.HasIndex("UsageCount");

                    b.ToTable("Tag", null, t =>
                        {
                            t.HasComment("태그");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Channel", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("Handle")
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("핸들");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("활성 여부");

                    b.Property<bool>("IsVerified")
                        .HasColumnType("bit")
                        .HasComment("인증 여부");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("nvarchar(200)")
                        .HasComment("채널 이름");

                    b.Property<decimal>("PlatformFeeRate")
                        .HasPrecision(5, 2)
                        .HasColumnType("decimal(5,2)")
                        .HasComment("수수료(%)");

                    b.Property<string>("SID")
                        .IsRequired()
                        .HasMaxLength(24)
                        .HasColumnType("nvarchar(24)")
                        .HasComment("채널 ID");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("YouTubeUrl")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("YouTube 채널 URL");

                    b.HasKey("ID");

                    b.HasIndex("Handle")
                        .IsUnique()
                        .HasFilter("[Handle] IS NOT NULL");

                    b.HasIndex("MemberID")
                        .IsUnique();

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("SID")
                        .IsUnique();

                    b.HasIndex("YouTubeUrl")
                        .IsUnique();

                    b.HasIndex("MemberID", "IsActive");

                    b.HasIndex("MemberID", "IsVerified");

                    b.HasIndex("MemberID", "IsVerified", "IsActive");

                    b.ToTable("Channel", null, t =>
                        {
                            t.HasComment("채널 정보");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberEmailChangeLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("AfterEmail")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("바뀐 이메일");

                    b.Property<string>("BeforeEmail")
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("이전 이메일");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(45)
                        .HasColumnType("nvarchar(45)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Referer")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("이전 페이지 주소");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("MemberID");

                    b.ToTable("MemberEmailChangeLog", null, t =>
                        {
                            t.HasComment("사용자 이메일 변경 내역");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberIntroChangeLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("AfterIntro")
                        .HasMaxLength(3000)
                        .HasColumnType("nvarchar(3000)")
                        .HasComment("바꾼 자기소개");

                    b.Property<string>("BeforeIntro")
                        .HasMaxLength(3000)
                        .HasColumnType("nvarchar(3000)")
                        .HasComment("이전 자기소개");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Referer")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("이전 페이지 주소");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.ToTable("MemberIntroChangeLog", null, t =>
                        {
                            t.HasComment("자기소개 변경 내역");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberLoginLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Account")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)")
                        .HasComment("로그인 시도한 계정");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(45)
                        .HasColumnType("nvarchar(45)")
                        .HasComment("IP Address");

                    b.Property<int?>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Reason")
                        .HasMaxLength(225)
                        .HasColumnType("nvarchar(225)")
                        .HasComment("실패 이유");

                    b.Property<string>("Referer")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("이전 페이지 주소");

                    b.Property<bool>("Success")
                        .HasColumnType("bit")
                        .HasComment("로그인 성공 여부 (0: 실패, 1: 성공)");

                    b.Property<string>("Url")
                        .HasMaxLength(500)
                        .HasColumnType("nvarchar(500)")
                        .HasComment("요청 주소");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("Account");

                    b.HasIndex("MemberID");

                    b.HasIndex("MemberID", "Success");

                    b.ToTable("MemberLoginLog", null, t =>
                        {
                            t.HasComment("로그인 기록");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberNameChangeLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("AfterName")
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)")
                        .HasComment("바꾼 별명");

                    b.Property<string>("BeforeName")
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)")
                        .HasComment("이전 별명");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Referer")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("이전 페이지 주소");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.ToTable("MemberNameChangeLog", null, t =>
                        {
                            t.HasComment("별명 변경 내역");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberSummaryChangeLog", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("AfterSummary")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("바꾼 한마디");

                    b.Property<string>("BeforeSummary")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("이전 한마디");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("IP Address");

                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<string>("Referer")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("이전 페이지 주소");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(512)
                        .HasColumnType("nvarchar(512)")
                        .HasComment("User Agent");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.ToTable("MemberSummaryChangeLog", null, t =>
                        {
                            t.HasComment("한마디 변경 내역");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.Member", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime?>("AuthCertifiedAt")
                        .HasColumnType("datetime2")
                        .HasComment("본인인증 일시");

                    b.Property<DateOnly?>("Birthday")
                        .HasColumnType("date")
                        .HasComment("생년월일");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("가입 일시");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("datetime2")
                        .HasComment("탈퇴 일시");

                    b.Property<DateTime?>("DeniedAt")
                        .HasColumnType("datetime2")
                        .HasComment("차단 일시");

                    b.Property<string>("DeviceInfo")
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("로그인 단말기 정보");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("nvarchar(60)")
                        .HasComment("이메일");

                    b.Property<DateTime?>("EmailVerifiedAt")
                        .HasColumnType("datetime2")
                        .HasComment("이메일 인증 일시");

                    b.Property<string>("FirstName")
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("본명(성)");

                    b.Property<string>("FullName")
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)")
                        .HasComment("본명");

                    b.Property<int?>("Gender")
                        .HasColumnType("int")
                        .HasComment("성별");

                    b.Property<string>("Icon")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("아이콘");

                    b.Property<string>("Intro")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("자기소개");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(45)
                        .HasColumnType("nvarchar(45)")
                        .HasComment("IP Address");

                    b.Property<bool>("IsAdmin")
                        .HasColumnType("bit")
                        .HasComment("운영진 여부");

                    b.Property<bool>("IsAuthCertified")
                        .HasColumnType("bit")
                        .HasComment("본인 인증 여부");

                    b.Property<bool>("IsCreator")
                        .HasColumnType("bit")
                        .HasComment("크리에이터 여부");

                    b.Property<bool>("IsDenied")
                        .HasColumnType("bit")
                        .HasComment("차단 여부");

                    b.Property<bool>("IsEmailVerified")
                        .HasColumnType("bit")
                        .HasComment("이메일 인증 여부");

                    b.Property<bool>("IsWithdraw")
                        .HasColumnType("bit")
                        .HasComment("탈퇴 여부");

                    b.Property<DateTime?>("LastEmailChangedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 이메일 변경 일시");

                    b.Property<DateTime?>("LastIntroChangedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 자기소개 변경 일시");

                    b.Property<DateTime?>("LastLoginAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 로그인 일시");

                    b.Property<string>("LastLoginIp")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("마지막 로그인 IP");

                    b.Property<string>("LastName")
                        .HasMaxLength(40)
                        .HasColumnType("nvarchar(40)")
                        .HasComment("본명(이름)");

                    b.Property<DateTime?>("LastNameChangedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 별명 변경 일시");

                    b.Property<DateTime?>("LastSummaryChangedAt")
                        .HasColumnType("datetime2")
                        .HasComment("마지막 한마디 변경 일시");

                    b.Property<int?>("MemberGradeID")
                        .HasColumnType("int")
                        .HasComment("회원등급 PK");

                    b.Property<string>("Name")
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("별명");

                    b.Property<string>("Password")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("비밀번호");

                    b.Property<string>("PasswordHash")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("PasswordUpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("비밀번호 변경 일시");

                    b.Property<string>("Phone")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("연락처");

                    b.Property<string>("SID")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("nvarchar(20)")
                        .HasComment("SID");

                    b.Property<string>("SignupIP")
                        .HasMaxLength(15)
                        .HasColumnType("nvarchar(15)")
                        .HasComment("회원가입 시 IP");

                    b.Property<string>("Summary")
                        .HasMaxLength(50)
                        .HasColumnType("nvarchar(50)")
                        .HasComment("한마디");

                    b.Property<string>("Thumb")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("썸네일");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<string>("UserAgent")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("User-agent");

                    b.HasKey("ID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("DeletedAt");

                    b.HasIndex("Email")
                        .IsUnique();

                    b.HasIndex("FullName");

                    b.HasIndex("Gender");

                    b.HasIndex("IsAdmin");

                    b.HasIndex("IsAuthCertified");

                    b.HasIndex("IsCreator");

                    b.HasIndex("IsDenied");

                    b.HasIndex("IsEmailVerified");

                    b.HasIndex("IsWithdraw");

                    b.HasIndex("MemberGradeID");

                    b.HasIndex("Name")
                        .IsUnique()
                        .HasFilter("[Name] IS NOT NULL");

                    b.HasIndex("Phone");

                    b.HasIndex("SID")
                        .IsUnique();

                    b.ToTable("Member", null, t =>
                        {
                            t.HasComment("회원 정보");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.MemberApprove", b =>
                {
                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<DateTime?>("DisclosureInvestConsentAt")
                        .HasColumnType("datetime2")
                        .HasComment("투자 현황 공개 동의 일시");

                    b.Property<bool>("IsDisclosureInvest")
                        .HasColumnType("bit")
                        .HasComment("투자 현황 공개 여부");

                    b.Property<bool>("IsReceiveEmail")
                        .HasColumnType("bit")
                        .HasComment("E-MAIL 수신 여부");

                    b.Property<bool>("IsReceiveNote")
                        .HasColumnType("bit")
                        .HasComment("쪽지 수신 여부");

                    b.Property<bool>("IsReceiveSMS")
                        .HasColumnType("bit")
                        .HasComment("SMS 수신 여부");

                    b.Property<DateTime?>("ReceiveEmailConsentAt")
                        .HasColumnType("datetime2")
                        .HasComment("E-MAIL 수신 동의 일시");

                    b.Property<DateTime?>("ReceiveNoteConsentAt")
                        .HasColumnType("datetime2")
                        .HasComment("쪽지 수신 동의 일시");

                    b.Property<DateTime?>("ReceiveSMSConsentAt")
                        .HasColumnType("datetime2")
                        .HasComment("SMS 수신 동의 일시");

                    b.HasKey("MemberID");

                    b.ToTable("MemberApprove", null, t =>
                        {
                            t.HasComment("회원 동의 및 수신 여부");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.MemberGrade", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("Description")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("설명");

                    b.Property<string>("EngName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)")
                        .HasComment("영문 명");

                    b.Property<string>("Image")
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("이미지");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("KorName")
                        .IsRequired()
                        .HasMaxLength(240)
                        .HasColumnType("nvarchar(240)")
                        .HasComment("한글 명");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<long>("RequiredAttendance")
                        .HasColumnType("bigint")
                        .HasComment("누적 출석 수");

                    b.Property<int>("RequiredExp")
                        .HasColumnType("int")
                        .HasComment("누적 경험치");

                    b.Property<string>("TextColor")
                        .HasMaxLength(7)
                        .HasColumnType("nvarchar(7)")
                        .HasComment("표시 색상");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("EngName")
                        .IsUnique();

                    b.HasIndex("IsActive");

                    b.HasIndex("KorName")
                        .IsUnique();

                    b.HasIndex("Order");

                    b.HasIndex("Order", "IsActive");

                    b.ToTable("MemberGrade", null, t =>
                        {
                            t.HasComment("회원 등급");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.MemberStats", b =>
                {
                    b.Property<int>("MemberID")
                        .HasColumnType("int")
                        .HasComment("회원 ID");

                    b.Property<long>("AttendanceCount")
                        .HasColumnType("bigint")
                        .HasComment("출석");

                    b.Property<long>("BookmarkGivenCount")
                        .HasColumnType("bigint")
                        .HasComment("즐겨찾기 글 수");

                    b.Property<long>("CommentCount")
                        .HasColumnType("bigint")
                        .HasComment("작성 댓글");

                    b.Property<long>("Exp")
                        .HasColumnType("bigint")
                        .HasComment("경험치");

                    b.Property<long>("FollowerCount")
                        .HasColumnType("bigint")
                        .HasComment("구독자");

                    b.Property<long>("FollowingCount")
                        .HasColumnType("bigint")
                        .HasComment("구독 중");

                    b.Property<long>("LikeGivenCount")
                        .HasColumnType("bigint")
                        .HasComment("누른 좋아요 수");

                    b.Property<long>("LikeReceivedCount")
                        .HasColumnType("bigint")
                        .HasComment("받은 좋아요 수");

                    b.Property<long>("LoginCount")
                        .HasColumnType("bigint")
                        .HasComment("로그인");

                    b.Property<long>("PaymentCount")
                        .HasColumnType("bigint")
                        .HasComment("결제 횟수");

                    b.Property<long>("PostCount")
                        .HasColumnType("bigint")
                        .HasComment("작성 게시글");

                    b.Property<long>("ReportedCount")
                        .HasColumnType("bigint")
                        .HasComment("신고 당한 횟수");

                    b.Property<byte[]>("RowVersion")
                        .IsConcurrencyToken()
                        .IsRequired()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("rowversion")
                        .HasComment("동시성");

                    b.Property<int>("SuspensionCount")
                        .HasColumnType("int")
                        .HasComment("정지 횟수");

                    b.Property<long>("TotalCanceledAmount")
                        .HasColumnType("bigint")
                        .HasComment("누적 취소/환불 금액");

                    b.Property<long>("TotalPaidAmount")
                        .HasColumnType("bigint")
                        .HasComment("누적 결제 금액");

                    b.Property<int>("WarningCount")
                        .HasColumnType("int")
                        .HasComment("경고 횟수");

                    b.HasKey("MemberID");

                    b.ToTable("MemberStats", null, t =>
                        {
                            t.HasComment("회원 활동 집계");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Members.RefreshToken", b =>
                {
                    b.Property<long>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("ExpiresAt")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsRevoked")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bit")
                        .HasDefaultValue(false);

                    b.Property<int>("MemberID")
                        .HasColumnType("int");

                    b.Property<DateTime?>("RevokedAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("Token")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("nvarchar(256)");

                    b.HasKey("ID");

                    b.HasIndex("MemberID");

                    b.HasIndex("Token")
                        .IsUnique();

                    b.ToTable("RefreshToken", null, t =>
                        {
                            t.HasComment("리프레시 토큰");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<string>("DesktopImage")
                        .HasMaxLength(1024)
                        .HasColumnType("nvarchar(1024)")
                        .HasComment("이미지(Desktop)");

                    b.Property<DateTime?>("EndAt")
                        .HasColumnType("datetime2")
                        .HasComment("사용 기간 - 종료");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("Link")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("주소");

                    b.Property<string>("MobileImage")
                        .HasMaxLength(1024)
                        .HasColumnType("nvarchar(1024)")
                        .HasComment("이미지(Mobile)");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<int>("PositionID")
                        .HasColumnType("int")
                        .HasComment("배너 위치 ID");

                    b.Property<DateTime?>("StartAt")
                        .HasColumnType("datetime2")
                        .HasComment("사용 기간 - 시작");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("배너 명");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("IsActive");

                    b.HasIndex("Order");

                    b.HasIndex("PositionID");

                    b.HasIndex("PositionID", "Order", "IsActive");

                    b.ToTable("BannerItem", null, t =>
                        {
                            t.HasComment("배너 아이템");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Banner.BannerPosition", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("위치 구분");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("위치 명");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("IsActive");

                    b.HasIndex("Code", "IsActive");

                    b.ToTable("BannerPosition", null, t =>
                        {
                            t.HasComment("배너 위치");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Document", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("주소");

                    b.Property<string>("Content")
                        .HasMaxLength(5000)
                        .HasColumnType("nvarchar(max)")
                        .HasComment("내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("nvarchar(120)")
                        .HasComment("제목");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.Property<int>("Views")
                        .HasColumnType("int")
                        .HasComment("조회 수");

                    b.HasKey("ID");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("IsActive");

                    b.HasIndex("Subject");

                    b.HasIndex("Code", "IsActive");

                    b.ToTable("Document", null, t =>
                        {
                            t.HasComment("문서");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Faq.FaqCategory", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("nvarchar(30)")
                        .HasComment("주소");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("분류 명");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("Order", "IsActive");

                    b.HasIndex("Code", "Order", "IsActive");

                    b.ToTable("FaqCategory", null, t =>
                        {
                            t.HasComment("FAQ 분류");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Faq.FaqItem", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Answer")
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("답변");

                    b.Property<int>("CategoryID")
                        .HasColumnType("int")
                        .HasComment("분류 ID");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<string>("Question")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("질문");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("CategoryID");

                    b.HasIndex("IsActive");

                    b.HasIndex("Order");

                    b.HasIndex("Order", "IsActive");

                    b.HasIndex("CategoryID", "Order", "IsActive");

                    b.ToTable("FaqItem", null, t =>
                        {
                            t.HasComment("FAQ 목록");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Page.Popup", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasComment("PK");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<string>("Content")
                        .HasMaxLength(4000)
                        .HasColumnType("nvarchar(4000)")
                        .HasComment("내용");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("등록 일시");

                    b.Property<DateTime?>("EndAt")
                        .HasColumnType("datetime2")
                        .HasComment("사용 기간 - 종료");

                    b.Property<bool>("IsActive")
                        .HasColumnType("bit")
                        .HasComment("사용 여부");

                    b.Property<string>("Link")
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("주소");

                    b.Property<short>("Order")
                        .HasColumnType("smallint")
                        .HasComment("순서");

                    b.Property<DateTime?>("StartAt")
                        .HasColumnType("datetime2")
                        .HasComment("사용 기간 - 시작");

                    b.Property<string>("Subject")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("nvarchar(255)")
                        .HasComment("제목");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2")
                        .HasComment("수정 일시");

                    b.HasKey("ID");

                    b.HasIndex("Order");

                    b.HasIndex("Order", "IsActive");

                    b.HasIndex("StartAt", "EndAt", "Order", "IsActive");

                    b.ToTable("Popup", null, t =>
                        {
                            t.HasComment("팝업");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<int>("MemberID")
                        .HasColumnType("int");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("WalletKey")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("ID");

                    b.HasIndex("MemberID")
                        .IsUnique();

                    b.HasIndex("WalletKey")
                        .IsUnique();

                    b.ToTable("Wallet", null, t =>
                        {
                            t.HasComment("회원 지갑");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Wallets.WalletBalance", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("Type")
                        .HasColumnType("int");

                    b.Property<Guid>("WalletKey")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("ID");

                    b.HasIndex("WalletKey", "Type")
                        .IsUnique();

                    b.ToTable("WalletBalance", null, t =>
                        {
                            t.HasComment("회원 지갑 잔액");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Wallets.WalletTransaction", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));

                    b.Property<int>("BalanceType")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("datetime2");

                    b.Property<string>("Memo")
                        .HasMaxLength(500)
                        .HasColumnType("nvarchar(500)");

                    b.Property<string>("Reason")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("RefID")
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<int>("TxType")
                        .HasColumnType("int");

                    b.Property<string>("UserID")
                        .HasMaxLength(100)
                        .HasColumnType("nvarchar(100)");

                    b.Property<Guid>("WalletKey")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("ID");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("WalletKey");

                    b.HasIndex("WalletKey", "CreatedAt");

                    b.ToTable("WalletTransaction", null, t =>
                        {
                            t.HasComment("회원 거래 장부");
                        });
                });

            modelBuilder.Entity("Domain.Entities.Common.Config", b =>
                {
                    b.OwnsOne("Domain.Entities.Common.AccountConfig", "Account", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<int?>("ChangeEmailDay")
                                .HasColumnType("int")
                                .HasColumnName("Account_ChangeEmailDay")
                                .HasComment("이메일 갱신 주기(일)");

                            b1.Property<int?>("ChangeIntroDay")
                                .HasColumnType("int")
                                .HasColumnName("Account_ChangeIntroDay")
                                .HasComment("자기소개 갱신 주기(일)");

                            b1.Property<int?>("ChangeNameDay")
                                .HasColumnType("int")
                                .HasColumnName("Account_ChangeNameDay")
                                .HasComment("별명 갱신 주기(일)");

                            b1.Property<int?>("ChangePasswordDay")
                                .HasColumnType("int")
                                .HasColumnName("Account_ChangePasswordDay")
                                .HasComment("비밀번호 갱신 주기(일)");

                            b1.Property<int?>("ChangeSummaryDay")
                                .HasColumnType("int")
                                .HasColumnName("Account_ChangeSummaryDay")
                                .HasComment("한마디 갱신 주기(일)");

                            b1.Property<string>("DeniedEmailList")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Account_DeniedEmailList")
                                .HasComment("금지 이메일");

                            b1.Property<string>("DeniedNameList")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Account_DeniedNameList")
                                .HasComment("금지 별명");

                            b1.Property<bool>("IsRegisterBlock")
                                .HasColumnType("bit")
                                .HasColumnName("Account_IsRegisterBlock")
                                .HasComment("회원가입 차단");

                            b1.Property<bool>("IsRegisterEmailAuth")
                                .HasColumnType("bit")
                                .HasColumnName("Account_IsRegisterEmailAuth")
                                .HasComment("회원가입 시 이메일 인증");

                            b1.Property<int?>("MaxLoginTryCount")
                                .HasColumnType("int")
                                .HasColumnName("Account_MaxLoginTryCount")
                                .HasComment("로그인 시도 제한 횟수");

                            b1.Property<int?>("MaxLoginTryLimitSecond")
                                .HasColumnType("int")
                                .HasColumnName("Account_MaxLoginTryLimitSecond")
                                .HasComment("로그인 시도 제한 시간(초)");

                            b1.Property<int?>("PasswordMinLength")
                                .HasColumnType("int")
                                .HasColumnName("Account_PasswordMinLength")
                                .HasComment("비밀번호 최소 길이");

                            b1.Property<int?>("PasswordNumbersLength")
                                .HasColumnType("int")
                                .HasColumnName("Account_PasswordNumbersLength")
                                .HasComment("비밀번호 최소 숫자 수");

                            b1.Property<int?>("PasswordSpecialcharsLength")
                                .HasColumnType("int")
                                .HasColumnName("Account_PasswordSpecialcharsLength")
                                .HasComment("비밀번호 최소 특수문자 수");

                            b1.Property<int?>("PasswordUppercaseLength")
                                .HasColumnType("int")
                                .HasColumnName("Account_PasswordUppercaseLength")
                                .HasComment("비밀번호 최소 대문자 수");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.BasicConfig", "Basic", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("AdminWhiteIPList")
                                .HasMaxLength(1000)
                                .HasColumnType("nvarchar(1000)")
                                .HasColumnName("Basic_AdminWhiteIPList")
                                .HasComment("관리자단 접근 가능 IP");

                            b1.Property<string>("BlockAlertContent")
                                .HasMaxLength(5000)
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Basic_BlockAlertContent")
                                .HasComment("차단 시 안내문 내용");

                            b1.Property<string>("BlockAlertTitle")
                                .HasMaxLength(200)
                                .HasColumnType("nvarchar(200)")
                                .HasColumnName("Basic_BlockAlertTitle")
                                .HasComment("차단 시 안내문 제목");

                            b1.Property<string>("FromEmail")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Basic_FromEmail")
                                .HasComment("송수신 이메일");

                            b1.Property<string>("FromName")
                                .HasMaxLength(30)
                                .HasColumnType("nvarchar(30)")
                                .HasColumnName("Basic_FromName")
                                .HasComment("송수신자 이름");

                            b1.Property<string>("FrontWhiteIPList")
                                .HasMaxLength(1000)
                                .HasColumnType("nvarchar(1000)")
                                .HasColumnName("Basic_FrontWhiteIPList")
                                .HasComment("사용자단 접근 가능 IP");

                            b1.Property<bool>("IsMaintenance")
                                .HasColumnType("bit")
                                .HasColumnName("Basic_IsMaintenance")
                                .HasComment("점검 여부");

                            b1.Property<string>("MaintenanceContent")
                                .HasMaxLength(5000)
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Basic_MaintenanceContent")
                                .HasComment("점검 내용");

                            b1.Property<string>("RootID")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Basic_RootID")
                                .HasComment("최고 관리자 ID");

                            b1.Property<string>("SiteName")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Basic_SiteName")
                                .HasComment("사이트 이름");

                            b1.Property<string>("SiteURL")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Basic_SiteURL")
                                .HasComment("사이트 주소");

                            b1.Property<bool>("SmtpEnableSSL")
                                .HasColumnType("bit")
                                .HasColumnName("Basic_SmtpEnableSSL")
                                .HasComment("SMTP Enable SSL");

                            b1.Property<string>("SmtpPassword")
                                .HasMaxLength(200)
                                .HasColumnType("nvarchar(200)")
                                .HasColumnName("Basic_SmtpPassword")
                                .HasComment("SMTP Password");

                            b1.Property<int?>("SmtpPort")
                                .HasColumnType("int")
                                .HasColumnName("Basic_SmtpPort")
                                .HasComment("SMTP Port");

                            b1.Property<string>("SmtpServer")
                                .HasMaxLength(200)
                                .HasColumnType("nvarchar(200)")
                                .HasColumnName("Basic_SmtpServer")
                                .HasComment("SMTP Server");

                            b1.Property<string>("SmtpUsername")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Basic_SmtpUsername")
                                .HasComment("SMTP Username");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.CompanyConfig", "Company", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("AddedSaleNo")
                                .HasMaxLength(20)
                                .HasColumnType("nvarchar(20)")
                                .HasColumnName("Company_AddedSaleNo")
                                .HasComment("부가통신 사업자번호");

                            b1.Property<string>("Address")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Company_Address")
                                .HasComment("사업장 소재지");

                            b1.Property<string>("AdminEmail")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Company_AdminEmail")
                                .HasComment("정보관리책임자 이메일");

                            b1.Property<string>("AdminName")
                                .HasMaxLength(70)
                                .HasColumnType("nvarchar(70)")
                                .HasColumnName("Company_AdminName")
                                .HasComment("정보관리책임자");

                            b1.Property<string>("BankCode")
                                .HasMaxLength(10)
                                .HasColumnType("nvarchar(10)")
                                .HasColumnName("Company_BankCode")
                                .HasComment("입금계좌 - 은행");

                            b1.Property<string>("BankNumber")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Company_BankNumber")
                                .HasComment("입금계좌 - 계좌번호");

                            b1.Property<string>("BankOwner")
                                .HasMaxLength(70)
                                .HasColumnType("nvarchar(70)")
                                .HasColumnName("Company_BankOwner")
                                .HasComment("입금계좌 - 예금주");

                            b1.Property<string>("Fax")
                                .HasMaxLength(20)
                                .HasColumnType("nvarchar(20)")
                                .HasColumnName("Company_Fax")
                                .HasComment("FAX");

                            b1.Property<string>("Hosting")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Company_Hosting")
                                .HasComment("호스팅 서비스");

                            b1.Property<string>("Name")
                                .HasMaxLength(70)
                                .HasColumnType("nvarchar(70)")
                                .HasColumnName("Company_Name")
                                .HasComment("상호 명");

                            b1.Property<string>("Owner")
                                .HasMaxLength(50)
                                .HasColumnType("nvarchar(50)")
                                .HasColumnName("Company_Owner")
                                .HasComment("대표자 명");

                            b1.Property<string>("RegNo")
                                .HasMaxLength(100)
                                .HasColumnType("nvarchar(100)")
                                .HasColumnName("Company_RegNo")
                                .HasComment("사업자 등록 번호");

                            b1.Property<string>("RetailSaleNo")
                                .HasMaxLength(20)
                                .HasColumnType("nvarchar(20)")
                                .HasColumnName("Company_RetailSaleNo")
                                .HasComment("통신판매업 신고번호");

                            b1.Property<string>("SiteUrl")
                                .HasMaxLength(200)
                                .HasColumnType("nvarchar(200)")
                                .HasColumnName("Company_SiteUrl")
                                .HasComment("사이트 주소");

                            b1.Property<string>("Tel")
                                .HasMaxLength(20)
                                .HasColumnType("nvarchar(20)")
                                .HasColumnName("Company_Tel")
                                .HasComment("대표 전화번호");

                            b1.Property<string>("ZipCode")
                                .HasMaxLength(8)
                                .HasColumnType("nvarchar(8)")
                                .HasColumnName("Company_ZipCode")
                                .HasComment("사업장 주소(우편번호)");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.EmailTemplateConfig", "EmailTemplate", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("ChangedEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ChangedEmailFormContent")
                                .HasComment("이메일 변경 완료 - 내용");

                            b1.Property<string>("ChangedEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ChangedEmailFormTitle")
                                .HasComment("이메일 변경 완료 - 제목");

                            b1.Property<string>("ChangedPasswordEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ChangedPasswordEmailFormContent")
                                .HasComment("비밀번호 변경 완료 - 내용");

                            b1.Property<string>("ChangedPasswordEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ChangedPasswordEmailFormTitle")
                                .HasComment("비밀번호 변경 완료 - 제목");

                            b1.Property<string>("EmailVerifyFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_EmailVerifyFormContent")
                                .HasComment("이메일 변경 시 - 내용");

                            b1.Property<string>("EmailVerifyFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_EmailVerifyFormTitle")
                                .HasComment("이메일 변경 시 - 제목");

                            b1.Property<string>("RegisterEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_RegisterEmailFormContent")
                                .HasComment("회원가입 시 - 내용");

                            b1.Property<string>("RegisterEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_RegisterEmailFormTitle")
                                .HasComment("회원가입 시 - 제목");

                            b1.Property<string>("RegistrationEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_RegistrationEmailFormContent")
                                .HasComment("회원가입 완료 - 내용");

                            b1.Property<string>("RegistrationEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_RegistrationEmailFormTitle")
                                .HasComment("회원가입 완료 - 제목");

                            b1.Property<string>("ResetPasswordEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ResetPasswordEmailFormContent")
                                .HasComment("비밀번호 재설정 - 내용");

                            b1.Property<string>("ResetPasswordEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_ResetPasswordEmailFormTitle")
                                .HasComment("비밀번호 재설정 - 제목");

                            b1.Property<string>("WithdrawEmailFormContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_WithdrawEmailFormContent")
                                .HasComment("회원탈퇴 시 - 내용");

                            b1.Property<string>("WithdrawEmailFormTitle")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("EmailTemplate_WithdrawEmailFormTitle")
                                .HasComment("회원탈퇴 시 - 제목");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.ExternalApiConfig", "External", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("GoogleAppId")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("External_GoogleAppId")
                                .HasComment("Google APP ID");

                            b1.Property<string>("GoogleClientId")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("External_GoogleClientId")
                                .HasComment("Google Client ID");

                            b1.Property<string>("GoogleClientSecretEnc")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("External_GoogleClientSecretEnc")
                                .HasComment("Google Client Secret (암호화 저장 권장)");

                            b1.Property<string>("YouTubeApiKeyEnc")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("External_YouTubeApiKeyEnc")
                                .HasComment("YouTube API Key (암호화 저장 권장)");

                            b1.Property<string>("YouTubeApiName")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("External_YouTubeApiName")
                                .HasComment("YouTube API Name");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.ImagesConfig", "Images", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("AppIcon_192")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_AppIcon_192")
                                .HasComment("App-icon-192");

                            b1.Property<string>("AppIcon_512")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_AppIcon_512")
                                .HasComment("App-icon-512");

                            b1.Property<string>("AppleTouchIcon")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_AppleTouchIcon")
                                .HasComment("Apple-touch-icon");

                            b1.Property<string>("Favicon")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_Favicon")
                                .HasComment("Favicon");

                            b1.Property<string>("LogoHorizontal")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_LogoHorizontal")
                                .HasComment("Logo-horizontal");

                            b1.Property<string>("LogoSquare")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_LogoSquare")
                                .HasComment("Logo-square");

                            b1.Property<string>("OgDefault")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_OgDefault")
                                .HasComment("og-default");

                            b1.Property<string>("TwitterImage")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Images_TwitterImage")
                                .HasComment("Twitter-image");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.MetaConfig", "Meta", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.Property<string>("Adds")
                                .HasColumnType("nvarchar(max)");

                            b1.Property<string>("ApplicationName")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_ApplicationName")
                                .HasComment("Meta Application Name");

                            b1.Property<string>("Author")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Author")
                                .HasComment("Meta Author");

                            b1.Property<string>("Description")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Description")
                                .HasComment("Meta Description");

                            b1.Property<string>("Generator")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Generator")
                                .HasComment("Meta Generator");

                            b1.Property<string>("Keywords")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Keywords")
                                .HasComment("Meta Keywords");

                            b1.Property<string>("Robots")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Robots")
                                .HasComment("Meta Robots");

                            b1.Property<string>("Viewport")
                                .HasMaxLength(255)
                                .HasColumnType("nvarchar(255)")
                                .HasColumnName("Meta_Viewport")
                                .HasComment("Meta Viewport");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.OwnsOne("Domain.Entities.Common.PaymentConfig", "Payment", b1 =>
                        {
                            b1.Property<int>("ConfigID")
                                .HasColumnType("int");

                            b1.HasKey("ConfigID");

                            b1.ToTable("Config");

                            b1.WithOwner()
                                .HasForeignKey("ConfigID");
                        });

                    b.Navigation("Account")
                        .IsRequired();

                    b.Navigation("Basic")
                        .IsRequired();

                    b.Navigation("Company")
                        .IsRequired();

                    b.Navigation("EmailTemplate")
                        .IsRequired();

                    b.Navigation("External")
                        .IsRequired();

                    b.Navigation("Images")
                        .IsRequired();

                    b.Navigation("Meta")
                        .IsRequired();

                    b.Navigation("Payment")
                        .IsRequired();
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.BoardGroup", "BoardGroup")
                        .WithMany("Board")
                        .HasForeignKey("BoardGroupID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("BoardGroup");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany("BoardManager")
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", null)
                        .WithOne("BoardMeta")
                        .HasForeignKey("Domain.Entities.Forum.Boards.BoardMeta", "BoardID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaComment", "Comment", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<bool>("AllowDeleteProtection")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_AllowDeleteProtection");

                            b1.Property<bool>("AllowDisLike")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_AllowDisLike");

                            b1.Property<bool>("AllowLike")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_AllowLike");

                            b1.Property<bool>("AllowSecret")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_AllowSecret");

                            b1.Property<bool>("AllowUpdateProtection")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_AllowUpdateProtection");

                            b1.Property<int>("BlameHideCount")
                                .HasColumnType("int")
                                .HasColumnName("Comment_BlameHideCount");

                            b1.Property<string>("ContentPlaceholder")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Comment_ContentPlaceholder");

                            b1.Property<int>("DeleteProtectionDays")
                                .HasColumnType("int")
                                .HasColumnName("Comment_DeleteProtectionDays");

                            b1.Property<bool>("EnableComment")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_EnableComment");

                            b1.Property<bool>("EnableCommentUpdateLog")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_EnableCommentUpdateLog");

                            b1.Property<bool>("EnableEditor")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_EnableEditor");

                            b1.Property<int>("MaxContentLength")
                                .HasColumnType("int")
                                .HasColumnName("Comment_MaxContentLength");

                            b1.Property<int>("MinContentLength")
                                .HasColumnType("int")
                                .HasColumnName("Comment_MinContentLength");

                            b1.Property<int>("PerPage")
                                .HasColumnType("int")
                                .HasColumnName("Comment_PerPage");

                            b1.Property<bool>("ShowMemberIcon")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_ShowMemberIcon");

                            b1.Property<bool>("ShowMemberPhoto")
                                .HasColumnType("bit")
                                .HasColumnName("Comment_ShowMemberPhoto");

                            b1.Property<int>("UpdateProtectionDays")
                                .HasColumnType("int")
                                .HasColumnName("Comment_UpdateProtectionDays");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaExp", "Exp", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<int>("CommentWriteExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_CommentWriteExp");

                            b1.Property<int>("CommentWriteExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_CommentWriteExpWithinDays");

                            b1.Property<int>("CommentWriteUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_CommentWriteUndoExp");

                            b1.Property<bool>("EnableExp")
                                .HasColumnType("bit")
                                .HasColumnName("Exp_EnableExp");

                            b1.Property<short>("FileDownloadExp")
                                .HasColumnType("smallint")
                                .HasColumnName("Exp_FileDownloadExp");

                            b1.Property<int>("FileUploadExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_FileUploadExp");

                            b1.Property<int>("FileUploadExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_FileUploadExpWithinDays");

                            b1.Property<int>("FileUploadUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_FileUploadUndoExp");

                            b1.Property<int>("OtherCommentDisLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentDisLikeExp");

                            b1.Property<int>("OtherCommentDisLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentDisLikeExpWithinDays");

                            b1.Property<int>("OtherCommentDisLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentDisLikeUndoExp");

                            b1.Property<int>("OtherCommentLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentLikeExp");

                            b1.Property<int>("OtherCommentLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentLikeExpWithinDays");

                            b1.Property<int>("OtherCommentLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherCommentLikeUndoExp");

                            b1.Property<int>("OtherPostDisLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostDisLikeExp");

                            b1.Property<int>("OtherPostDisLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostDisLikeExpWithinDays");

                            b1.Property<int>("OtherPostDisLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostDisLikeUndoExp");

                            b1.Property<int>("OtherPostLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostLikeExp");

                            b1.Property<int>("OtherPostLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostLikeExpWithinDays");

                            b1.Property<int>("OtherPostLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostLikeUndoExp");

                            b1.Property<short>("OtherPostReadExp")
                                .HasColumnType("smallint")
                                .HasColumnName("Exp_OtherPostReadExp");

                            b1.Property<int>("OtherPostReadExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostReadExpWithinDays");

                            b1.Property<int>("OtherPostReadUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OtherPostReadUndoExp");

                            b1.Property<short>("OwnCommentDisLikeExp")
                                .HasColumnType("smallint")
                                .HasColumnName("Exp_OwnCommentDisLikeExp");

                            b1.Property<int>("OwnCommentDisLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnCommentDisLikeExpWithinDays");

                            b1.Property<int>("OwnCommentDisLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnCommentDisLikeUndoExp");

                            b1.Property<int>("OwnCommentLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnCommentLikeExp");

                            b1.Property<int>("OwnCommentLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnCommentLikeExpWithinDays");

                            b1.Property<int>("OwnCommentLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnCommentLikeUndoExp");

                            b1.Property<short>("OwnPostDisLikeExp")
                                .HasColumnType("smallint")
                                .HasColumnName("Exp_OwnPostDisLikeExp");

                            b1.Property<int>("OwnPostDisLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostDisLikeExpWithinDays");

                            b1.Property<int>("OwnPostDisLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostDisLikeUndoExp");

                            b1.Property<int>("OwnPostLikeExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostLikeExp");

                            b1.Property<int>("OwnPostLikeExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostLikeExpWithinDays");

                            b1.Property<int>("OwnPostLikeUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostLikeUndoExp");

                            b1.Property<int>("OwnPostReadExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostReadExp");

                            b1.Property<int>("OwnPostReadExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostReadExpWithinDays");

                            b1.Property<int>("OwnPostReadUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_OwnPostReadUndoExp");

                            b1.Property<int>("PostWriteExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_PostWriteExp");

                            b1.Property<int>("PostWriteExpWithinDays")
                                .HasColumnType("int")
                                .HasColumnName("Exp_PostWriteExpWithinDays");

                            b1.Property<int>("PostWriteUndoExp")
                                .HasColumnType("int")
                                .HasColumnName("Exp_PostWriteUndoExp");

                            b1.Property<bool>("ShowExpGuide")
                                .HasColumnType("bit")
                                .HasColumnName("Exp_ShowExpGuide");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaGeneral", "General", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<bool>("AllowDeleteProtection")
                                .HasColumnType("bit")
                                .HasColumnName("General_AllowDeleteProtection");

                            b1.Property<bool>("AllowUpdateProtection")
                                .HasColumnType("bit")
                                .HasColumnName("General_AllowUpdateProtection");

                            b1.Property<int>("DeleteProtectionDays")
                                .HasColumnType("int")
                                .HasColumnName("General_DeleteProtectionDays");

                            b1.Property<bool>("EnableFileDownLog")
                                .HasColumnType("bit")
                                .HasColumnName("General_EnableFileDownLog");

                            b1.Property<bool>("EnableLinkClickLog")
                                .HasColumnType("bit")
                                .HasColumnName("General_EnableLinkClickLog");

                            b1.Property<bool>("EnablePostUpdateLog")
                                .HasColumnType("bit")
                                .HasColumnName("General_EnablePostUpdateLog");

                            b1.Property<int>("UpdateProtectionDays")
                                .HasColumnType("int")
                                .HasColumnName("General_UpdateProtectionDays");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaList", "List", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<bool>("AlwaysShowWriteButton")
                                .HasColumnType("bit")
                                .HasColumnName("List_AlwaysShowWriteButton");

                            b1.Property<bool>("ExceptNotice")
                                .HasColumnType("bit")
                                .HasColumnName("List_ExceptNotice");

                            b1.Property<bool>("ExceptSpeaker")
                                .HasColumnType("bit")
                                .HasColumnName("List_ExceptSpeaker");

                            b1.Property<string>("FooterContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("List_FooterContent");

                            b1.Property<string>("HeaderContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("List_HeaderContent");

                            b1.Property<bool>("IsHotIcon")
                                .HasColumnType("bit")
                                .HasColumnName("List_IsHotIcon");

                            b1.Property<bool>("IsNewIcon")
                                .HasColumnType("bit")
                                .HasColumnName("List_IsNewIcon");

                            b1.Property<byte?>("Layout")
                                .HasColumnType("tinyint")
                                .HasColumnName("List_Layout");

                            b1.Property<byte>("PerPage")
                                .HasColumnType("tinyint")
                                .HasColumnName("List_PerPage");

                            b1.Property<bool>("ShowFooter")
                                .HasColumnType("bit")
                                .HasColumnName("List_ShowFooter");

                            b1.Property<bool>("ShowFooterListView")
                                .HasColumnType("bit")
                                .HasColumnName("List_ShowFooterListView");

                            b1.Property<bool>("ShowHeader")
                                .HasColumnType("bit")
                                .HasColumnName("List_ShowHeader");

                            b1.Property<byte?>("Sort")
                                .HasColumnType("tinyint")
                                .HasColumnName("List_Sort");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotify", "Notify", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<byte?>("CommentWriteNotify")
                                .HasColumnType("tinyint")
                                .HasColumnName("Notify_CommentWriteNotify");

                            b1.Property<byte?>("PostWriteNotify")
                                .HasColumnType("tinyint")
                                .HasColumnName("Notify_PostWriteNotify");

                            b1.Property<byte?>("ReplyWriteNotify")
                                .HasColumnType("tinyint")
                                .HasColumnName("Notify_ReplyWriteNotify");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotifyTemplate", "NotifyTemplate", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<string>("CommentWriteEmailNotifyContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_CommentWriteEmailNotifyContent");

                            b1.Property<string>("CommentWriteEmailNotifySubject")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_CommentWriteEmailNotifySubject");

                            b1.Property<string>("PostWriteEmailNotifyContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_PostWriteEmailNotifyContent");

                            b1.Property<string>("PostWriteEmailNotifySubject")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_PostWriteEmailNotifySubject");

                            b1.Property<string>("ReplyWriteEmailNotifyContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifyContent");

                            b1.Property<string>("ReplyWriteEmailNotifySubject")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifySubject");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaPermission", "Permission", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<short>("BoardAccess")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_BoardAccess");

                            b1.Property<short>("CommentView")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_CommentView");

                            b1.Property<short>("CommentWrite")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_CommentWrite");

                            b1.Property<short>("FileDownload")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_FileDownload");

                            b1.Property<short>("FileUpload")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_FileUpload");

                            b1.Property<short>("PostView")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_PostView");

                            b1.Property<short>("PostWrite")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_PostWrite");

                            b1.Property<short>("ReplyWrite")
                                .HasColumnType("smallint")
                                .HasColumnName("Permission_ReplyWrite");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaView", "View", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<bool>("AllowBlame")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowBlame");

                            b1.Property<bool>("AllowBookmark")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowBookmark");

                            b1.Property<bool>("AllowContentLinkTargetBlank")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowContentLinkTargetBlank");

                            b1.Property<bool>("AllowDislike")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowDislike");

                            b1.Property<bool>("AllowLike")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowLike");

                            b1.Property<bool>("AllowPostUrlCopy")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowPostUrlCopy");

                            b1.Property<bool>("AllowPostUrlQrCode")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowPostUrlQrCode");

                            b1.Property<bool>("AllowPrevNextBotton")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowPrevNextBotton");

                            b1.Property<bool>("AllowPrint")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowPrint");

                            b1.Property<bool>("AllowSnsShare")
                                .HasColumnType("bit")
                                .HasColumnName("View_AllowSnsShare");

                            b1.Property<int>("BlameHideCount")
                                .HasColumnType("int")
                                .HasColumnName("View_BlameHideCount");

                            b1.Property<bool>("ShowMemberIcon")
                                .HasColumnType("bit")
                                .HasColumnName("View_ShowMemberIcon");

                            b1.Property<bool>("ShowMemberPhoto")
                                .HasColumnType("bit")
                                .HasColumnName("View_ShowMemberPhoto");

                            b1.Property<bool>("ShowMemberRegDate")
                                .HasColumnType("bit")
                                .HasColumnName("View_ShowMemberRegDate");

                            b1.Property<bool>("ShowMemberSummary")
                                .HasColumnType("bit")
                                .HasColumnName("View_ShowMemberSummary");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaWrite", "Write", b1 =>
                        {
                            b1.Property<int>("BoardMetaID")
                                .HasColumnType("int");

                            b1.Property<bool>("AllowEditor")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowEditor");

                            b1.Property<bool>("AllowFile")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowFile");

                            b1.Property<bool>("AllowImage")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowImage");

                            b1.Property<bool>("AllowMedia")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowMedia");

                            b1.Property<bool>("AllowPrefix")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowPrefix");

                            b1.Property<bool>("AllowSecret")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowSecret");

                            b1.Property<bool>("AllowTag")
                                .HasColumnType("bit")
                                .HasColumnName("Write_AllowTag");

                            b1.Property<string>("DefaultContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Write_DefaultContent");

                            b1.Property<string>("DefaultSubject")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Write_DefaultSubject");

                            b1.Property<string>("FileUploadExtension")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Write_FileUploadExtension");

                            b1.Property<byte>("FileUploadLimit")
                                .HasColumnType("tinyint")
                                .HasColumnName("Write_FileUploadLimit");

                            b1.Property<int>("FileUploadMaxSize")
                                .HasColumnType("int")
                                .HasColumnName("Write_FileUploadMaxSize");

                            b1.Property<string>("FooterContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Write_FooterContent");

                            b1.Property<string>("HeaderContent")
                                .HasColumnType("nvarchar(max)")
                                .HasColumnName("Write_HeaderContent");

                            b1.Property<byte>("ImageUploadLimit")
                                .HasColumnType("tinyint")
                                .HasColumnName("Write_ImageUploadLimit");

                            b1.Property<int>("ImageUploadMaxSize")
                                .HasColumnType("int")
                                .HasColumnName("Write_ImageUploadMaxSize");

                            b1.Property<byte>("MediaUploadLimit")
                                .HasColumnType("tinyint")
                                .HasColumnName("Write_MediaUploadLimit");

                            b1.Property<bool>("RequiredPrefix")
                                .HasColumnType("bit")
                                .HasColumnName("Write_RequiredPrefix");

                            b1.Property<bool>("ShowFooter")
                                .HasColumnType("bit")
                                .HasColumnName("Write_ShowFooter");

                            b1.Property<bool>("ShowHeader")
                                .HasColumnType("bit")
                                .HasColumnName("Write_ShowHeader");

                            b1.Property<byte>("TagLimit")
                                .HasColumnType("tinyint")
                                .HasColumnName("Write_TagLimit");

                            b1.HasKey("BoardMetaID");

                            b1.ToTable("BoardMeta");

                            b1.WithOwner()
                                .HasForeignKey("BoardMetaID");
                        });

                    b.Navigation("Comment")
                        .IsRequired();

                    b.Navigation("Exp")
                        .IsRequired();

                    b.Navigation("General")
                        .IsRequired();

                    b.Navigation("List")
                        .IsRequired();

                    b.Navigation("Notify")
                        .IsRequired();

                    b.Navigation("NotifyTemplate")
                        .IsRequired();

                    b.Navigation("Permission")
                        .IsRequired();

                    b.Navigation("View")
                        .IsRequired();

                    b.Navigation("Write")
                        .IsRequired();
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany("BoardPrefix")
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "MentionMember")
                        .WithMany()
                        .HasForeignKey("MentionMemberID")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Parent")
                        .WithMany("Children")
                        .HasForeignKey("ParentID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("Comment")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Member");

                    b.Navigation("MentionMember");

                    b.Navigation("Parent");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentFile")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentImage")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentLink")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentMedia")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithOne("CommentMention")
                        .HasForeignKey("Domain.Entities.Forum.Comments.CommentMention", "CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentReaction")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentReport")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany()
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Comment");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Comments.CommentFile", "CommentFile")
                        .WithMany()
                        .HasForeignKey("CommentFileID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentFileDownLog")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.Navigation("Comment");

                    b.Navigation("CommentFile");

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentLinkClickLog")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Comments.CommentLink", "CommentLink")
                        .WithMany()
                        .HasForeignKey("CommentLinkID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.Navigation("Comment");

                    b.Navigation("CommentLink");

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
                        .WithMany("CommentUpdateLog")
                        .HasForeignKey("CommentID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Comment");

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Domain.Entities.Forum.Posts.PostFile", "PostFile")
                        .WithMany()
                        .HasForeignKey("PostFileID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostFileDownLog")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");

                    b.Navigation("Post");

                    b.Navigation("PostFile");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostLinkClickLog")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.PostLink", "PostLink")
                        .WithMany()
                        .HasForeignKey("PostLinkID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.Navigation("Member");

                    b.Navigation("Post");

                    b.Navigation("PostLink");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostUpdateLog")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany("Post")
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Boards.BoardPrefix", "BoardPrefix")
                        .WithMany()
                        .HasForeignKey("BoardPrefixID")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Board");

                    b.Navigation("BoardPrefix");

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostBookmark", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostBookmark")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostFile", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostFile")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostImage", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostImage")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostLink", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostLink")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostMedia", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostMedia")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReaction", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostReaction")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReport", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostReport")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Member");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.PostTag", b =>
                {
                    b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
                        .WithMany()
                        .HasForeignKey("BoardID")
                        .OnDelete(DeleteBehavior.Restrict)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
                        .WithMany("PostTag")
                        .HasForeignKey("PostID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Domain.Entities.Forum.Posts.Tag", "Tag")
                        .WithMany("PostTag")
                        .HasForeignKey("TagID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Board");

                    b.Navigation("Post");

                    b.Navigation("Tag");
                });

            modelBuilder.Entity("Domain.Entities.Members.Channel", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithOne("Channel")
                        .HasForeignKey("Domain.Entities.Members.Channel", "MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberEmailChangeLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberIntroChangeLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberLoginLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberNameChangeLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Logs.MemberSummaryChangeLog", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.Member", b =>
                {
                    b.HasOne("Domain.Entities.Members.MemberGrade", "MemberGrade")
                        .WithMany()
                        .HasForeignKey("MemberGradeID")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("MemberGrade");
                });

            modelBuilder.Entity("Domain.Entities.Members.MemberApprove", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithOne("MemberApprove")
                        .HasForeignKey("Domain.Entities.Members.MemberApprove", "MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.MemberStats", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithOne("MemberStats")
                        .HasForeignKey("Domain.Entities.Members.MemberStats", "MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Members.RefreshToken", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithMany()
                        .HasForeignKey("MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b =>
                {
                    b.HasOne("Domain.Entities.Page.Banner.BannerPosition", "BannerPosition")
                        .WithMany("BannerItems")
                        .HasForeignKey("PositionID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("BannerPosition");
                });

            modelBuilder.Entity("Domain.Entities.Page.Faq.FaqItem", b =>
                {
                    b.HasOne("Domain.Entities.Page.Faq.FaqCategory", "FaqCategory")
                        .WithMany("FaqItems")
                        .HasForeignKey("CategoryID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("FaqCategory");
                });

            modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
                {
                    b.HasOne("Domain.Entities.Members.Member", "Member")
                        .WithOne("Wallet")
                        .HasForeignKey("Domain.Entities.Wallets.Wallet", "MemberID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Member");
                });

            modelBuilder.Entity("Domain.Entities.Wallets.WalletBalance", b =>
                {
                    b.HasOne("Domain.Entities.Wallets.Wallet", null)
                        .WithMany("Balances")
                        .HasForeignKey("WalletKey")
                        .HasPrincipalKey("WalletKey")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "Amount", b1 =>
                        {
                            b1.Property<int>("WalletBalanceID")
                                .HasColumnType("int");

                            b1.Property<string>("Currency")
                                .IsRequired()
                                .HasMaxLength(10)
                                .HasColumnType("nvarchar(10)")
                                .HasColumnName("Currency");

                            b1.Property<decimal>("Value")
                                .HasPrecision(18)
                                .HasColumnType("decimal(18,0)")
                                .HasColumnName("Amount");

                            b1.HasKey("WalletBalanceID");

                            b1.ToTable("WalletBalance");

                            b1.WithOwner()
                                .HasForeignKey("WalletBalanceID");
                        });

                    b.Navigation("Amount")
                        .IsRequired();
                });

            modelBuilder.Entity("Domain.Entities.Wallets.WalletTransaction", b =>
                {
                    b.HasOne("Domain.Entities.Wallets.Wallet", "Wallet")
                        .WithMany("Transactions")
                        .HasForeignKey("WalletKey")
                        .HasPrincipalKey("WalletKey")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "Amount", b1 =>
                        {
                            b1.Property<int>("WalletTransactionID")
                                .HasColumnType("int");

                            b1.Property<string>("Currency")
                                .IsRequired()
                                .HasMaxLength(10)
                                .HasColumnType("nvarchar(10)")
                                .HasColumnName("Currency");

                            b1.Property<decimal>("Value")
                                .HasPrecision(18)
                                .HasColumnType("decimal(18,0)")
                                .HasColumnName("Amount");

                            b1.HasKey("WalletTransactionID");

                            b1.ToTable("WalletTransaction");

                            b1.WithOwner()
                                .HasForeignKey("WalletTransactionID");
                        });

                    b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "BalanceAfter", b1 =>
                        {
                            b1.Property<int>("WalletTransactionID")
                                .HasColumnType("int");

                            b1.Property<string>("Currency")
                                .IsRequired()
                                .HasMaxLength(10)
                                .HasColumnType("nvarchar(10)")
                                .HasColumnName("BalanceAfterCurrency");

                            b1.Property<decimal>("Value")
                                .HasPrecision(18)
                                .HasColumnType("decimal(18,0)")
                                .HasColumnName("BalanceAfter");

                            b1.HasKey("WalletTransactionID");

                            b1.ToTable("WalletTransaction");

                            b1.WithOwner()
                                .HasForeignKey("WalletTransactionID");
                        });

                    b.Navigation("Amount")
                        .IsRequired();

                    b.Navigation("BalanceAfter")
                        .IsRequired();

                    b.Navigation("Wallet");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b =>
                {
                    b.Navigation("BoardManager");

                    b.Navigation("BoardMeta")
                        .IsRequired();

                    b.Navigation("BoardPrefix");

                    b.Navigation("Post");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardGroup", b =>
                {
                    b.Navigation("Board");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b =>
                {
                    b.Navigation("Children");

                    b.Navigation("CommentFile");

                    b.Navigation("CommentFileDownLog");

                    b.Navigation("CommentImage");

                    b.Navigation("CommentLink");

                    b.Navigation("CommentLinkClickLog");

                    b.Navigation("CommentMedia");

                    b.Navigation("CommentMention");

                    b.Navigation("CommentReaction");

                    b.Navigation("CommentReport");

                    b.Navigation("CommentUpdateLog");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b =>
                {
                    b.Navigation("Comment");

                    b.Navigation("PostBookmark");

                    b.Navigation("PostFile");

                    b.Navigation("PostFileDownLog");

                    b.Navigation("PostImage");

                    b.Navigation("PostLink");

                    b.Navigation("PostLinkClickLog");

                    b.Navigation("PostMedia");

                    b.Navigation("PostReaction");

                    b.Navigation("PostReport");

                    b.Navigation("PostTag");

                    b.Navigation("PostUpdateLog");
                });

            modelBuilder.Entity("Domain.Entities.Forum.Posts.Tag", b =>
                {
                    b.Navigation("PostTag");
                });

            modelBuilder.Entity("Domain.Entities.Members.Member", b =>
                {
                    b.Navigation("Channel");

                    b.Navigation("MemberApprove")
                        .IsRequired();

                    b.Navigation("MemberStats")
                        .IsRequired();

                    b.Navigation("Wallet");
                });

            modelBuilder.Entity("Domain.Entities.Page.Banner.BannerPosition", b =>
                {
                    b.Navigation("BannerItems");
                });

            modelBuilder.Entity("Domain.Entities.Page.Faq.FaqCategory", b =>
                {
                    b.Navigation("FaqItems");
                });

            modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
                {
                    b.Navigation("Balances");

                    b.Navigation("Transactions");
                });
#pragma warning restore 612, 618
        }
    }
}
