// <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("20260205091731_PendingChanges")]
    partial class PendingChanges
    {
        /// <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.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.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<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>("Thunmbnail")
                        .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<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.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.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.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.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
        }
    }
}
