// 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("20260221140944_a9")] partial class a9 { /// 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.Crypto.Coin", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("ContractAddress") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasComment("컨트랙트 주소"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Description") .HasColumnType("nvarchar(max)") .HasComment("설명"); b.Property("DisplayOrder") .HasColumnType("smallint") .HasComment("메인 노출 순서"); b.Property("EngName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("영문 이름"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("IsDelisted") .HasColumnType("bit") .HasComment("상장 폐지"); b.Property("IsFeatured") .HasColumnType("bit") .HasComment("주요 코인 (메인 노출)"); b.Property("IsNew") .HasColumnType("bit") .HasComment("신규 상장"); b.Property("IsWarning") .HasColumnType("bit") .HasComment("위험 경고"); b.Property("KorName") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("한글 이름"); b.Property("LogoImage") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("로고 이미지"); b.Property("Symbol") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("심볼 (BTC, ETH 등)"); b.Property("TelegramUrl") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("텔레그램 URL"); b.Property("TwitterUrl") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("트위터 URL"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("WebsiteUrl") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("홈페이지 URL"); b.Property("WhitepaperUrl") .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("백서 URL"); b.HasKey("ID"); b.HasIndex("DisplayOrder") .HasDatabaseName("IX_Coin_DisplayOrder"); b.HasIndex("IsActive"); b.HasIndex("IsDelisted"); b.HasIndex("IsFeatured") .HasDatabaseName("IX_Coin_IsFeatured"); b.HasIndex("IsNew"); b.HasIndex("IsWarning"); b.HasIndex("Symbol") .IsUnique(); b.HasIndex("Symbol", "IsActive"); b.ToTable("Coin", null, t => { t.HasComment("코인/토큰"); }); }); modelBuilder.Entity("Domain.Entities.Crypto.CoinCategory", 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("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasComment("카테고리 이름"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("Code") .IsUnique(); b.HasIndex("IsActive"); b.HasIndex("Order"); b.ToTable("CoinCategory", null, t => { t.HasComment("코인 카테고리"); }); }); modelBuilder.Entity("Domain.Entities.Crypto.CoinCategoryMap", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CategoryID") .HasColumnType("int") .HasComment("카테고리 ID"); b.Property("CoinID") .HasColumnType("int") .HasComment("코인 ID"); b.HasKey("ID"); b.HasIndex("CategoryID"); b.HasIndex("CoinID", "CategoryID") .IsUnique(); b.ToTable("CoinCategoryMap", null, t => { t.HasComment("코인-카테고리 연결"); }); }); modelBuilder.Entity("Domain.Entities.Crypto.CoinMarket", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CoinID") .HasColumnType("int") .HasComment("코인 ID"); b.Property("Market") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("거래쌍 (KRW-BTC 등)"); b.HasKey("ID"); b.HasIndex("Market"); b.HasIndex("CoinID", "Market") .IsUnique(); b.ToTable("CoinMarket", null, t => { t.HasComment("코인-거래쌍 연결"); }); }); modelBuilder.Entity("Domain.Entities.Director.AdminAccessLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("bigint") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("생성 일시"); b.Property("ElapsedMs") .HasColumnType("bigint") .HasComment("처리 시간 (밀리초)"); b.Property("IpAddress") .HasMaxLength(45) .HasColumnType("nvarchar(45)") .HasComment("IP 주소"); b.Property("MenuName") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("메뉴 이름"); b.Property("Method") .IsRequired() .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasComment("HTTP Method"); b.Property("Path") .IsRequired() .HasMaxLength(2048) .HasColumnType("nvarchar(2048)") .HasComment("요청 경로"); b.Property("QueryString") .HasMaxLength(2048) .HasColumnType("nvarchar(2048)") .HasComment("쿼리 스트링"); b.Property("StatusCode") .HasColumnType("int") .HasComment("응답 상태 코드"); b.Property("UserAgent") .HasMaxLength(512) .HasColumnType("nvarchar(512)") .HasComment("User Agent"); b.Property("UserID") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasComment("관리자 사용자 ID"); b.Property("UserName") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasComment("관리자 사용자 이름"); b.HasKey("ID"); b.HasIndex("CreatedAt"); b.HasIndex("UserID"); b.ToTable("AdminAccessLog", null, t => { t.HasComment("관리자 접근 기록"); }); }); modelBuilder.Entity("Domain.Entities.Director.AdminLoginLog", b => { b.Property("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 주소"); b.Property("Reason") .HasMaxLength(225) .HasColumnType("nvarchar(225)") .HasComment("실패 사유"); b.Property("Success") .HasColumnType("bit") .HasComment("로그인 성공 여부"); b.Property("UserAgent") .HasMaxLength(512) .HasColumnType("nvarchar(512)") .HasComment("User Agent"); b.HasKey("ID"); b.HasIndex("Account"); b.HasIndex("CreatedAt"); b.ToTable("AdminLoginLog", null, t => { t.HasComment("관리자 로그인 기록"); }); }); modelBuilder.Entity("Domain.Entities.EmailVerification.EmailVerifyNumber", b => { b.Property("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.Forum.Boards.Board", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardGroupID") .HasColumnType("int") .HasComment("분류 ID"); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("게시판 주소"); b.Property("CoinID") .HasColumnType("int"); b.Property("Comments") .HasColumnType("int") .HasComment("댓글 수"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("IsSearch") .HasColumnType("bit") .HasComment("검색 여부"); b.Property("Name") .IsRequired() .HasMaxLength(70) .HasColumnType("nvarchar(70)") .HasComment("게시판 이름"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("Posts") .HasColumnType("int") .HasComment("게시글 수"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("BoardGroupID"); b.HasIndex("Code") .IsUnique(); b.HasIndex("CoinID"); b.HasIndex("Comments"); b.HasIndex("IsActive"); b.HasIndex("IsSearch"); b.HasIndex("Name"); b.HasIndex("Order"); b.HasIndex("Posts"); b.HasIndex("Code", "IsActive"); b.HasIndex("Code", "IsSearch"); b.HasIndex("IsSearch", "IsActive"); b.ToTable("Board", null, t => { t.HasComment("게시판"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardGroup", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("Boards") .HasColumnType("smallint") .HasComment("게시판 수"); b.Property("Code") .IsRequired() .HasMaxLength(30) .HasColumnType("nvarchar(30)") .HasComment("게시판 분류 주소"); b.Property("Comments") .HasColumnType("int") .HasComment("댓글 수"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Name") .IsRequired() .HasMaxLength(70) .HasColumnType("nvarchar(70)") .HasComment("게시판 분류 명"); b.Property("Order") .HasColumnType("smallint") .HasComment("순서"); b.Property("Posts") .HasColumnType("int") .HasComment("게시글 수"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("Code") .IsUnique(); b.HasIndex("Order"); b.HasIndex("Order", "CreatedAt"); b.HasIndex("Code", "Order", "CreatedAt"); b.ToTable("BoardGroup", null, t => { t.HasComment("게시판 분류"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("CanDelete") .HasColumnType("bit") .HasComment("삭제 권한"); b.Property("CanEdit") .HasColumnType("bit") .HasComment("수정 권한"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("MemberID") .HasColumnType("int") .HasComment("관리자 ID"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("MemberID"); b.HasIndex("BoardID", "MemberID"); b.ToTable("BoardManager", null, t => { t.HasComment("게시판 관리자"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.HasKey("ID"); b.HasIndex("BoardID") .IsUnique(); b.ToTable("BoardMeta", null, t => { t.HasComment("게시판 설정"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("Color") .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasComment("색상"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IsActive") .HasColumnType("bit") .HasComment("사용 여부"); b.Property("Name") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("말머리"); b.Property("Order") .HasColumnType("smallint") .HasComment("정렬 순서"); b.Property("Posts") .HasColumnType("int") .HasComment("사용 게시글 수"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.HasKey("ID"); b.HasIndex("BoardID", "IsActive", "Order", "CreatedAt"); b.ToTable("BoardPrefix", null, t => { t.HasComment("게시판 말머리"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("Content") .IsRequired() .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("댓글 내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("DeletedAt") .HasColumnType("datetime2"); b.Property("Depth") .HasColumnType("smallint") .HasComment("댓글 깊이"); b.Property("Dislikes") .HasColumnType("int"); b.Property("Email") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Files") .HasColumnType("tinyint"); b.Property("Images") .HasColumnType("int"); b.Property("IpAddress") .HasColumnType("nvarchar(max)"); b.Property("IsDeleted") .HasColumnType("bit") .HasComment("삭제 여부"); b.Property("IsReply") .HasColumnType("bit"); b.Property("IsSecret") .HasColumnType("bit"); b.Property("Likes") .HasColumnType("int"); b.Property("Medias") .HasColumnType("tinyint"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("MentionMemberID") .HasColumnType("int") .HasComment("언급 대상 회원 ID"); b.Property("Name") .HasColumnType("nvarchar(max)"); b.Property("ParentID") .HasColumnType("int") .HasComment("부모 댓글 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Replies") .HasColumnType("int"); b.Property("Reports") .HasColumnType("int"); b.Property("SID") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Score") .HasColumnType("int") .HasComment("점수"); b.Property("Status") .HasColumnType("tinyint") .HasComment("댓글 상태"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("UserAgent") .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("MemberID"); b.HasIndex("MentionMemberID"); b.HasIndex("ParentID"); b.HasIndex("PostID"); b.HasIndex("PostID", "IsDeleted", "ParentID", "CreatedAt") .IsDescending(false, false, false, true); b.HasIndex("PostID", "IsDeleted", "ParentID", "Score", "ID") .IsDescending(false, false, false, true, true); b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "CreatedAt") .IsDescending(false, false, false, false, true); b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "Score", "ID") .IsDescending(false, false, false, false, true, true); b.ToTable("Comment", null, t => { t.HasComment("댓글"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CommentID") .HasColumnType("int"); b.Property("ContentType") .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("Downloads") .HasColumnType("int"); b.Property("Extension") .HasColumnType("nvarchar(max)"); b.Property("FileName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("HashedName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("Path") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("PostID") .HasColumnType("int"); b.Property("Size") .HasColumnType("bigint"); b.Property("UUID") .HasColumnType("uniqueidentifier"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("PostID"); b.HasIndex("UUID") .IsUnique(); b.ToTable("CommentFile", null, t => { t.HasComment("댓글 파일"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CommentID") .HasColumnType("int"); b.Property("ContentType") .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("Extension") .HasColumnType("nvarchar(max)"); b.Property("FileName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("HashedName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Height") .HasColumnType("smallint"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("Path") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("PostID") .HasColumnType("int"); b.Property("Size") .HasColumnType("bigint"); b.Property("UUID") .HasColumnType("uniqueidentifier"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Width") .HasColumnType("smallint"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("PostID"); b.HasIndex("UUID") .IsUnique(); b.ToTable("CommentImage", null, t => { t.HasComment("댓글 이미지"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("Clicks") .HasColumnType("int"); b.Property("CommentID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("PostID") .HasColumnType("int"); b.Property("UUID") .HasColumnType("uniqueidentifier"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("PostID"); b.ToTable("CommentLink", null, t => { t.HasComment("댓글 링크"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CommentID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("PostID") .HasColumnType("int"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("PostID"); b.ToTable("CommentMedia", null, t => { t.HasComment("댓글 미디어"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("Length") .HasColumnType("int") .HasComment("길이"); b.Property("MemberID") .HasColumnType("int") .HasComment("언급된 회원 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("RawHandle") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasComment("원문 회원 언급값"); b.Property("Start") .HasColumnType("int") .HasComment("본문 내 시작 인덱스"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID") .IsUnique(); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("CommentID", "ID"); b.HasIndex("CommentID", "MemberID", "ID"); b.HasIndex("CommentID", "MemberID", "Start"); b.ToTable("CommentMention", null, t => { t.HasComment("댓글 멘션"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Reaction") .HasColumnType("tinyint") .HasComment("반응 구분"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-agent"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("CreatedAt"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("Reaction"); b.HasIndex("CommentID", "ID"); b.HasIndex("CommentID", "MemberID") .IsUnique(); b.ToTable("CommentReaction", null, t => { t.HasComment("댓글 반응"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Memo") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("처리 내용"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Reason") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("신고 내용"); b.Property("Status") .HasColumnType("tinyint") .HasComment("처리 상태"); b.Property("Type") .HasColumnType("tinyint") .HasComment("신고 사유"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-agent"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("CommentID"); b.HasIndex("CreatedAt"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("Status"); b.HasIndex("Type"); b.HasIndex("CommentID", "ID"); b.HasIndex("CommentID", "MemberID") .IsUnique(); b.ToTable("CommentReport", null, t => { t.HasComment("댓글 신고"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CommentFileID") .HasColumnType("int") .HasComment("댓글 파일 ID"); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("CommentFileID"); b.HasIndex("CommentID"); b.HasIndex("MemberID"); b.HasIndex("CommentID", "CommentFileID"); b.HasIndex("CommentID", "CommentFileID", "MemberID"); b.ToTable("CommentFileDownLog", null, t => { t.HasComment("댓글 파일 다운로드 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("CommentLinkID") .HasColumnType("int") .HasComment("댓글 링크 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("CommentID"); b.HasIndex("CommentLinkID"); b.HasIndex("MemberID"); b.HasIndex("CommentID", "CommentLinkID"); b.HasIndex("CommentID", "CommentLinkID", "MemberID"); b.ToTable("CommentLinkClickLog", null, t => { t.HasComment("댓글 링크 클릭 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CommentID") .HasColumnType("int") .HasComment("댓글 ID"); b.Property("ContentDiff") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("변경 내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Note") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("비고"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("CommentID"); b.HasIndex("ContentDiff"); b.HasIndex("MemberID"); b.HasIndex("CommentID", "ID"); b.HasIndex("CommentID", "MemberID"); b.HasIndex("CommentID", "MemberID", "ID"); b.ToTable("CommentUpdateLog", null, t => { t.HasComment("댓글 수정 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("PostFileID") .HasColumnType("int") .HasComment("게시글 파일 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("MemberID"); b.HasIndex("PostFileID"); b.HasIndex("PostID"); b.HasIndex("PostID", "PostFileID"); b.HasIndex("PostID", "PostFileID", "MemberID"); b.ToTable("PostFileDownLog", null, t => { t.HasComment("게시글 파일 다운로드 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("PostLinkID") .HasColumnType("int") .HasComment("게시글 파일 ID"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("PostLinkID"); b.HasIndex("PostID", "PostLinkID"); b.HasIndex("PostID", "PostLinkID", "MemberID"); b.ToTable("PostLinkClickLog", null, t => { t.HasComment("게시글 링크 클릭 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("ContentDiff") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("변경 내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Note") .HasMaxLength(200) .HasColumnType("nvarchar(200)") .HasComment("비고"); b.Property("PostID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("SubjectDiff") .HasMaxLength(4000) .HasColumnType("nvarchar(4000)") .HasComment("변경 제목"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.HasKey("ID"); b.HasIndex("ContentDiff"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("SubjectDiff"); b.HasIndex("PostID", "ID"); b.HasIndex("PostID", "MemberID"); b.HasIndex("PostID", "MemberID", "ID"); b.ToTable("PostUpdateLog", null, t => { t.HasComment("게시글 수정 로그"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("BoardPrefixID") .HasColumnType("int") .HasComment("게시글 말머리 ID"); b.Property("Bookmarks") .HasColumnType("int") .HasComment("즐겨찾기 수"); b.Property("Comments") .HasColumnType("int") .HasComment("댓글 수"); b.Property("Content") .IsRequired() .HasMaxLength(8000) .HasColumnType("nvarchar(max)") .HasComment("내용"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("DeletedAt") .HasColumnType("datetime2") .HasComment("삭제 일시"); b.Property("Dislikes") .HasColumnType("int") .HasComment("싫어요"); b.Property("Email") .HasMaxLength(60) .HasColumnType("nvarchar(60)") .HasComment("회원 이메일"); b.Property("Files") .HasColumnType("tinyint") .HasComment("파일 수"); b.Property("Images") .HasColumnType("tinyint") .HasComment("이미지 수"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP"); b.Property("IsAnonymous") .HasColumnType("bit") .HasComment("익명 글 여부"); b.Property("IsDeleted") .HasColumnType("bit") .HasComment("삭제 여부"); b.Property("IsNotice") .HasColumnType("bit") .HasComment("일반 공지 여부"); b.Property("IsReply") .HasColumnType("bit") .HasComment("답변 여부"); b.Property("IsSecret") .HasColumnType("bit") .HasComment("비밀글 여부"); b.Property("IsSpeaker") .HasColumnType("bit") .HasComment("전체 공지 여부"); b.Property("LastCommentUpdatedAt") .HasColumnType("datetime2") .HasComment("마지막 댓글 일시"); b.Property("LastReplyUpdatedAt") .HasColumnType("datetime2") .HasComment("마지막 답변 일시"); b.Property("Likes") .HasColumnType("int") .HasComment("좋아요"); b.Property("Medias") .HasColumnType("tinyint") .HasComment("미디어 수"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("Name") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("회원 이름"); b.Property("Reports") .HasColumnType("int") .HasComment("신고 수"); b.Property("SID") .HasMaxLength(20) .HasColumnType("nvarchar(20)") .HasComment("회원 SID"); b.Property("Subject") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("제목"); b.Property("Tags") .HasColumnType("tinyint") .HasComment("Tag 수"); b.Property("Thumbnail") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("대표 이미지"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-Agent"); b.Property("Views") .HasColumnType("int") .HasComment("조회 수"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("BoardPrefixID"); b.HasIndex("MemberID"); b.HasIndex("ID", "BoardID"); b.HasIndex("ID", "BoardID", "IsDeleted"); b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Comments"); b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "CreatedAt"); b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Likes"); b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Views"); b.ToTable("Post", null, t => { t.HasComment("게시글"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostBookmark", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("IpAddress") .HasColumnType("nvarchar(max)"); b.Property("MemberID") .HasColumnType("int"); b.Property("PostID") .HasColumnType("int"); b.Property("UserAgent") .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("PostID", "MemberID") .IsUnique(); b.ToTable("PostBookmark", null, t => { t.HasComment("게시글 즐겨찾기"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostFile", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("ContentType") .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("Downloads") .HasColumnType("int"); b.Property("Extension") .HasColumnType("nvarchar(max)"); b.Property("FileName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("HashedName") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("Path") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("PostID") .HasColumnType("int"); b.Property("Size") .HasColumnType("bigint"); b.Property("UUID") .HasColumnType("uniqueidentifier"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("PostID"); b.HasIndex("UUID") .IsUnique(); b.ToTable("PostFile", null, t => { t.HasComment("게시글 파일"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostImage", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("ContentType") .HasMaxLength(100) .HasColumnType("nvarchar(100)") .HasComment("MIME 타입"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("DisabledAt") .HasColumnType("datetime2") .HasComment("비활성 일시"); b.Property("Extension") .HasMaxLength(10) .HasColumnType("nvarchar(10)") .HasComment("확장자"); b.Property("FileName") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("원본 파일명"); b.Property("HashedName") .IsRequired() .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("저장 파일명"); b.Property("Height") .HasColumnType("smallint") .HasComment("세로 해상도(px)"); b.Property("IsDisabled") .HasColumnType("bit") .HasComment("비활성 여부"); b.Property("Path") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)") .HasComment("저장 경로"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Size") .HasColumnType("bigint") .HasComment("용량(byte)"); b.Property("UUID") .HasColumnType("uniqueidentifier") .HasComment("이미지 ID"); b.Property("Url") .IsRequired() .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("URL"); b.Property("Width") .HasColumnType("smallint") .HasComment("가로 해상도(px)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("PostID"); b.HasIndex("UUID") .IsUnique(); b.HasIndex("PostID", "HashedName"); b.HasIndex("PostID", "HashedName", "IsDisabled"); b.ToTable("PostImage", null, t => { t.HasComment("게시글 이미지"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostLink", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("Clicks") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("PostID") .HasColumnType("int"); b.Property("UUID") .HasColumnType("uniqueidentifier"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("PostID"); b.ToTable("PostLink", null, t => { t.HasComment("게시글 링크"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostMedia", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("DisabledAt") .HasColumnType("datetime2"); b.Property("IsDisabled") .HasColumnType("bit"); b.Property("PostID") .HasColumnType("int"); b.Property("Url") .IsRequired() .HasColumnType("nvarchar(max)"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("PostID"); b.ToTable("PostMedia", null, t => { t.HasComment("게시글 미디어"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReaction", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); b.Property("CreatedAt") .HasColumnType("datetime2") .HasComment("등록 일시"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("nvarchar(50)") .HasComment("IP Address"); b.Property("MemberID") .HasColumnType("int") .HasComment("회원 ID"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Reaction") .HasColumnType("tinyint") .HasComment("반응 구분"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-agent"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("Reaction"); b.HasIndex("PostID", "MemberID") .IsUnique(); b.ToTable("PostReaction", null, t => { t.HasComment("게시글 반응"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReport", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int") .HasComment("게시판 ID"); 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("Memo") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("처리 내용"); b.Property("PostID") .HasColumnType("int") .HasComment("게시글 ID"); b.Property("Reason") .HasMaxLength(1000) .HasColumnType("nvarchar(1000)") .HasComment("신고 내용"); b.Property("Status") .HasColumnType("tinyint") .HasComment("처리 상태"); b.Property("Type") .HasColumnType("tinyint") .HasComment("신고 사유"); b.Property("UpdatedAt") .HasColumnType("datetime2") .HasComment("수정 일시"); b.Property("UserAgent") .HasMaxLength(255) .HasColumnType("nvarchar(255)") .HasComment("User-agent"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("MemberID"); b.HasIndex("PostID"); b.HasIndex("Status"); b.HasIndex("Type"); b.HasIndex("PostID", "MemberID") .IsUnique(); b.ToTable("PostReport", null, t => { t.HasComment("게시글 신고"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostTag", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("BoardID") .HasColumnType("int"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("PostID") .HasColumnType("int"); b.Property("TagID") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex("BoardID"); b.HasIndex("PostID"); b.HasIndex("TagID"); b.ToTable("PostTag", null, t => { t.HasComment("게시글 태그 연결"); }); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.Tag", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("int") .HasComment("PK"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(450)"); b.Property("Slug") .IsRequired() .HasColumnType("nvarchar(450)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.Property("UsageCount") .HasColumnType("bigint"); b.HasKey("ID"); b.HasIndex("Name") .IsUnique(); b.HasIndex("Slug") .IsUnique(); b.HasIndex("UsageCount"); b.ToTable("Tag", null, t => { t.HasComment("태그"); }); }); modelBuilder.Entity("Domain.Entities.Members.Channel", b => { b.Property("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("PasswordHash") .HasColumnType("nvarchar(max)"); 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("Thumb") .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("TextColor") .HasMaxLength(7) .HasColumnType("nvarchar(7)") .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.Members.RefreshToken", b => { b.Property("ID") .ValueGeneratedOnAdd() .HasColumnType("bigint"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("ExpiresAt") .HasColumnType("datetime2"); b.Property("IsRevoked") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(false); b.Property("MemberID") .HasColumnType("int"); b.Property("RevokedAt") .HasColumnType("datetime2"); b.Property("Token") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.HasKey("ID"); b.HasIndex("MemberID"); b.HasIndex("Token") .IsUnique(); b.ToTable("RefreshToken", null, t => { t.HasComment("리프레시 토큰"); }); }); modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b => { b.Property("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.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("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("Order"); b.HasIndex("PositionID"); b.HasIndex("Order", "IsActive"); b.HasIndex("StartAt", "EndAt", "Order", "IsActive"); b.ToTable("Popup", null, t => { t.HasComment("팝업"); }); }); modelBuilder.Entity("Domain.Entities.Page.Popup.PopupPosition", 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("PopupPosition", 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.CryptoConfig", "Crypto", b1 => { b1.Property("ConfigID") .HasColumnType("int"); b1.Property("MainPageCoinCount") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(10) .HasColumnName("Crypto_MainPageCoinCount") .HasComment("메인 페이지 기본 표시 코인 수"); b1.Property("PlungeThreshold") .ValueGeneratedOnAdd() .HasColumnType("decimal(5,2)") .HasDefaultValue(-5.0m) .HasColumnName("Crypto_PlungeThreshold") .HasComment("급락 임계값 (%)"); b1.Property("SurgeThreshold") .ValueGeneratedOnAdd() .HasColumnType("decimal(5,2)") .HasDefaultValue(5.0m) .HasColumnName("Crypto_SurgeThreshold") .HasComment("급등 임계값 (%)"); b1.Property("TickerRefreshSeconds") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(5) .HasColumnName("Crypto_TickerRefreshSeconds") .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("Crypto") .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.Crypto.CoinCategoryMap", b => { b.HasOne("Domain.Entities.Crypto.CoinCategory", "CoinCategory") .WithMany("CoinCategoryMap") .HasForeignKey("CategoryID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Crypto.Coin", "Coin") .WithMany("CoinCategoryMap") .HasForeignKey("CoinID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Coin"); b.Navigation("CoinCategory"); }); modelBuilder.Entity("Domain.Entities.Crypto.CoinMarket", b => { b.HasOne("Domain.Entities.Crypto.Coin", "Coin") .WithMany("CoinMarket") .HasForeignKey("CoinID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Coin"); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b => { b.HasOne("Domain.Entities.Forum.Boards.BoardGroup", "BoardGroup") .WithMany("Board") .HasForeignKey("BoardGroupID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Crypto.Coin", "Coin") .WithMany() .HasForeignKey("CoinID") .OnDelete(DeleteBehavior.SetNull); b.Navigation("BoardGroup"); b.Navigation("Coin"); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany("BoardManager") .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", null) .WithOne("BoardMeta") .HasForeignKey("Domain.Entities.Forum.Boards.BoardMeta", "BoardID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaComment", "Comment", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("AllowDeleteProtection") .HasColumnType("bit") .HasColumnName("Comment_AllowDeleteProtection"); b1.Property("AllowDisLike") .HasColumnType("bit") .HasColumnName("Comment_AllowDisLike"); b1.Property("AllowLike") .HasColumnType("bit") .HasColumnName("Comment_AllowLike"); b1.Property("AllowSecret") .HasColumnType("bit") .HasColumnName("Comment_AllowSecret"); b1.Property("AllowUpdateProtection") .HasColumnType("bit") .HasColumnName("Comment_AllowUpdateProtection"); b1.Property("BlameHideCount") .HasColumnType("int") .HasColumnName("Comment_BlameHideCount"); b1.Property("ContentPlaceholder") .HasColumnType("nvarchar(max)") .HasColumnName("Comment_ContentPlaceholder"); b1.Property("DeleteProtectionDays") .HasColumnType("int") .HasColumnName("Comment_DeleteProtectionDays"); b1.Property("EnableComment") .HasColumnType("bit") .HasColumnName("Comment_EnableComment"); b1.Property("EnableCommentUpdateLog") .HasColumnType("bit") .HasColumnName("Comment_EnableCommentUpdateLog"); b1.Property("EnableEditor") .HasColumnType("bit") .HasColumnName("Comment_EnableEditor"); b1.Property("MaxContentLength") .HasColumnType("int") .HasColumnName("Comment_MaxContentLength"); b1.Property("MinContentLength") .HasColumnType("int") .HasColumnName("Comment_MinContentLength"); b1.Property("PerPage") .HasColumnType("int") .HasColumnName("Comment_PerPage"); b1.Property("ShowMemberIcon") .HasColumnType("bit") .HasColumnName("Comment_ShowMemberIcon"); b1.Property("ShowMemberPhoto") .HasColumnType("bit") .HasColumnName("Comment_ShowMemberPhoto"); b1.Property("UpdateProtectionDays") .HasColumnType("int") .HasColumnName("Comment_UpdateProtectionDays"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaExp", "Exp", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("CommentWriteExp") .HasColumnType("int") .HasColumnName("Exp_CommentWriteExp"); b1.Property("CommentWriteExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_CommentWriteExpWithinDays"); b1.Property("CommentWriteUndoExp") .HasColumnType("int") .HasColumnName("Exp_CommentWriteUndoExp"); b1.Property("EnableExp") .HasColumnType("bit") .HasColumnName("Exp_EnableExp"); b1.Property("FileDownloadExp") .HasColumnType("smallint") .HasColumnName("Exp_FileDownloadExp"); b1.Property("FileUploadExp") .HasColumnType("int") .HasColumnName("Exp_FileUploadExp"); b1.Property("FileUploadExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_FileUploadExpWithinDays"); b1.Property("FileUploadUndoExp") .HasColumnType("int") .HasColumnName("Exp_FileUploadUndoExp"); b1.Property("OtherCommentDisLikeExp") .HasColumnType("int") .HasColumnName("Exp_OtherCommentDisLikeExp"); b1.Property("OtherCommentDisLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OtherCommentDisLikeExpWithinDays"); b1.Property("OtherCommentDisLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OtherCommentDisLikeUndoExp"); b1.Property("OtherCommentLikeExp") .HasColumnType("int") .HasColumnName("Exp_OtherCommentLikeExp"); b1.Property("OtherCommentLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OtherCommentLikeExpWithinDays"); b1.Property("OtherCommentLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OtherCommentLikeUndoExp"); b1.Property("OtherPostDisLikeExp") .HasColumnType("int") .HasColumnName("Exp_OtherPostDisLikeExp"); b1.Property("OtherPostDisLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OtherPostDisLikeExpWithinDays"); b1.Property("OtherPostDisLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OtherPostDisLikeUndoExp"); b1.Property("OtherPostLikeExp") .HasColumnType("int") .HasColumnName("Exp_OtherPostLikeExp"); b1.Property("OtherPostLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OtherPostLikeExpWithinDays"); b1.Property("OtherPostLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OtherPostLikeUndoExp"); b1.Property("OtherPostReadExp") .HasColumnType("smallint") .HasColumnName("Exp_OtherPostReadExp"); b1.Property("OtherPostReadExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OtherPostReadExpWithinDays"); b1.Property("OtherPostReadUndoExp") .HasColumnType("int") .HasColumnName("Exp_OtherPostReadUndoExp"); b1.Property("OwnCommentDisLikeExp") .HasColumnType("smallint") .HasColumnName("Exp_OwnCommentDisLikeExp"); b1.Property("OwnCommentDisLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OwnCommentDisLikeExpWithinDays"); b1.Property("OwnCommentDisLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OwnCommentDisLikeUndoExp"); b1.Property("OwnCommentLikeExp") .HasColumnType("int") .HasColumnName("Exp_OwnCommentLikeExp"); b1.Property("OwnCommentLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OwnCommentLikeExpWithinDays"); b1.Property("OwnCommentLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OwnCommentLikeUndoExp"); b1.Property("OwnPostDisLikeExp") .HasColumnType("smallint") .HasColumnName("Exp_OwnPostDisLikeExp"); b1.Property("OwnPostDisLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OwnPostDisLikeExpWithinDays"); b1.Property("OwnPostDisLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OwnPostDisLikeUndoExp"); b1.Property("OwnPostLikeExp") .HasColumnType("int") .HasColumnName("Exp_OwnPostLikeExp"); b1.Property("OwnPostLikeExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OwnPostLikeExpWithinDays"); b1.Property("OwnPostLikeUndoExp") .HasColumnType("int") .HasColumnName("Exp_OwnPostLikeUndoExp"); b1.Property("OwnPostReadExp") .HasColumnType("int") .HasColumnName("Exp_OwnPostReadExp"); b1.Property("OwnPostReadExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_OwnPostReadExpWithinDays"); b1.Property("OwnPostReadUndoExp") .HasColumnType("int") .HasColumnName("Exp_OwnPostReadUndoExp"); b1.Property("PostWriteExp") .HasColumnType("int") .HasColumnName("Exp_PostWriteExp"); b1.Property("PostWriteExpWithinDays") .HasColumnType("int") .HasColumnName("Exp_PostWriteExpWithinDays"); b1.Property("PostWriteUndoExp") .HasColumnType("int") .HasColumnName("Exp_PostWriteUndoExp"); b1.Property("ShowExpGuide") .HasColumnType("bit") .HasColumnName("Exp_ShowExpGuide"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaGeneral", "General", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("AllowDeleteProtection") .HasColumnType("bit") .HasColumnName("General_AllowDeleteProtection"); b1.Property("AllowUpdateProtection") .HasColumnType("bit") .HasColumnName("General_AllowUpdateProtection"); b1.Property("DeleteProtectionDays") .HasColumnType("int") .HasColumnName("General_DeleteProtectionDays"); b1.Property("EnableFileDownLog") .HasColumnType("bit") .HasColumnName("General_EnableFileDownLog"); b1.Property("EnableLinkClickLog") .HasColumnType("bit") .HasColumnName("General_EnableLinkClickLog"); b1.Property("EnablePostUpdateLog") .HasColumnType("bit") .HasColumnName("General_EnablePostUpdateLog"); b1.Property("UpdateProtectionDays") .HasColumnType("int") .HasColumnName("General_UpdateProtectionDays"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaList", "List", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("AlwaysShowWriteButton") .HasColumnType("bit") .HasColumnName("List_AlwaysShowWriteButton"); b1.Property("ExceptNotice") .HasColumnType("bit") .HasColumnName("List_ExceptNotice"); b1.Property("ExceptSpeaker") .HasColumnType("bit") .HasColumnName("List_ExceptSpeaker"); b1.Property("FooterContent") .HasColumnType("nvarchar(max)") .HasColumnName("List_FooterContent"); b1.Property("HeaderContent") .HasColumnType("nvarchar(max)") .HasColumnName("List_HeaderContent"); b1.Property("IsHotIcon") .HasColumnType("bit") .HasColumnName("List_IsHotIcon"); b1.Property("IsNewIcon") .HasColumnType("bit") .HasColumnName("List_IsNewIcon"); b1.Property("Layout") .HasColumnType("tinyint") .HasColumnName("List_Layout"); b1.Property("PerPage") .HasColumnType("tinyint") .HasColumnName("List_PerPage"); b1.Property("ShowFooter") .HasColumnType("bit") .HasColumnName("List_ShowFooter"); b1.Property("ShowFooterListView") .HasColumnType("bit") .HasColumnName("List_ShowFooterListView"); b1.Property("ShowHeader") .HasColumnType("bit") .HasColumnName("List_ShowHeader"); b1.Property("Sort") .HasColumnType("tinyint") .HasColumnName("List_Sort"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotify", "Notify", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("CommentWriteNotify") .HasColumnType("tinyint") .HasColumnName("Notify_CommentWriteNotify"); b1.Property("PostWriteNotify") .HasColumnType("tinyint") .HasColumnName("Notify_PostWriteNotify"); b1.Property("ReplyWriteNotify") .HasColumnType("tinyint") .HasColumnName("Notify_ReplyWriteNotify"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotifyTemplate", "NotifyTemplate", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("CommentWriteEmailNotifyContent") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_CommentWriteEmailNotifyContent"); b1.Property("CommentWriteEmailNotifySubject") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_CommentWriteEmailNotifySubject"); b1.Property("PostWriteEmailNotifyContent") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_PostWriteEmailNotifyContent"); b1.Property("PostWriteEmailNotifySubject") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_PostWriteEmailNotifySubject"); b1.Property("ReplyWriteEmailNotifyContent") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifyContent"); b1.Property("ReplyWriteEmailNotifySubject") .HasColumnType("nvarchar(max)") .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifySubject"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaPermission", "Permission", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("BoardAccess") .HasColumnType("smallint") .HasColumnName("Permission_BoardAccess"); b1.Property("CommentView") .HasColumnType("smallint") .HasColumnName("Permission_CommentView"); b1.Property("CommentWrite") .HasColumnType("smallint") .HasColumnName("Permission_CommentWrite"); b1.Property("FileDownload") .HasColumnType("smallint") .HasColumnName("Permission_FileDownload"); b1.Property("FileUpload") .HasColumnType("smallint") .HasColumnName("Permission_FileUpload"); b1.Property("PostView") .HasColumnType("smallint") .HasColumnName("Permission_PostView"); b1.Property("PostWrite") .HasColumnType("smallint") .HasColumnName("Permission_PostWrite"); b1.Property("ReplyWrite") .HasColumnType("smallint") .HasColumnName("Permission_ReplyWrite"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaView", "View", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("AllowBlame") .HasColumnType("bit") .HasColumnName("View_AllowBlame"); b1.Property("AllowBookmark") .HasColumnType("bit") .HasColumnName("View_AllowBookmark"); b1.Property("AllowContentLinkTargetBlank") .HasColumnType("bit") .HasColumnName("View_AllowContentLinkTargetBlank"); b1.Property("AllowDislike") .HasColumnType("bit") .HasColumnName("View_AllowDislike"); b1.Property("AllowLike") .HasColumnType("bit") .HasColumnName("View_AllowLike"); b1.Property("AllowPostUrlCopy") .HasColumnType("bit") .HasColumnName("View_AllowPostUrlCopy"); b1.Property("AllowPostUrlQrCode") .HasColumnType("bit") .HasColumnName("View_AllowPostUrlQrCode"); b1.Property("AllowPrevNextBotton") .HasColumnType("bit") .HasColumnName("View_AllowPrevNextBotton"); b1.Property("AllowPrint") .HasColumnType("bit") .HasColumnName("View_AllowPrint"); b1.Property("AllowSnsShare") .HasColumnType("bit") .HasColumnName("View_AllowSnsShare"); b1.Property("BlameHideCount") .HasColumnType("int") .HasColumnName("View_BlameHideCount"); b1.Property("ShowMemberIcon") .HasColumnType("bit") .HasColumnName("View_ShowMemberIcon"); b1.Property("ShowMemberPhoto") .HasColumnType("bit") .HasColumnName("View_ShowMemberPhoto"); b1.Property("ShowMemberRegDate") .HasColumnType("bit") .HasColumnName("View_ShowMemberRegDate"); b1.Property("ShowMemberSummary") .HasColumnType("bit") .HasColumnName("View_ShowMemberSummary"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaWrite", "Write", b1 => { b1.Property("BoardMetaID") .HasColumnType("int"); b1.Property("AllowEditor") .HasColumnType("bit") .HasColumnName("Write_AllowEditor"); b1.Property("AllowFile") .HasColumnType("bit") .HasColumnName("Write_AllowFile"); b1.Property("AllowImage") .HasColumnType("bit") .HasColumnName("Write_AllowImage"); b1.Property("AllowMedia") .HasColumnType("bit") .HasColumnName("Write_AllowMedia"); b1.Property("AllowPrefix") .HasColumnType("bit") .HasColumnName("Write_AllowPrefix"); b1.Property("AllowSecret") .HasColumnType("bit") .HasColumnName("Write_AllowSecret"); b1.Property("AllowTag") .HasColumnType("bit") .HasColumnName("Write_AllowTag"); b1.Property("DefaultContent") .HasColumnType("nvarchar(max)") .HasColumnName("Write_DefaultContent"); b1.Property("DefaultSubject") .HasColumnType("nvarchar(max)") .HasColumnName("Write_DefaultSubject"); b1.Property("FileUploadExtension") .HasColumnType("nvarchar(max)") .HasColumnName("Write_FileUploadExtension"); b1.Property("FileUploadLimit") .HasColumnType("tinyint") .HasColumnName("Write_FileUploadLimit"); b1.Property("FileUploadMaxSize") .HasColumnType("int") .HasColumnName("Write_FileUploadMaxSize"); b1.Property("FooterContent") .HasColumnType("nvarchar(max)") .HasColumnName("Write_FooterContent"); b1.Property("HeaderContent") .HasColumnType("nvarchar(max)") .HasColumnName("Write_HeaderContent"); b1.Property("ImageUploadLimit") .HasColumnType("tinyint") .HasColumnName("Write_ImageUploadLimit"); b1.Property("ImageUploadMaxSize") .HasColumnType("int") .HasColumnName("Write_ImageUploadMaxSize"); b1.Property("MediaUploadLimit") .HasColumnType("tinyint") .HasColumnName("Write_MediaUploadLimit"); b1.Property("RequiredPrefix") .HasColumnType("bit") .HasColumnName("Write_RequiredPrefix"); b1.Property("ShowFooter") .HasColumnType("bit") .HasColumnName("Write_ShowFooter"); b1.Property("ShowHeader") .HasColumnType("bit") .HasColumnName("Write_ShowHeader"); b1.Property("TagLimit") .HasColumnType("tinyint") .HasColumnName("Write_TagLimit"); b1.HasKey("BoardMetaID"); b1.ToTable("BoardMeta"); b1.WithOwner() .HasForeignKey("BoardMetaID"); }); b.Navigation("Comment") .IsRequired(); b.Navigation("Exp") .IsRequired(); b.Navigation("General") .IsRequired(); b.Navigation("List") .IsRequired(); b.Navigation("Notify") .IsRequired(); b.Navigation("NotifyTemplate") .IsRequired(); b.Navigation("Permission") .IsRequired(); b.Navigation("View") .IsRequired(); b.Navigation("Write") .IsRequired(); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany("BoardPrefix") .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "MentionMember") .WithMany() .HasForeignKey("MentionMemberID") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Parent") .WithMany("Children") .HasForeignKey("ParentID") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("Comment") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Member"); b.Navigation("MentionMember"); b.Navigation("Parent"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentFile") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentImage") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentLink") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentMedia") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithOne("CommentMention") .HasForeignKey("Domain.Entities.Forum.Comments.CommentMention", "CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentReaction") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentReport") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany() .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Board"); b.Navigation("Comment"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b => { b.HasOne("Domain.Entities.Forum.Comments.CommentFile", "CommentFile") .WithMany() .HasForeignKey("CommentFileID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentFileDownLog") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Comment"); b.Navigation("CommentFile"); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b => { b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentLinkClickLog") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Comments.CommentLink", "CommentLink") .WithMany() .HasForeignKey("CommentLinkID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Comment"); b.Navigation("CommentLink"); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b => { b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment") .WithMany("CommentUpdateLog") .HasForeignKey("CommentID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Comment"); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Domain.Entities.Forum.Posts.PostFile", "PostFile") .WithMany() .HasForeignKey("PostFileID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostFileDownLog") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); b.Navigation("Post"); b.Navigation("PostFile"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostLinkClickLog") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.PostLink", "PostLink") .WithMany() .HasForeignKey("PostLinkID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Member"); b.Navigation("Post"); b.Navigation("PostLink"); }); modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostUpdateLog") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany("Post") .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Boards.BoardPrefix", "BoardPrefix") .WithMany() .HasForeignKey("BoardPrefixID") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Board"); b.Navigation("BoardPrefix"); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostBookmark", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostBookmark") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostFile", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostFile") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostImage", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostImage") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostLink", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostLink") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostMedia", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostMedia") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReaction", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostReaction") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReport", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostReport") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Member"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.PostTag", b => { b.HasOne("Domain.Entities.Forum.Boards.Board", "Board") .WithMany() .HasForeignKey("BoardID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Post", "Post") .WithMany("PostTag") .HasForeignKey("PostID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Forum.Posts.Tag", "Tag") .WithMany("PostTag") .HasForeignKey("TagID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Board"); b.Navigation("Post"); b.Navigation("Tag"); }); modelBuilder.Entity("Domain.Entities.Members.Channel", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithOne("Channel") .HasForeignKey("Domain.Entities.Members.Channel", "MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Logs.MemberEmailChangeLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Logs.MemberIntroChangeLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Logs.MemberLoginLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Logs.MemberNameChangeLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Logs.MemberSummaryChangeLog", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.Member", b => { b.HasOne("Domain.Entities.Members.MemberGrade", "MemberGrade") .WithMany() .HasForeignKey("MemberGradeID") .OnDelete(DeleteBehavior.SetNull); b.Navigation("MemberGrade"); }); modelBuilder.Entity("Domain.Entities.Members.MemberApprove", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithOne("MemberApprove") .HasForeignKey("Domain.Entities.Members.MemberApprove", "MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.MemberStats", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithOne("MemberStats") .HasForeignKey("Domain.Entities.Members.MemberStats", "MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Members.RefreshToken", b => { b.HasOne("Domain.Entities.Members.Member", "Member") .WithMany() .HasForeignKey("MemberID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Member"); }); modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b => { b.HasOne("Domain.Entities.Page.Banner.BannerPosition", "BannerPosition") .WithMany("BannerItems") .HasForeignKey("PositionID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("BannerPosition"); }); modelBuilder.Entity("Domain.Entities.Page.Faq.FaqItem", b => { b.HasOne("Domain.Entities.Page.Faq.FaqCategory", "FaqCategory") .WithMany("FaqItems") .HasForeignKey("CategoryID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("FaqCategory"); }); modelBuilder.Entity("Domain.Entities.Page.Popup.Popup", b => { b.HasOne("Domain.Entities.Page.Popup.PopupPosition", "PopupPosition") .WithMany("Popups") .HasForeignKey("PositionID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("PopupPosition"); }); 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.Crypto.Coin", b => { b.Navigation("CoinCategoryMap"); b.Navigation("CoinMarket"); }); modelBuilder.Entity("Domain.Entities.Crypto.CoinCategory", b => { b.Navigation("CoinCategoryMap"); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b => { b.Navigation("BoardManager"); b.Navigation("BoardMeta") .IsRequired(); b.Navigation("BoardPrefix"); b.Navigation("Post"); }); modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardGroup", b => { b.Navigation("Board"); }); modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b => { b.Navigation("Children"); b.Navigation("CommentFile"); b.Navigation("CommentFileDownLog"); b.Navigation("CommentImage"); b.Navigation("CommentLink"); b.Navigation("CommentLinkClickLog"); b.Navigation("CommentMedia"); b.Navigation("CommentMention"); b.Navigation("CommentReaction"); b.Navigation("CommentReport"); b.Navigation("CommentUpdateLog"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b => { b.Navigation("Comment"); b.Navigation("PostBookmark"); b.Navigation("PostFile"); b.Navigation("PostFileDownLog"); b.Navigation("PostImage"); b.Navigation("PostLink"); b.Navigation("PostLinkClickLog"); b.Navigation("PostMedia"); b.Navigation("PostReaction"); b.Navigation("PostReport"); b.Navigation("PostTag"); b.Navigation("PostUpdateLog"); }); modelBuilder.Entity("Domain.Entities.Forum.Posts.Tag", b => { b.Navigation("PostTag"); }); modelBuilder.Entity("Domain.Entities.Members.Member", b => { b.Navigation("Channel"); b.Navigation("MemberApprove") .IsRequired(); b.Navigation("MemberStats") .IsRequired(); b.Navigation("Wallet"); }); modelBuilder.Entity("Domain.Entities.Page.Banner.BannerPosition", b => { b.Navigation("BannerItems"); }); modelBuilder.Entity("Domain.Entities.Page.Faq.FaqCategory", b => { b.Navigation("FaqItems"); }); modelBuilder.Entity("Domain.Entities.Page.Popup.PopupPosition", b => { b.Navigation("Popups"); }); modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b => { b.Navigation("Balances"); b.Navigation("Transactions"); }); #pragma warning restore 612, 618 } } }