// 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.Persistence.Migrations { [DbContext(typeof(AppDbContext))] [Migration("20260128073436_a2")] partial class a2 { /// 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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("LastUpdatedAt") .HasColumnType("datetime2") .HasComment("마지막 수정일시"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasComment("Code"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Email") .IsRequired() .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("이메일"); b.Property("Expiration") .HasColumnType("datetime2") .HasComment("만료 일시"); b.Property("IsVerified") .HasColumnType("bit") .HasComment("인증 여부"); b.Property("Type") .HasColumnType("int") .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)"); b.HasKey("ID"); b.HasIndex("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Additional") .HasColumnType("nvarchar(max)") .HasComment("추가 정보(JSON)"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Email") .IsRequired() .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("이메일"); b.Property("Expiration") .HasColumnType("datetime2") .HasComment("만료 일시"); b.Property("IsVerified") .HasColumnType("bit") .HasComment("인증 여부"); b.Property("Token") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)") .HasComment("Token"); b.Property("Type") .HasColumnType("int") .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)"); b.HasKey("ID"); b.HasIndex("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Handle") .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("핸들"); b.Property("IsActive") .HasColumnType("bit") .HasComment("활성 여부"); b.Property("IsVerified") .HasColumnType("bit") .HasComment("인증 여부"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("채널 이름"); b.Property("PlatformFeeRate") .HasPrecision(5, 2) .HasColumnType("decimal(5,2)") .HasComment("수수료(%)"); b.Property("SID") .IsRequired() .HasMaxLength(24) .HasColumnType("nvarchar(24)") .HasComment("채널 ID"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("AfterEmail") .IsRequired() .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("바뀐 이메일"); b.Property("BeforeEmail") .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("이전 이메일"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(45) .HasColumnType("nvarchar(45)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Referer") .HasColumnType("nvarchar(max)") .HasComment("이전 페이지 주소"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("AfterIntro") .HasMaxLength(3000) .HasColumnType("nvarchar(3000)") .HasComment("바꾼 자기소개"); b.Property("BeforeIntro") .HasMaxLength(3000) .HasColumnType("nvarchar(3000)") .HasComment("이전 자기소개"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Referer") .HasColumnType("nvarchar(max)") .HasComment("이전 페이지 주소"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Account") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)") .HasComment("로그인 시도한 계정"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(45) .HasColumnType("nvarchar(45)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Reason") .HasMaxLength(225) .HasColumnType("nvarchar(225)") .HasComment("실패 이유"); b.Property("Referer") .HasColumnType("nvarchar(max)") .HasComment("이전 페이지 주소"); b.Property("Success") .HasColumnType("bit") .HasComment("로그인 성공 여부 (0: 실패, 1: 성공)"); b.Property("Url") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("요청 주소"); b.Property("UserAgent") .HasMaxLength(512) .HasColumnType("nvarchar(512)") .HasComment("User Agent"); b.HasKey("ID"); b.HasIndex("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("AfterName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("바꾼 별명"); b.Property("BeforeName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("이전 별명"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Referer") .HasColumnType("nvarchar(max)") .HasComment("이전 페이지 주소"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("AfterSummary") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("바꾼 한마디"); b.Property("BeforeSummary") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("이전 한마디"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Referer") .HasColumnType("nvarchar(max)") .HasComment("이전 페이지 주소"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("AuthCertifiedAt") .HasColumnType("datetime2") .HasComment("본인인증 일시"); b.Property("Birthday") .HasColumnType("date") .HasComment("생년월일"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("가입 일시"); b.Property("DeletedAt") .HasColumnType("datetime2") .HasComment("탈퇴 일시"); b.Property("DeniedAt") .HasColumnType("datetime2") .HasComment("차단 일시"); b.Property("DeviceInfo") .HasMaxLength(400) .HasColumnType("nvarchar(400)") .HasComment("로그인 단말기 정보"); b.Property("Email") .IsRequired() .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("이메일"); b.Property("EmailVerifiedAt") .HasColumnType("datetime2") .HasComment("이메일 인증 일시"); b.Property("FirstName") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("본명(성)"); b.Property("FullName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("본명"); b.Property("Gender") .HasColumnType("int") .HasComment("성별"); b.Property("Icon") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("아이콘"); b.Property("Intro") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("자기소개"); b.Property("IpAddress") .HasMaxLength(45) .HasColumnType("nvarchar(45)") .HasComment("IP Address"); b.Property("IsAdmin") .HasColumnType("bit") .HasComment("운영진 여부"); b.Property("IsAuthCertified") .HasColumnType("bit") .HasComment("본인 인증 여부"); b.Property("IsCreator") .HasColumnType("bit") .HasComment("크리에이터 여부"); b.Property("IsDenied") .HasColumnType("bit") .HasComment("차단 여부"); b.Property("IsEmailVerified") .HasColumnType("bit") .HasComment("이메일 인증 여부"); b.Property("IsWithdraw") .HasColumnType("bit") .HasComment("탈퇴 여부"); b.Property("LastEmailChangedAt") .HasColumnType("datetime2") .HasComment("마지막 이메일 변경 일시"); b.Property("LastIntroChangedAt") .HasColumnType("datetime2") .HasComment("마지막 자기소개 변경 일시"); b.Property("LastLoginAt") .HasColumnType("datetime2") .HasComment("마지막 로그인 일시"); b.Property("LastLoginIp") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("마지막 로그인 IP"); b.Property("LastName") .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasComment("본명(이름)"); b.Property("LastNameChangedAt") .HasColumnType("datetime2") .HasComment("마지막 별명 변경 일시"); b.Property("LastSummaryChangedAt") .HasColumnType("datetime2") .HasComment("마지막 한마디 변경 일시"); b.Property("MemberGradeID") .HasColumnType("int") .HasComment("회원등급 PK"); b.Property("Name") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("별명"); b.Property("Password") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("비밀번호"); b.Property("PasswordUpdatedAt") .HasColumnType("datetime2") .HasComment("비밀번호 변경 일시"); b.Property("Phone") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("연락처"); b.Property("SID") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("SID"); b.Property("SignupIP") .HasMaxLength(15) .HasColumnType("nvarchar(15)") .HasComment("회원가입 시 IP"); b.Property("Summary") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("한마디"); b.Property("Thunmbnail") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("썸네일"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("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("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("DisclosureInvestConsentAt") .HasColumnType("datetime2") .HasComment("투자 현황 공개 동의 일시"); b.Property("IsDisclosureInvest") .HasColumnType("bit") .HasComment("투자 현황 공개 여부"); b.Property("IsReceiveEmail") .HasColumnType("bit") .HasComment("E-MAIL 수신 여부"); b.Property("IsReceiveNote") .HasColumnType("bit") .HasComment("쪽지 수신 여부"); b.Property("IsReceiveSMS") .HasColumnType("bit") .HasComment("SMS 수신 여부"); b.Property("ReceiveEmailConsentAt") .HasColumnType("datetime2") .HasComment("E-MAIL 수신 동의 일시"); b.Property("ReceiveNoteConsentAt") .HasColumnType("datetime2") .HasComment("쪽지 수신 동의 일시"); b.Property("ReceiveSMSConsentAt") .HasColumnType("datetime2") .HasComment("SMS 수신 동의 일시"); b.HasKey("MemberID"); b.ToTable("MemberApprove", null, t => { t.HasComment("회원 동의 및 수신 여부"); }); }); modelBuilder.Entity("Domain.Entities.Members.MemberGrade", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Description") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("설명"); b.Property("EngName") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)") .HasComment("영문 명"); b.Property("Image") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("이미지"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("KorName") .IsRequired() .HasMaxLength(240) .HasColumnType("nvarchar(240)") .HasComment("한글 명"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("RequiredAttendance") .HasColumnType("bigint") .HasComment("누적 출석 수"); b.Property("RequiredExp") .HasColumnType("int") .HasComment("누적 경험치"); b.Property("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("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("AttendanceCount") .HasColumnType("bigint") .HasComment("출석"); b.Property("BookmarkGivenCount") .HasColumnType("bigint") .HasComment("즐겨찾기 글 수"); b.Property("CommentCount") .HasColumnType("bigint") .HasComment("작성 댓글"); b.Property("Exp") .HasColumnType("bigint") .HasComment("경험치"); b.Property("FollowerCount") .HasColumnType("bigint") .HasComment("구독자"); b.Property("FollowingCount") .HasColumnType("bigint") .HasComment("구독 중"); b.Property("LikeGivenCount") .HasColumnType("bigint") .HasComment("누른 좋아요 수"); b.Property("LikeReceivedCount") .HasColumnType("bigint") .HasComment("받은 좋아요 수"); b.Property("LoginCount") .HasColumnType("bigint") .HasComment("로그인"); b.Property("PaymentCount") .HasColumnType("bigint") .HasComment("결제 횟수"); b.Property("PostCount") .HasColumnType("bigint") .HasComment("작성 게시글"); b.Property("ReportedCount") .HasColumnType("bigint") .HasComment("신고 당한 횟수"); b.Property("RowVersion") .IsConcurrencyToken() .IsRequired() .ValueGeneratedOnAddOrUpdate() .HasColumnType("rowversion") .HasComment("동시성"); b.Property("SuspensionCount") .HasColumnType("int") .HasComment("정지 횟수"); b.Property("TotalCanceledAmount") .HasColumnType("bigint") .HasComment("누적 취소/환불 금액"); b.Property("TotalPaidAmount") .HasColumnType("bigint") .HasComment("누적 결제 금액"); b.Property("WarningCount") .HasColumnType("int") .HasComment("경고 횟수"); b.HasKey("MemberID"); b.ToTable("MemberStats", null, t => { t.HasComment("회원 활동 집계"); }); }); modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("DesktopImage") .HasMaxLength(1024) .HasColumnType("nvarchar(1024)") .HasComment("이미지(Desktop)"); b.Property("EndAt") .HasColumnType("datetime2") .HasComment("사용 기간 - 종료"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Link") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("주소"); b.Property("MobileImage") .HasMaxLength(1024) .HasColumnType("nvarchar(1024)") .HasComment("이미지(Mobile)"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("PositionID") .HasColumnType("int") .HasComment("배너 위치 ID"); b.Property("StartAt") .HasColumnType("datetime2") .HasComment("사용 기간 - 시작"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("배너 명"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("위치 구분"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("위치 명"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("주소"); b.Property("Content") .HasMaxLength(5000) .HasColumnType("nvarchar(max)") .HasComment("내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Subject") .IsRequired() .HasMaxLength(120) .HasColumnType("nvarchar(120)") .HasComment("제목"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("Views") .HasColumnType("int") .HasComment("조회 수"); b.HasKey("ID"); b.HasIndex("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("주소"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("분류 명"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Answer") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("답변"); b.Property("CategoryID") .HasColumnType("int") .HasComment("분류 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("Question") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("질문"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Content") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("EndAt") .HasColumnType("datetime2") .HasComment("사용 기간 - 종료"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Link") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("주소"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("StartAt") .HasColumnType("datetime2") .HasComment("사용 기간 - 시작"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("제목"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.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("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("MemberID") .HasColumnType("int"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Type") .HasColumnType("int"); b.Property("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("ID") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BalanceType") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("Memo") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("Reason") .IsRequired() .HasMaxLength(1000) .HasColumnType("nvarchar(1000)"); b.Property("RefID") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("TxType") .HasColumnType("int"); b.Property("UserID") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("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("ConfigID") .HasColumnType("int"); b1.Property("ChangeEmailDay") .HasColumnType("int") .HasColumnName("Account_ChangeEmailDay") .HasComment("이메일 갱신 주기(일)"); b1.Property("ChangeIntroDay") .HasColumnType("int") .HasColumnName("Account_ChangeIntroDay") .HasComment("자기소개 갱신 주기(일)"); b1.Property("ChangeNameDay") .HasColumnType("int") .HasColumnName("Account_ChangeNameDay") .HasComment("별명 갱신 주기(일)"); b1.Property("ChangePasswordDay") .HasColumnType("int") .HasColumnName("Account_ChangePasswordDay") .HasComment("비밀번호 갱신 주기(일)"); b1.Property("ChangeSummaryDay") .HasColumnType("int") .HasColumnName("Account_ChangeSummaryDay") .HasComment("한마디 갱신 주기(일)"); b1.Property("DeniedEmailList") .HasColumnType("nvarchar(max)") .HasColumnName("Account_DeniedEmailList") .HasComment("금지 이메일"); b1.Property("DeniedNameList") .HasColumnType("nvarchar(max)") .HasColumnName("Account_DeniedNameList") .HasComment("금지 별명"); b1.Property("IsRegisterBlock") .HasColumnType("bit") .HasColumnName("Account_IsRegisterBlock") .HasComment("회원가입 차단"); b1.Property("IsRegisterEmailAuth") .HasColumnType("bit") .HasColumnName("Account_IsRegisterEmailAuth") .HasComment("회원가입 시 이메일 인증"); b1.Property("MaxLoginTryCount") .HasColumnType("int") .HasColumnName("Account_MaxLoginTryCount") .HasComment("로그인 시도 제한 횟수"); b1.Property("MaxLoginTryLimitSecond") .HasColumnType("int") .HasColumnName("Account_MaxLoginTryLimitSecond") .HasComment("로그인 시도 제한 시간(초)"); b1.Property("PasswordMinLength") .HasColumnType("int") .HasColumnName("Account_PasswordMinLength") .HasComment("비밀번호 최소 길이"); b1.Property("PasswordNumbersLength") .HasColumnType("int") .HasColumnName("Account_PasswordNumbersLength") .HasComment("비밀번호 최소 숫자 수"); b1.Property("PasswordSpecialcharsLength") .HasColumnType("int") .HasColumnName("Account_PasswordSpecialcharsLength") .HasComment("비밀번호 최소 특수문자 수"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("AdminWhiteIPList") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasColumnName("Basic_AdminWhiteIPList") .HasComment("관리자단 접근 가능 IP"); b1.Property("BlockAlertContent") .HasMaxLength(5000) .HasColumnType("nvarchar(max)") .HasColumnName("Basic_BlockAlertContent") .HasComment("차단 시 안내문 내용"); b1.Property("BlockAlertTitle") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasColumnName("Basic_BlockAlertTitle") .HasComment("차단 시 안내문 제목"); b1.Property("FromEmail") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Basic_FromEmail") .HasComment("송수신 이메일"); b1.Property("FromName") .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasColumnName("Basic_FromName") .HasComment("송수신자 이름"); b1.Property("FrontWhiteIPList") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasColumnName("Basic_FrontWhiteIPList") .HasComment("사용자단 접근 가능 IP"); b1.Property("IsMaintenance") .HasColumnType("bit") .HasColumnName("Basic_IsMaintenance") .HasComment("점검 여부"); b1.Property("MaintenanceContent") .HasMaxLength(5000) .HasColumnType("nvarchar(max)") .HasColumnName("Basic_MaintenanceContent") .HasComment("점검 내용"); b1.Property("RootID") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Basic_RootID") .HasComment("최고 관리자 ID"); b1.Property("SiteName") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Basic_SiteName") .HasComment("사이트 이름"); b1.Property("SiteURL") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Basic_SiteURL") .HasComment("사이트 주소"); b1.Property("SmtpEnableSSL") .HasColumnType("bit") .HasColumnName("Basic_SmtpEnableSSL") .HasComment("SMTP Enable SSL"); b1.Property("SmtpPassword") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasColumnName("Basic_SmtpPassword") .HasComment("SMTP Password"); b1.Property("SmtpPort") .HasColumnType("int") .HasColumnName("Basic_SmtpPort") .HasComment("SMTP Port"); b1.Property("SmtpServer") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasColumnName("Basic_SmtpServer") .HasComment("SMTP Server"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("AddedSaleNo") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasColumnName("Company_AddedSaleNo") .HasComment("부가통신 사업자번호"); b1.Property("Address") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Company_Address") .HasComment("사업장 소재지"); b1.Property("AdminEmail") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Company_AdminEmail") .HasComment("정보관리책임자 이메일"); b1.Property("AdminName") .HasMaxLength(70) .HasColumnType("nvarchar(70)") .HasColumnName("Company_AdminName") .HasComment("정보관리책임자"); b1.Property("BankCode") .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasColumnName("Company_BankCode") .HasComment("입금계좌 - 은행"); b1.Property("BankNumber") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Company_BankNumber") .HasComment("입금계좌 - 계좌번호"); b1.Property("BankOwner") .HasMaxLength(70) .HasColumnType("nvarchar(70)") .HasColumnName("Company_BankOwner") .HasComment("입금계좌 - 예금주"); b1.Property("Fax") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasColumnName("Company_Fax") .HasComment("FAX"); b1.Property("Hosting") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Company_Hosting") .HasComment("호스팅 서비스"); b1.Property("Name") .HasMaxLength(70) .HasColumnType("nvarchar(70)") .HasColumnName("Company_Name") .HasComment("상호 명"); b1.Property("Owner") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasColumnName("Company_Owner") .HasComment("대표자 명"); b1.Property("RegNo") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasColumnName("Company_RegNo") .HasComment("사업자 등록 번호"); b1.Property("RetailSaleNo") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasColumnName("Company_RetailSaleNo") .HasComment("통신판매업 신고번호"); b1.Property("SiteUrl") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasColumnName("Company_SiteUrl") .HasComment("사이트 주소"); b1.Property("Tel") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasColumnName("Company_Tel") .HasComment("대표 전화번호"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("ChangedEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ChangedEmailFormContent") .HasComment("이메일 변경 완료 - 내용"); b1.Property("ChangedEmailFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ChangedEmailFormTitle") .HasComment("이메일 변경 완료 - 제목"); b1.Property("ChangedPasswordEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ChangedPasswordEmailFormContent") .HasComment("비밀번호 변경 완료 - 내용"); b1.Property("ChangedPasswordEmailFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ChangedPasswordEmailFormTitle") .HasComment("비밀번호 변경 완료 - 제목"); b1.Property("EmailVerifyFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_EmailVerifyFormContent") .HasComment("이메일 변경 시 - 내용"); b1.Property("EmailVerifyFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_EmailVerifyFormTitle") .HasComment("이메일 변경 시 - 제목"); b1.Property("RegisterEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_RegisterEmailFormContent") .HasComment("회원가입 시 - 내용"); b1.Property("RegisterEmailFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_RegisterEmailFormTitle") .HasComment("회원가입 시 - 제목"); b1.Property("RegistrationEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_RegistrationEmailFormContent") .HasComment("회원가입 완료 - 내용"); b1.Property("RegistrationEmailFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_RegistrationEmailFormTitle") .HasComment("회원가입 완료 - 제목"); b1.Property("ResetPasswordEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ResetPasswordEmailFormContent") .HasComment("비밀번호 재설정 - 내용"); b1.Property("ResetPasswordEmailFormTitle") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_ResetPasswordEmailFormTitle") .HasComment("비밀번호 재설정 - 제목"); b1.Property("WithdrawEmailFormContent") .HasColumnType("nvarchar(max)") .HasColumnName("EmailTemplate_WithdrawEmailFormContent") .HasComment("회원탈퇴 시 - 내용"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("GoogleAppId") .HasColumnType("nvarchar(max)") .HasColumnName("External_GoogleAppId") .HasComment("Google APP ID"); b1.Property("GoogleClientId") .HasColumnType("nvarchar(max)") .HasColumnName("External_GoogleClientId") .HasComment("Google Client ID"); b1.Property("GoogleClientSecretEnc") .HasColumnType("nvarchar(max)") .HasColumnName("External_GoogleClientSecretEnc") .HasComment("Google Client Secret (암호화 저장 권장)"); b1.Property("YouTubeApiKeyEnc") .HasColumnType("nvarchar(max)") .HasColumnName("External_YouTubeApiKeyEnc") .HasComment("YouTube API Key (암호화 저장 권장)"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("AppIcon_192") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_AppIcon_192") .HasComment("App-icon-192"); b1.Property("AppIcon_512") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_AppIcon_512") .HasComment("App-icon-512"); b1.Property("AppleTouchIcon") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_AppleTouchIcon") .HasComment("Apple-touch-icon"); b1.Property("Favicon") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_Favicon") .HasComment("Favicon"); b1.Property("LogoHorizontal") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_LogoHorizontal") .HasComment("Logo-horizontal"); b1.Property("LogoSquare") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_LogoSquare") .HasComment("Logo-square"); b1.Property("OgDefault") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Images_OgDefault") .HasComment("og-default"); b1.Property("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("ConfigID") .HasColumnType("int"); b1.Property("Adds") .HasColumnType("nvarchar(max)"); b1.Property("ApplicationName") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_ApplicationName") .HasComment("Meta Application Name"); b1.Property("Author") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_Author") .HasComment("Meta Author"); b1.Property("Description") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_Description") .HasComment("Meta Description"); b1.Property("Generator") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_Generator") .HasComment("Meta Generator"); b1.Property("Keywords") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_Keywords") .HasComment("Meta Keywords"); b1.Property("Robots") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasColumnName("Meta_Robots") .HasComment("Meta Robots"); b1.Property("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("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("WalletBalanceID") .HasColumnType("int"); b1.Property("Currency") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasColumnName("Currency"); b1.Property("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("WalletTransactionID") .HasColumnType("int"); b1.Property("Currency") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasColumnName("Currency"); b1.Property("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("WalletTransactionID") .HasColumnType("int"); b1.Property("Currency") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasColumnName("BalanceAfterCurrency"); b1.Property("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 } } }