|
|
@@ -0,0 +1,12184 @@
|
|
|
+// <auto-generated />
|
|
|
+using System;
|
|
|
+using Infrastructure.Persistence;
|
|
|
+using Microsoft.EntityFrameworkCore;
|
|
|
+using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
|
+using Microsoft.EntityFrameworkCore.Metadata;
|
|
|
+using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
|
+
|
|
|
+#nullable disable
|
|
|
+
|
|
|
+namespace Infrastructure.Migrations.AppDb
|
|
|
+{
|
|
|
+ [DbContext(typeof(AppDbContext))]
|
|
|
+ [Migration("20260706055441_AddStatusItems")]
|
|
|
+ partial class AddStatusItems
|
|
|
+ {
|
|
|
+ /// <inheritdoc />
|
|
|
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
|
+ {
|
|
|
+#pragma warning disable 612, 618
|
|
|
+ modelBuilder
|
|
|
+ .HasAnnotation("ProductVersion", "10.0.7")
|
|
|
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
|
|
|
+
|
|
|
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Chat.ChatBan", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("CreatedBy")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("제재 등록자");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("제재 대상 회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("제재 사유");
|
|
|
+
|
|
|
+ b.Property<string>("RoomKey")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("제재 룸 키 (NULL=전체)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "ExpiresAt");
|
|
|
+
|
|
|
+ b.ToTable("ChatBan", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채팅 제재 (RoomKey NULL=전체, ExpiresAt NULL=무기한)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Chat.ChatRoomConfig", b =>
|
|
|
+ {
|
|
|
+ b.Property<string>("RoomKey")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("룸 키");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("활성 여부 (종목방 단계 오픈 게이트)");
|
|
|
+
|
|
|
+ b.Property<string>("Notice")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("상단 고정 공지");
|
|
|
+
|
|
|
+ b.Property<short>("SlowModeSeconds")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("슬로우 모드 (초)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("RoomKey");
|
|
|
+
|
|
|
+ b.ToTable("ChatRoomConfig", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채팅방 설정 (main | stock:{code})");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Common.Config", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("LastUpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 수정일시");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion")
|
|
|
+ .HasComment("동시성 제어용");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.ToTable("Config", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("운영 정보 설정 값");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Common.EmailLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Category")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("카테고리 (auth.register, forum.post.notify 등)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasDefaultValueSql("GETUTCDATE()")
|
|
|
+ .HasComment("등록 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("FailedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("실패 확정 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<string>("LastError")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("마지막 오류 메시지");
|
|
|
+
|
|
|
+ b.Property<int>("MaxRetryCount")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(3)
|
|
|
+ .HasComment("최대 재시도 횟수");
|
|
|
+
|
|
|
+ b.Property<string>("MessageHtml")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("HTML 본문");
|
|
|
+
|
|
|
+ b.Property<string>("MessageText")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("텍스트 본문 (선택)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("NextRetryAt")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasDefaultValueSql("GETUTCDATE()")
|
|
|
+ .HasComment("다음 시도 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ProcessedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("처리 완료 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<int>("RetryCount")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(0)
|
|
|
+ .HasComment("재시도 횟수");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasDefaultValue((byte)0)
|
|
|
+ .HasComment("상태 (0=Pending, 1=Processing, 2=Sent, 3=Failed)");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("제목");
|
|
|
+
|
|
|
+ b.Property<string>("ToAddress")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)")
|
|
|
+ .HasComment("수신자 이메일");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt")
|
|
|
+ .HasDatabaseName("IX_EmailLog_CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("Status", "NextRetryAt")
|
|
|
+ .HasDatabaseName("IX_EmailLog_Status_NextRetryAt");
|
|
|
+
|
|
|
+ b.ToTable("EmailLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("이메일 발송 큐");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Director.AdminAccessLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("생성 일시");
|
|
|
+
|
|
|
+ b.Property<long>("ElapsedMs")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("처리 시간 (밀리초)");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP 주소");
|
|
|
+
|
|
|
+ b.Property<string>("MenuName")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("메뉴 이름");
|
|
|
+
|
|
|
+ b.Property<string>("Method")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("HTTP Method");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(2048)
|
|
|
+ .HasColumnType("nvarchar(2048)")
|
|
|
+ .HasComment("요청 경로");
|
|
|
+
|
|
|
+ b.Property<string>("QueryString")
|
|
|
+ .HasMaxLength(2048)
|
|
|
+ .HasColumnType("nvarchar(2048)")
|
|
|
+ .HasComment("쿼리 스트링");
|
|
|
+
|
|
|
+ b.Property<int>("StatusCode")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("응답 상태 코드");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.Property<string>("UserID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)")
|
|
|
+ .HasComment("관리자 사용자 ID");
|
|
|
+
|
|
|
+ b.Property<string>("UserName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("관리자 사용자 이름");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("UserID");
|
|
|
+
|
|
|
+ b.ToTable("AdminAccessLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("관리자 접근 기록");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Director.AdminLoginLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Account")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(120)
|
|
|
+ .HasColumnType("nvarchar(120)")
|
|
|
+ .HasComment("로그인 시도 계정");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("생성 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP 주소");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .HasMaxLength(225)
|
|
|
+ .HasColumnType("nvarchar(225)")
|
|
|
+ .HasComment("실패 사유");
|
|
|
+
|
|
|
+ b.Property<bool>("Success")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("로그인 성공 여부");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Account");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("AdminLoginLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("관리자 로그인 기록");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.EmailVerification.EmailVerifyNumber", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("Code");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("이메일");
|
|
|
+
|
|
|
+ b.Property<DateTime>("Expiration")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("만료 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsVerified")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("인증 여부");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code");
|
|
|
+
|
|
|
+ b.HasIndex("Email");
|
|
|
+
|
|
|
+ b.HasIndex("Expiration");
|
|
|
+
|
|
|
+ b.HasIndex("IsVerified");
|
|
|
+
|
|
|
+ b.HasIndex("Type");
|
|
|
+
|
|
|
+ b.HasIndex("Type", "Code");
|
|
|
+
|
|
|
+ b.HasIndex("Type", "Code", "IsVerified");
|
|
|
+
|
|
|
+ b.ToTable("EmailVerifyNumber", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("이메일 인증 번호들");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.EmailVerification.EmailVerifyToken", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Additional")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("추가 정보(JSON)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("이메일");
|
|
|
+
|
|
|
+ b.Property<DateTime>("Expiration")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("만료 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsVerified")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("인증 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Token")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)")
|
|
|
+ .HasComment("Token");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("인증 유형 (이메일 인증 / 비밀번호 재설정)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Email");
|
|
|
+
|
|
|
+ b.HasIndex("Expiration");
|
|
|
+
|
|
|
+ b.HasIndex("IsVerified");
|
|
|
+
|
|
|
+ b.HasIndex("Token");
|
|
|
+
|
|
|
+ b.HasIndex("Type");
|
|
|
+
|
|
|
+ b.HasIndex("Type", "Email", "Token");
|
|
|
+
|
|
|
+ b.HasIndex("Type", "Email", "Token", "IsVerified");
|
|
|
+
|
|
|
+ b.ToTable("EmailVerifyToken", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("이메일 인증 토큰들");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedBookmark", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("FeedBookmark", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트 북마크");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedComment", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(2000)
|
|
|
+ .HasColumnType("nvarchar(2000)")
|
|
|
+ .HasComment("댓글 내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("삭제 일시");
|
|
|
+
|
|
|
+ b.Property<short>("Depth")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("중첩 깊이 (0 = 루트)");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("FeedPost ID");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeleted")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("삭제 여부");
|
|
|
+
|
|
|
+ b.Property<int>("Likes")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("좋아요 수");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("작성 회원 ID");
|
|
|
+
|
|
|
+ b.Property<int?>("ParentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("부모 댓글 ID (대댓글용)");
|
|
|
+
|
|
|
+ b.Property<int>("Replies")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("자식 댓글 수");
|
|
|
+
|
|
|
+ b.Property<int>("Reports")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("신고 수");
|
|
|
+
|
|
|
+ b.Property<int>("Score")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("랭킹 스코어");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("ParentID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "IsDeleted", "ParentID", "CreatedAt")
|
|
|
+ .IsDescending(false, false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "IsDeleted", "ParentID", "Score", "ID")
|
|
|
+ .IsDescending(false, false, false, true, true);
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "MemberID", "IsDeleted", "ParentID", "CreatedAt")
|
|
|
+ .IsDescending(false, false, false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("FeedComment", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 댓글 (Reddit식 계층형)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedCommentLike", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedCommentID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedCommentID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedCommentID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("FeedCommentLike", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 댓글 좋아요");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedLike", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("FeedLike", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트 좋아요");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPost", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Bookmarks")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("북마크 수");
|
|
|
+
|
|
|
+ b.Property<int>("Comments")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 수");
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(5000)
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("본문");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("삭제 일시");
|
|
|
+
|
|
|
+ b.Property<byte>("Images")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("이미지 개수");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("작성자 IP");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeleted")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("삭제 여부");
|
|
|
+
|
|
|
+ b.Property<int>("Likes")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("좋아요 수");
|
|
|
+
|
|
|
+ b.Property<byte>("Medias")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("미디어 개수");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("작성 회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("Reports")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("신고 수");
|
|
|
+
|
|
|
+ b.Property<byte>("Tags")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("태그 개수");
|
|
|
+
|
|
|
+ b.Property<string>("Thumbnail")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("썸네일 URL");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("작성자 User-Agent");
|
|
|
+
|
|
|
+ b.Property<int>("Views")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("조회수");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("IsDeleted");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("IsDeleted", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "IsDeleted", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("IsDeleted", "Likes", "Comments", "Views");
|
|
|
+
|
|
|
+ b.ToTable("FeedPost", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostImage", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("MIME");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("비활성 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("확장자");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("원본 파일명");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("저장 파일명(해시)");
|
|
|
+
|
|
|
+ b.Property<short?>("Height")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("세로 픽셀");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("비활성 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("상대 경로");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("바이트 크기");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier")
|
|
|
+ .HasComment("UUID");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("접근 URL");
|
|
|
+
|
|
|
+ b.Property<short?>("Width")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("가로 픽셀");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "HashedName");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "IsDisabled");
|
|
|
+
|
|
|
+ b.ToTable("FeedPostImage", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트 이미지");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostMedia", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("미디어 URL");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.ToTable("FeedPostMedia", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트 미디어 링크");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostMention", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Length")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("길이");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("RawHandle")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)")
|
|
|
+ .HasComment("원문 @handle");
|
|
|
+
|
|
|
+ b.Property<int>("Start")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("본문 내 시작 인덱스");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("FeedPostMention", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트 멘션");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostTag", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FeedPostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("FeedTagID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedTagID");
|
|
|
+
|
|
|
+ b.HasIndex("FeedPostID", "FeedTagID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("FeedTagID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("FeedPostTag", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 포스트-태그 조인");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedTag", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("태그 이름");
|
|
|
+
|
|
|
+ b.Property<string>("Slug")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(120)
|
|
|
+ .HasColumnType("nvarchar(120)")
|
|
|
+ .HasComment("태그 슬러그 (URL용)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<long>("UsageCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("사용 횟수");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Name")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Slug")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("UsageCount")
|
|
|
+ .IsDescending();
|
|
|
+
|
|
|
+ b.ToTable("FeedTag", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("피드 태그 마스터");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardGroupID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("분류 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("게시판 주소");
|
|
|
+
|
|
|
+ b.Property<int>("Comments")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsSearch")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("검색 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(70)
|
|
|
+ .HasColumnType("nvarchar(70)")
|
|
|
+ .HasComment("게시판 이름");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<int>("Posts")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardGroupID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Comments");
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("IsSearch");
|
|
|
+
|
|
|
+ b.HasIndex("Name");
|
|
|
+
|
|
|
+ b.HasIndex("Order");
|
|
|
+
|
|
|
+ b.HasIndex("Posts");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "IsSearch");
|
|
|
+
|
|
|
+ b.HasIndex("IsSearch", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("Board", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시판");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardGroup", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<short>("Boards")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("게시판 수");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("게시판 분류 주소");
|
|
|
+
|
|
|
+ b.Property<int>("Comments")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(70)
|
|
|
+ .HasColumnType("nvarchar(70)")
|
|
|
+ .HasComment("게시판 분류 명");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<int>("Posts")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Order");
|
|
|
+
|
|
|
+ b.HasIndex("Order", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "Order", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("BoardGroup", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시판 분류");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<bool>("CanDelete")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("삭제 권한");
|
|
|
+
|
|
|
+ b.Property<bool>("CanEdit")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("수정 권한");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("관리자 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID", "MemberID");
|
|
|
+
|
|
|
+ b.ToTable("BoardManager", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시판 관리자");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("BoardMeta", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시판 설정");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Color")
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("색상");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("말머리");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("정렬 순서");
|
|
|
+
|
|
|
+ b.Property<int>("Posts")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("사용 게시글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID", "IsActive", "Order", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("BoardPrefix", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시판 말머리");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("댓글 내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<short>("Depth")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("댓글 깊이");
|
|
|
+
|
|
|
+ b.Property<int>("Dislikes")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<byte>("Files")
|
|
|
+ .HasColumnType("tinyint");
|
|
|
+
|
|
|
+ b.Property<int>("Images")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeleted")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("삭제 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsReply")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsSecret")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("Likes")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<byte>("Medias")
|
|
|
+ .HasColumnType("tinyint");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int?>("MentionMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("언급 대상 회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int?>("ParentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("부모 댓글 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<int>("Replies")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Reports")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("SID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int>("Score")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("점수");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("댓글 상태");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("MentionMemberID");
|
|
|
+
|
|
|
+ b.HasIndex("ParentID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "IsDeleted", "ParentID", "CreatedAt")
|
|
|
+ .IsDescending(false, false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "IsDeleted", "ParentID", "Score", "ID")
|
|
|
+ .IsDescending(false, false, false, true, true);
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "CreatedAt")
|
|
|
+ .IsDescending(false, false, false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID", "IsDeleted", "ParentID", "Score", "ID")
|
|
|
+ .IsDescending(false, false, false, false, true, true);
|
|
|
+
|
|
|
+ b.ToTable("Comment", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("Downloads")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("CommentFile", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 파일");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<short?>("Height")
|
|
|
+ .HasColumnType("smallint");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<short?>("Width")
|
|
|
+ .HasColumnType("smallint");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("CommentImage", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 이미지");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Clicks")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.ToTable("CommentLink", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 링크");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.ToTable("CommentMedia", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 미디어");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Length")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("길이");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("언급된 회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("RawHandle")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)")
|
|
|
+ .HasComment("원문 회원 언급값");
|
|
|
+
|
|
|
+ b.Property<int>("Start")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("본문 내 시작 인덱스");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID", "Start");
|
|
|
+
|
|
|
+ b.ToTable("CommentMention", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 멘션");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<byte>("Reaction")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("반응 구분");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("Reaction");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("CommentReaction", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 반응");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Memo")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("처리 내용");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("신고 내용");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("처리 상태");
|
|
|
+
|
|
|
+ b.Property<byte>("Type")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("신고 사유");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.HasIndex("Type");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("CommentReport", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 신고");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("CommentFileID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 파일 ID");
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentFileID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "CommentFileID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "CommentFileID", "MemberID");
|
|
|
+
|
|
|
+ b.ToTable("CommentFileDownLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 파일 다운로드 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<int>("CommentLinkID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 링크 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentLinkID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "CommentLinkID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "CommentLinkID", "MemberID");
|
|
|
+
|
|
|
+ b.ToTable("CommentLinkClickLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 링크 클릭 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("CommentID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("ContentDiff")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("변경 내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Note")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("비고");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID");
|
|
|
+
|
|
|
+ b.HasIndex("ContentDiff");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("CommentID", "MemberID", "ID");
|
|
|
+
|
|
|
+ b.ToTable("CommentUpdateLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("댓글 수정 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostFileID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 파일 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostFileID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "PostFileID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "PostFileID", "MemberID");
|
|
|
+
|
|
|
+ b.ToTable("PostFileDownLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 파일 다운로드 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostLinkID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 파일 ID");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("PostLinkID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "PostLinkID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "PostLinkID", "MemberID");
|
|
|
+
|
|
|
+ b.ToTable("PostLinkClickLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 링크 클릭 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("ContentDiff")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("변경 내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Note")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("비고");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<string>("SubjectDiff")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("변경 제목");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("ContentDiff");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("SubjectDiff");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "ID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID", "ID");
|
|
|
+
|
|
|
+ b.ToTable("PostUpdateLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 수정 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostViewLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.ToTable("PostViewLog");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.Post", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<int?>("BoardPrefixID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 말머리 ID");
|
|
|
+
|
|
|
+ b.Property<int>("Bookmarks")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("즐겨찾기 수");
|
|
|
+
|
|
|
+ b.Property<int>("Comments")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 수");
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(8000)
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("삭제 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Dislikes")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("싫어요");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("회원 이메일");
|
|
|
+
|
|
|
+ b.Property<byte>("Files")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("파일 수");
|
|
|
+
|
|
|
+ b.Property<byte>("Images")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("이미지 수");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP");
|
|
|
+
|
|
|
+ b.Property<bool>("IsAnonymous")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("익명 글 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeleted")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("삭제 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsNotice")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("일반 공지 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsReply")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("답변 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsSecret")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("비밀글 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsSpeaker")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("전체 공지 여부");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastCommentUpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 댓글 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastReplyUpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 답변 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Likes")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("좋아요");
|
|
|
+
|
|
|
+ b.Property<byte>("Medias")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("미디어 수");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("회원 이름");
|
|
|
+
|
|
|
+ b.Property<int>("Reports")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("신고 수");
|
|
|
+
|
|
|
+ b.Property<string>("SID")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("회원 SID");
|
|
|
+
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("종목 가상보드 파티션 코드 (stock 보드 전용)");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("제목");
|
|
|
+
|
|
|
+ b.Property<byte>("Tags")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("Tag 수");
|
|
|
+
|
|
|
+ b.Property<string>("Thumbnail")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("대표 이미지");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-Agent");
|
|
|
+
|
|
|
+ b.Property<int>("Views")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("조회 수");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardPrefixID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("StockCode", "CreatedAt")
|
|
|
+ .IsDescending(false, true)
|
|
|
+ .HasDatabaseName("IX_Post_StockCode_CreatedAt")
|
|
|
+ .HasFilter("[StockCode] IS NOT NULL AND [IsDeleted] = 0");
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID", "IsDeleted");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "IsDeleted", "CreatedAt")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Comments");
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Likes");
|
|
|
+
|
|
|
+ b.HasIndex("ID", "BoardID", "BoardPrefixID", "IsDeleted", "Views");
|
|
|
+
|
|
|
+ b.ToTable("Post", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostBookmark", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PostBookmark", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 즐겨찾기");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostCheer", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("총 응원 금액");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("응원 일시");
|
|
|
+
|
|
|
+ b.Property<int>("FeeAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("플랫폼 수수료(소각분)");
|
|
|
+
|
|
|
+ b.Property<int>("FromMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("응원 발신자 회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Message")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("응원 한마디");
|
|
|
+
|
|
|
+ b.Property<int>("NetAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("작성자 수령 순액(Reward 적립)");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("응원 대상 게시글 ID");
|
|
|
+
|
|
|
+ b.Property<int>("ToMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("응원 수신자(글 작성자) 회원 ID");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("FromMemberID", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("ToMemberID", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("PostCheer", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("분석글 응원(Cheer) — D3 M4");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostFile", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("Downloads")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PostFile", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 파일");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostImage", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("MIME 타입");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("비활성 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("확장자");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("원본 파일명");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("저장 파일명");
|
|
|
+
|
|
|
+ b.Property<short?>("Height")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("세로 해상도(px)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("비활성 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("저장 경로");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("용량(byte)");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier")
|
|
|
+ .HasComment("이미지 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("URL");
|
|
|
+
|
|
|
+ b.Property<short?>("Width")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("가로 해상도(px)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "HashedName");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "HashedName", "IsDisabled");
|
|
|
+
|
|
|
+ b.ToTable("PostImage", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 이미지");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostLink", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Clicks")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.ToTable("PostLink", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 링크");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostMedia", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.ToTable("PostMedia", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 미디어");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostPrediction", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("BasePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("작성 시점 기준가");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<byte>("Direction")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("예측 방향 (1=상승, 2=하락)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("DueDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("채점 예정일");
|
|
|
+
|
|
|
+ b.Property<short>("HorizonDays")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("예측 기간 (영업일 수)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("작성 회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID (1:1)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("SettledAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("채점 일시");
|
|
|
+
|
|
|
+ b.Property<decimal?>("SettledPrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("채점 시점 종가");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("상태 (0=Pending/1=Hit/2=Miss/3=Void)");
|
|
|
+
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("예측 종목 단축코드");
|
|
|
+
|
|
|
+ b.Property<decimal?>("TargetPrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("목표가 (선택)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Status");
|
|
|
+
|
|
|
+ b.HasIndex("Status", "DueDate");
|
|
|
+
|
|
|
+ b.ToTable("PostPrediction", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("예측글 (방향/기간 예측 + 채점)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReaction", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<byte>("Reaction")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("반응 구분");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("Reaction");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PostReaction", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 반응");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostReport", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시판 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(15)
|
|
|
+ .HasColumnType("nvarchar(15)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Memo")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("처리 내용");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("신고 내용");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("처리 상태");
|
|
|
+
|
|
|
+ b.Property<byte>("Type")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("신고 사유");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.HasIndex("Type");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PostReport", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 신고");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostStockTag", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 ID");
|
|
|
+
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("종목 단축코드");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID", "StockCode")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("StockCode", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("PostStockTag", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("글 본문 $종목 태그 (언급량 랭킹 원천)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.PostTag", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BoardID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("PostID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("TagID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BoardID");
|
|
|
+
|
|
|
+ b.HasIndex("PostID");
|
|
|
+
|
|
|
+ b.HasIndex("TagID");
|
|
|
+
|
|
|
+ b.ToTable("PostTag", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게시글 태그 연결");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Posts.Tag", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(450)");
|
|
|
+
|
|
|
+ b.Property<string>("Slug")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(450)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<long>("UsageCount")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Name")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Slug")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("UsageCount");
|
|
|
+
|
|
|
+ b.ToTable("Tag", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("태그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Attendance", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("ConsecutiveDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("연속 출석 일수");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("출석 일시");
|
|
|
+
|
|
|
+ b.Property<int>("ExpRewarded")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("지급 경험치");
|
|
|
+
|
|
|
+ b.Property<string>("Greeting")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("출석 인사");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("PointRewarded")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("지급 포인트");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt")
|
|
|
+ .IsDescending();
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("Attendance", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("출석 기록");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.BroadcastSession", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("ChannelID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채널 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("생성 일시");
|
|
|
+
|
|
|
+ b.Property<int>("DurationSec")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("방송 시간 (초)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("EndAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("방송 종료 시각");
|
|
|
+
|
|
|
+ b.Property<long>("FinalLikes")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("최종 좋아요");
|
|
|
+
|
|
|
+ b.Property<long>("FinalViews")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("최종 조회수");
|
|
|
+
|
|
|
+ b.Property<bool>("IsFinalized")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("최종 확정 여부 (End + 24h 경과)");
|
|
|
+
|
|
|
+ b.Property<int>("Platform")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("플랫폼 (YouTube=1)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("StartAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("방송 시작 시각");
|
|
|
+
|
|
|
+ b.Property<string>("Title")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("방송 제목");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("VideoID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("플랫폼 비디오 ID");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("IsFinalized");
|
|
|
+
|
|
|
+ b.HasIndex("ChannelID", "EndAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.HasIndex("Platform", "VideoID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("BroadcastSession", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("방송 세션 (라이브 1회 단위)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Channel", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("BannerUrl")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Description")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("DonationCode")
|
|
|
+ .HasMaxLength(7)
|
|
|
+ .HasColumnType("nvarchar(7)")
|
|
|
+ .HasComment("후원 코드(4~7자 영문+숫자, 대문자). 1회성 발급, 변경 불가");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("Handle")
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("핸들");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("활성 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsVerified")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("인증 여부");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("채널 이름");
|
|
|
+
|
|
|
+ b.Property<decimal>("PlatformFeeRate")
|
|
|
+ .HasPrecision(10, 7)
|
|
|
+ .HasColumnType("decimal(10,7)")
|
|
|
+ .HasComment("후원 수수료(%) — dpot 몫, 0~100, 소수점 7자리");
|
|
|
+
|
|
|
+ b.Property<string>("SID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(24)
|
|
|
+ .HasColumnType("nvarchar(24)")
|
|
|
+ .HasComment("채널 ID");
|
|
|
+
|
|
|
+ b.Property<decimal>("StoreCommissionRate")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasPrecision(10, 7)
|
|
|
+ .HasColumnType("decimal(10,7)")
|
|
|
+ .HasDefaultValue(0m)
|
|
|
+ .HasComment("상점 매출 보상률(%) — 채널 몫, 0~100, 소수점 7자리");
|
|
|
+
|
|
|
+ b.Property<long>("SubscriberCount")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<string>("ThumbnailUrl")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<long>("VideoCount")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<long>("ViewCount")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<string>("WidgetToken")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)")
|
|
|
+ .HasComment("위젯 토큰");
|
|
|
+
|
|
|
+ b.Property<string>("YouTubeChannelID")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("YouTubeLastSyncedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("YouTube API 마지막 동기화 시각(UTC) — 30일 정책 enforcement");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("YouTubePublishedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("YouTubeUrl")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("YouTube 채널 URL");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("DonationCode")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[DonationCode] IS NOT NULL");
|
|
|
+
|
|
|
+ b.HasIndex("Handle")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[Handle] IS NOT NULL");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Name")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("SID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("WidgetToken")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("YouTubeLastSyncedAt");
|
|
|
+
|
|
|
+ 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.ChannelBroadcastStats", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ChannelID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채널 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("생성 일시");
|
|
|
+
|
|
|
+ b.Property<long>("CumulativeViews")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 조회수");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastAggregatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 집계 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastBroadcastAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 방송 일시");
|
|
|
+
|
|
|
+ b.Property<int>("SessionCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("방송 횟수");
|
|
|
+
|
|
|
+ b.Property<long>("TotalDurationSec")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 방송 시간 (초)");
|
|
|
+
|
|
|
+ b.Property<long>("TotalLikes")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 좋아요");
|
|
|
+
|
|
|
+ b.HasKey("ChannelID");
|
|
|
+
|
|
|
+ b.ToTable("ChannelBroadcastStats", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채널별 누적 방송 지표");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.ChannelHandleHistory", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("ChangedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("변경 일시");
|
|
|
+
|
|
|
+ b.Property<int>("ChannelID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채널 ID");
|
|
|
+
|
|
|
+ b.Property<string>("OldHandle")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("이전 핸들");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("OldHandle");
|
|
|
+
|
|
|
+ b.HasIndex("ChannelID", "ChangedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("ChannelHandleHistory", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채널 핸들 변경 이력");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberEmailChangeLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AfterEmail")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("바뀐 이메일");
|
|
|
+
|
|
|
+ b.Property<string>("BeforeEmail")
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("이전 이메일");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberEmailChangeLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("사용자 이메일 변경 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberExpLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("변동량");
|
|
|
+
|
|
|
+ b.Property<long>("Balance")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("잔액");
|
|
|
+
|
|
|
+ b.Property<int?>("BroadcastSessionID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("방송 세션 ID (리더보드 집계 대상)");
|
|
|
+
|
|
|
+ b.Property<int?>("ChannelID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채널 ID (channel 단위 조회용)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("기록 일시");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("사유");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("BroadcastSessionID", "MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("ChannelID", "MemberID", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("MemberExpLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("경험치 변동 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberIntroChangeLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AfterIntro")
|
|
|
+ .HasMaxLength(3000)
|
|
|
+ .HasColumnType("nvarchar(3000)")
|
|
|
+ .HasComment("바꾼 자기소개");
|
|
|
+
|
|
|
+ b.Property<string>("BeforeIntro")
|
|
|
+ .HasMaxLength(3000)
|
|
|
+ .HasColumnType("nvarchar(3000)")
|
|
|
+ .HasComment("이전 자기소개");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address (IPv6 호환)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberIntroChangeLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("자기소개 변경 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberItemUsageLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<byte>("Action")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("액션 (1=Used, 2=Revoked)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Detail")
|
|
|
+ .HasMaxLength(300)
|
|
|
+ .HasColumnType("nvarchar(300)")
|
|
|
+ .HasComment("결과 요약");
|
|
|
+
|
|
|
+ b.Property<byte>("Kind")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("아이템 종류");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("MemberItemID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("MemberItem ID");
|
|
|
+
|
|
|
+ b.Property<int>("ProductID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("상품 ID");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("MemberItemUsageLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("소모품 아이템 사용/회수 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberLoginLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Account")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(120)
|
|
|
+ .HasColumnType("nvarchar(120)")
|
|
|
+ .HasComment("로그인 시도한 계정");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .HasMaxLength(225)
|
|
|
+ .HasColumnType("nvarchar(225)")
|
|
|
+ .HasComment("실패 이유");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<bool>("Success")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("로그인 성공 여부 (0: 실패, 1: 성공)");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("요청 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Account");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Success");
|
|
|
+
|
|
|
+ b.ToTable("MemberLoginLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("로그인 기록");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberNameChangeLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AfterName")
|
|
|
+ .HasMaxLength(40)
|
|
|
+ .HasColumnType("nvarchar(40)")
|
|
|
+ .HasComment("바꾼 별명");
|
|
|
+
|
|
|
+ b.Property<string>("BeforeName")
|
|
|
+ .HasMaxLength(40)
|
|
|
+ .HasColumnType("nvarchar(40)")
|
|
|
+ .HasComment("이전 별명");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address (IPv6 호환)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberNameChangeLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("별명 변경 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberSummaryChangeLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AfterSummary")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("바꾼 한마디");
|
|
|
+
|
|
|
+ b.Property<string>("BeforeSummary")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("이전 한마디");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address (IPv6 호환)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberSummaryChangeLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("한마디 변경 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Logs.MemberThumbChangeLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AfterThumb")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("바꾼 이미지");
|
|
|
+
|
|
|
+ b.Property<string>("BeforeThumb")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("이전 이미지");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address (IPv6 호환)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<string>("Referer")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("이전 페이지 주소");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(512)
|
|
|
+ .HasColumnType("nvarchar(512)")
|
|
|
+ .HasComment("User Agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberThumbChangeLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("프로필 이미지 변경 내역");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.Member", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime?>("AuthCertifiedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("본인인증 일시");
|
|
|
+
|
|
|
+ b.Property<string>("BannerUrl")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("배너 이미지");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("Birthday")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("생년월일");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("가입 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("탈퇴 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeniedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("차단 일시");
|
|
|
+
|
|
|
+ b.Property<string>("DeviceInfo")
|
|
|
+ .HasMaxLength(400)
|
|
|
+ .HasColumnType("nvarchar(400)")
|
|
|
+ .HasComment("로그인 단말기 정보");
|
|
|
+
|
|
|
+ b.Property<string>("Email")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(60)
|
|
|
+ .HasColumnType("nvarchar(60)")
|
|
|
+ .HasComment("이메일");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("EmailVerifiedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("이메일 인증 일시");
|
|
|
+
|
|
|
+ b.Property<string>("FirstName")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("본명(성)");
|
|
|
+
|
|
|
+ b.Property<string>("FullName")
|
|
|
+ .HasMaxLength(40)
|
|
|
+ .HasColumnType("nvarchar(40)")
|
|
|
+ .HasComment("본명");
|
|
|
+
|
|
|
+ b.Property<int?>("Gender")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("성별");
|
|
|
+
|
|
|
+ b.Property<string>("Icon")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("아이콘");
|
|
|
+
|
|
|
+ b.Property<string>("Intro")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("자기소개");
|
|
|
+
|
|
|
+ b.Property<string>("IpAddress")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("IP Address");
|
|
|
+
|
|
|
+ b.Property<bool>("IsAdmin")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("운영진 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsAuthCertified")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("본인 인증 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsCreator")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("크리에이터 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDenied")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("차단 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsEmailVerified")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("이메일 인증 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsWithdraw")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("탈퇴 여부");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastEmailChangedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 이메일 변경 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastIntroChangedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 자기소개 변경 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastLoginAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 로그인 일시");
|
|
|
+
|
|
|
+ b.Property<string>("LastLoginIp")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("마지막 로그인 IP (IPv6 호환 — 최대 45 char)");
|
|
|
+
|
|
|
+ b.Property<string>("LastName")
|
|
|
+ .HasMaxLength(40)
|
|
|
+ .HasColumnType("nvarchar(40)")
|
|
|
+ .HasComment("본명(이름)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastNameChangedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 별명 변경 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastSummaryChangedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 한마디 변경 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastThumbChangedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberGradeID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원등급 PK");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("별명");
|
|
|
+
|
|
|
+ b.Property<string>("Password")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("비밀번호");
|
|
|
+
|
|
|
+ b.Property<string>("PasswordHash")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("PasswordUpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("비밀번호 변경 일시");
|
|
|
+
|
|
|
+ b.Property<Guid?>("PaymentCustomerKey")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.Property<string>("Phone")
|
|
|
+ .HasMaxLength(15)
|
|
|
+ .HasColumnType("nvarchar(15)")
|
|
|
+ .HasComment("연락처");
|
|
|
+
|
|
|
+ b.Property<string>("SID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("SID");
|
|
|
+
|
|
|
+ b.Property<string>("SignupIP")
|
|
|
+ .HasMaxLength(45)
|
|
|
+ .HasColumnType("nvarchar(45)")
|
|
|
+ .HasComment("회원가입 시 IP (IPv6 호환 — 최대 45 char)");
|
|
|
+
|
|
|
+ b.Property<string>("Summary")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasComment("한마디");
|
|
|
+
|
|
|
+ b.Property<string>("Thumb")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("썸네일");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<string>("UserAgent")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("User-agent");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("DeletedAt");
|
|
|
+
|
|
|
+ b.HasIndex("Email")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("FullName");
|
|
|
+
|
|
|
+ b.HasIndex("Gender");
|
|
|
+
|
|
|
+ b.HasIndex("IsAdmin");
|
|
|
+
|
|
|
+ b.HasIndex("IsAuthCertified");
|
|
|
+
|
|
|
+ b.HasIndex("IsCreator");
|
|
|
+
|
|
|
+ b.HasIndex("IsDenied");
|
|
|
+
|
|
|
+ b.HasIndex("IsEmailVerified");
|
|
|
+
|
|
|
+ b.HasIndex("IsWithdraw");
|
|
|
+
|
|
|
+ b.HasIndex("MemberGradeID");
|
|
|
+
|
|
|
+ b.HasIndex("Name")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[Name] IS NOT NULL");
|
|
|
+
|
|
|
+ b.HasIndex("Phone");
|
|
|
+
|
|
|
+ b.HasIndex("SID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("Member", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 정보");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberApprove", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisclosureInvestConsentAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("투자 현황 공개 동의 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DonationPublicConsentAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisclosureInvest")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("투자 현황 공개 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDonationPublic")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsRankingPublic")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("랭킹 공개 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsReceiveEmail")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("E-MAIL 수신 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsReceiveNote")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("쪽지 수신 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("IsReceiveSMS")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("SMS 수신 여부");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("RankingPublicConsentAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("랭킹 공개 동의 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ReceiveEmailConsentAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("E-MAIL 수신 동의 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ReceiveNoteConsentAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("쪽지 수신 동의 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ReceiveSMSConsentAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("SMS 수신 동의 일시");
|
|
|
+
|
|
|
+ b.HasKey("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberApprove", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 알림 및 수신 동의");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberDailyRewardCounter", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("RewardDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("KST 기준 일자");
|
|
|
+
|
|
|
+ b.Property<byte>("ActionType")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("액션 유형 (Post=1..PaperReward=8)");
|
|
|
+
|
|
|
+ b.Property<int>("Count")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("오늘 지급 횟수");
|
|
|
+
|
|
|
+ b.Property<int>("ExpTotal")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("오늘 지급 경험치 합계");
|
|
|
+
|
|
|
+ b.Property<int>("PointTotal")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("오늘 지급 토큰 합계");
|
|
|
+
|
|
|
+ b.HasKey("MemberID", "RewardDate", "ActionType");
|
|
|
+
|
|
|
+ b.HasIndex("RewardDate");
|
|
|
+
|
|
|
+ b.ToTable("MemberDailyRewardCounter", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("일일 보상 캡 원장 (d3 M2)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberFollow", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("팔로우 일시");
|
|
|
+
|
|
|
+ b.Property<int>("FolloweeMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("팔로우 대상 회원 ID");
|
|
|
+
|
|
|
+ b.Property<int>("FollowerMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("팔로우 주체 회원 ID");
|
|
|
+
|
|
|
+ b.Property<bool>("IsMuted")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("피드 숨김 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("NotifyOnPost")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("새 글 알림 수신 여부");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FolloweeMemberID");
|
|
|
+
|
|
|
+ b.HasIndex("FollowerMemberID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.HasIndex("FollowerMemberID", "FolloweeMemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("MemberFollow", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 팔로우 관계");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberGrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Description")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("설명");
|
|
|
+
|
|
|
+ b.Property<string>("EngName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(120)
|
|
|
+ .HasColumnType("nvarchar(120)")
|
|
|
+ .HasComment("영문 명");
|
|
|
+
|
|
|
+ b.Property<string>("Image")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("이미지");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("KorName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(240)
|
|
|
+ .HasColumnType("nvarchar(240)")
|
|
|
+ .HasComment("한글 명");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<long>("RequiredAttendance")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 출석 수");
|
|
|
+
|
|
|
+ b.Property<int>("RequiredExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("누적 경험치");
|
|
|
+
|
|
|
+ b.Property<string>("TextColor")
|
|
|
+ .HasMaxLength(7)
|
|
|
+ .HasColumnType("nvarchar(7)")
|
|
|
+ .HasComment("표시 색상");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("EngName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("KorName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Order");
|
|
|
+
|
|
|
+ b.HasIndex("Order", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("MemberGrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 등급");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberItem", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("AcquiredAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("획득 일시");
|
|
|
+
|
|
|
+ b.Property<int>("DurationDays")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(0)
|
|
|
+ .HasComment("효과 지속일 (0=즉시소모/영구)");
|
|
|
+
|
|
|
+ b.Property<byte?>("EquipSlot")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("장착 슬롯 (1=Badge, 2=NicknameEffect, 3=CommentEffect, null=소모품)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("만료 일시 (null=영구)");
|
|
|
+
|
|
|
+ b.Property<int?>("GiftFromMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("선물 발신자 회원 ID (null=본인구매)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsEquipped")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasDefaultValue(false)
|
|
|
+ .HasComment("장착 여부 (지위 아이템)");
|
|
|
+
|
|
|
+ b.Property<byte>("Kind")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("아이템 종류 (2~4=지위, 5~11=소모품)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID (지급 대상)");
|
|
|
+
|
|
|
+ b.Property<int>("OrderItemID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("발급 근거 주문항목 ID");
|
|
|
+
|
|
|
+ b.Property<int>("ProductID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("상품 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("RevokedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("회수 일시 (환불)");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UsedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("소모/활성 일시 (null=미사용)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderItemID");
|
|
|
+
|
|
|
+ b.HasIndex("ProductID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "EquipSlot")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[IsEquipped] = 1");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "ExpiresAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Kind", "UsedAt");
|
|
|
+
|
|
|
+ b.ToTable("MemberItem", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("계정 귀속 아이템 (지위 아이템 장착형 + 소모품)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberOAuthToken", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AccessTokenEnc")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(2048)
|
|
|
+ .HasColumnType("nvarchar(2048)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Provider")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<string>("ProviderUserKey")
|
|
|
+ .HasMaxLength(128)
|
|
|
+ .HasColumnType("nvarchar(128)");
|
|
|
+
|
|
|
+ b.Property<string>("RefreshTokenEnc")
|
|
|
+ .HasMaxLength(2048)
|
|
|
+ .HasColumnType("nvarchar(2048)");
|
|
|
+
|
|
|
+ b.Property<string>("Scopes")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1024)
|
|
|
+ .HasColumnType("nvarchar(1024)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Provider")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Provider", "ProviderUserKey");
|
|
|
+
|
|
|
+ b.ToTable("MemberOAuthToken", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 OAuth 토큰");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberStats", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<long>("AttendanceCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("출석");
|
|
|
+
|
|
|
+ b.Property<long>("BookmarkGivenCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("즐겨찾기 글 수");
|
|
|
+
|
|
|
+ b.Property<long>("CommentCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("작성 댓글");
|
|
|
+
|
|
|
+ b.Property<long>("Exp")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("경험치");
|
|
|
+
|
|
|
+ b.Property<long>("FollowerCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("구독자");
|
|
|
+
|
|
|
+ b.Property<long>("FollowingCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("구독 중");
|
|
|
+
|
|
|
+ b.Property<long>("LikeGivenCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누른 좋아요 수");
|
|
|
+
|
|
|
+ b.Property<long>("LikeReceivedCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("받은 좋아요 수");
|
|
|
+
|
|
|
+ b.Property<long>("LoginCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("로그인");
|
|
|
+
|
|
|
+ b.Property<long>("PaymentCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("결제 횟수");
|
|
|
+
|
|
|
+ b.Property<long>("PostCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("작성 게시글");
|
|
|
+
|
|
|
+ b.Property<long>("ReportedCount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("신고 당한 횟수");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion")
|
|
|
+ .HasComment("동시성");
|
|
|
+
|
|
|
+ b.Property<int>("SuspensionCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("정지 횟수");
|
|
|
+
|
|
|
+ b.Property<long>("TotalCanceledAmount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 취소/환불 금액");
|
|
|
+
|
|
|
+ b.Property<long>("TotalPaidAmount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("누적 결제 금액");
|
|
|
+
|
|
|
+ b.Property<int>("WarningCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("경고 횟수");
|
|
|
+
|
|
|
+ b.HasKey("MemberID");
|
|
|
+
|
|
|
+ b.ToTable("MemberStats", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 활동 집계");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberTrackRecord", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID (PK)");
|
|
|
+
|
|
|
+ b.Property<int>("BestStreak")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("역대 최고 연속 적중");
|
|
|
+
|
|
|
+ b.Property<int>("CurrentStreak")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("현재 연속 적중");
|
|
|
+
|
|
|
+ b.Property<decimal>("HitRate")
|
|
|
+ .HasPrecision(5, 2)
|
|
|
+ .HasColumnType("decimal(5,2)")
|
|
|
+ .HasComment("적중률 % (Hits/(Hits+Misses)*100)");
|
|
|
+
|
|
|
+ b.Property<int>("Hits")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("적중 수");
|
|
|
+
|
|
|
+ b.Property<int>("Misses")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("실패 수");
|
|
|
+
|
|
|
+ b.Property<int>("Predictions")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채점 완료 예측 총계 (Hits+Misses+Voids)");
|
|
|
+
|
|
|
+ b.Property<byte>("Tier")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("배지 등급 (0=None/1=Bronze/2=Silver/3=Gold/4=GoldAnt)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("갱신 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Voids")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("무효 수 (표본 제외)");
|
|
|
+
|
|
|
+ b.HasKey("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("HitRate")
|
|
|
+ .IsDescending()
|
|
|
+ .HasDatabaseName("IX_MemberTrackRecord_HitRate")
|
|
|
+ .HasFilter("[Predictions] >= 10");
|
|
|
+
|
|
|
+ b.ToTable("MemberTrackRecord", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 예측 트랙레코드 집계 (적중률 배지·리더보드)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.RefreshToken", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsRevoked")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasDefaultValue(false);
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("ReplacedByToken")
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("RevokedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Token")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("Token")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("RefreshToken", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("리프레시 토큰");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Notes.Note", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(2000)
|
|
|
+ .HasColumnType("nvarchar(2000)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeletedByReceiver")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDeletedBySender")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsRead")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsSystem")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ReadAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("ReceiverMemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int?>("RelatedID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("RelatedType")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<int>("SenderMemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Title")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("SenderMemberID", "IsDeletedBySender", "CreatedAt")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("ReceiverMemberID", "IsDeletedByReceiver", "IsRead", "CreatedAt")
|
|
|
+ .IsDescending(false, false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("Note", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("쪽지");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Notifications.Notification", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("ActionUrl")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("ImageUrl")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsRead")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Message")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ReadAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int?>("RelatedID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("RelatedType")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<string>("Title")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "IsRead", "CreatedAt")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Type", "CreatedAt")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("Notification", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("알림");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Banner.BannerItem", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<string>("DesktopImage")
|
|
|
+ .HasMaxLength(1024)
|
|
|
+ .HasColumnType("nvarchar(1024)")
|
|
|
+ .HasComment("이미지(Desktop)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("EndAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("사용 기간 - 종료");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Link")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("주소");
|
|
|
+
|
|
|
+ b.Property<string>("LinkTarget")
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasDefaultValue("_self")
|
|
|
+ .HasComment("링크 타겟 (_self/_blank)");
|
|
|
+
|
|
|
+ b.Property<string>("MobileImage")
|
|
|
+ .HasMaxLength(1024)
|
|
|
+ .HasColumnType("nvarchar(1024)")
|
|
|
+ .HasComment("이미지(Mobile)");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<int>("PositionID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("배너 위치 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("StartAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("사용 기간 - 시작");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("배너 명");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Order");
|
|
|
+
|
|
|
+ b.HasIndex("PositionID");
|
|
|
+
|
|
|
+ b.HasIndex("PositionID", "Order", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("BannerItem", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("배너 아이템");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Banner.BannerPosition", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("위치 구분");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("위치 명");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("BannerPosition", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("배너 위치");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Document", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("주소");
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .HasMaxLength(5000)
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(120)
|
|
|
+ .HasColumnType("nvarchar(120)")
|
|
|
+ .HasComment("제목");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Views")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("조회 수");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Subject");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("Document", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("문서");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Faq.FaqCategory", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("주소");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("분류 명");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Order", "IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "Order", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("FaqCategory", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("FAQ 분류");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Faq.FaqItem", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Answer")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("답변");
|
|
|
+
|
|
|
+ b.Property<int>("CategoryID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("분류 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<string>("Question")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("질문");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CategoryID");
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Order");
|
|
|
+
|
|
|
+ b.HasIndex("Order", "IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("CategoryID", "Order", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("FaqItem", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("FAQ 목록");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Page.Popup.Popup", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Content")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)")
|
|
|
+ .HasComment("내용");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("EndAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("사용 기간 - 종료");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Link")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("주소");
|
|
|
+
|
|
|
+ b.Property<short>("Order")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("순서");
|
|
|
+
|
|
|
+ b.Property<int>("PositionID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("팝업 위치 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("StartAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("사용 기간 - 시작");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("제목");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("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<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("위치 구분");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("등록 일시");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("사용 여부");
|
|
|
+
|
|
|
+ b.Property<string>("Subject")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("위치 명");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("수정 일시");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("PopupPosition", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("팝업 위치");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperAccount", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원 ID");
|
|
|
+
|
|
|
+ b.Property<decimal>("ReservedToken")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("매수 예약 토큰");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<decimal>("Token")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("자유 현금 토큰");
|
|
|
+
|
|
|
+ b.Property<decimal>("TotalDeposited")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("누적 입금");
|
|
|
+
|
|
|
+ b.Property<decimal>("TotalWithdrawn")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("누적 출금");
|
|
|
+
|
|
|
+ b.Property<decimal>("Units")
|
|
|
+ .HasPrecision(18, 8)
|
|
|
+ .HasColumnType("decimal(18,8)")
|
|
|
+ .HasComment("좌수");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PaperAccount", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 계좌 (회원당 1개)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperDailySnapshot", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("AccountID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("계좌 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("CumReturnBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("누적 수익률 Bp");
|
|
|
+
|
|
|
+ b.Property<int>("DailyReturnBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("일간 수익률 Bp");
|
|
|
+
|
|
|
+ b.Property<decimal>("Equity")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("순자산");
|
|
|
+
|
|
|
+ b.Property<int>("FillCountCum")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("누적 체결 수");
|
|
|
+
|
|
|
+ b.Property<int>("MddBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("최대 낙폭 Bp");
|
|
|
+
|
|
|
+ b.Property<decimal>("PeakEquity")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("최고 순자산");
|
|
|
+
|
|
|
+ b.Property<decimal>("PositionsValue")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("포지션 평가액");
|
|
|
+
|
|
|
+ b.Property<decimal>("Token")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("자유+예약 토큰");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("거래일");
|
|
|
+
|
|
|
+ b.Property<decimal>("UnitNav")
|
|
|
+ .HasPrecision(18, 8)
|
|
|
+ .HasColumnType("decimal(18,8)")
|
|
|
+ .HasComment("좌당 순자산");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("AccountID", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate", "CumReturnBp")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("PaperDailySnapshot", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 계좌 일별 스냅샷 (좌수 NAV·수익률·MDD)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperFill", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("Amount")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("체결 총액");
|
|
|
+
|
|
|
+ b.Property<decimal>("Fee")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("수수료");
|
|
|
+
|
|
|
+ b.Property<DateTime>("FilledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("OrderID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("주문 ID");
|
|
|
+
|
|
|
+ b.Property<decimal>("Price")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("체결가");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("PriceDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("체결가 기준일");
|
|
|
+
|
|
|
+ b.Property<int>("Quantity")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("수량");
|
|
|
+
|
|
|
+ b.Property<decimal?>("RealizedPnL")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("매도 확정 손익");
|
|
|
+
|
|
|
+ b.Property<decimal>("Tax")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("거래세");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PaperFill", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 체결 결과 (주문당 1건, 멱등)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperLedger", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("AccountID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("계좌 ID");
|
|
|
+
|
|
|
+ b.Property<decimal>("BalanceAfter")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("이동 후 자유 토큰 잔액");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<decimal>("TokenAmount")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("이동 토큰");
|
|
|
+
|
|
|
+ b.Property<byte>("Type")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("유형 (1=입금, 2=출금)");
|
|
|
+
|
|
|
+ b.Property<decimal>("UnitsDelta")
|
|
|
+ .HasPrecision(18, 8)
|
|
|
+ .HasColumnType("decimal(18,8)")
|
|
|
+ .HasComment("좌수 변화");
|
|
|
+
|
|
|
+ b.Property<string>("WalletTxRefID")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("연결 지갑 거래 RefID");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("AccountID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("PaperLedger", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 입출금 감사 원장");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperOrder", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("AccountID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("계좌 ID");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CancelableUntil")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("취소 가능 시한");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<byte>("FillRule")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("체결 규칙 (1=시가, 2=종가)");
|
|
|
+
|
|
|
+ b.Property<int>("Quantity")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("수량");
|
|
|
+
|
|
|
+ b.Property<string>("RejectReason")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("거부 사유");
|
|
|
+
|
|
|
+ b.Property<decimal>("ReservedAmount")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasComment("매수 예약금");
|
|
|
+
|
|
|
+ b.Property<byte>("Side")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("방향 (1=매수, 2=매도)");
|
|
|
+
|
|
|
+ b.Property<byte>("Status")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("상태 (1=대기, 2=체결, 3=취소, 4=거부)");
|
|
|
+
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("단축코드");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TargetDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("체결 기준일");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("AccountID", "CreatedAt")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.HasIndex("Status", "TargetDate");
|
|
|
+
|
|
|
+ b.ToTable("PaperOrder", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 주문");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperPosition", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("AccountID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("계좌 ID");
|
|
|
+
|
|
|
+ b.Property<decimal>("AvgPrice")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("평균 단가");
|
|
|
+
|
|
|
+ b.Property<int>("Quantity")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("보유 수량");
|
|
|
+
|
|
|
+ b.Property<int>("ReservedQuantity")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("매도 예약 수량");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("단축코드");
|
|
|
+
|
|
|
+ b.Property<DateTime>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("AccountID", "StockCode")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("PaperPosition", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("모의투자 보유 포지션");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.PaymentOrder", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("CancelledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("FailReason")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("MerchantID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)");
|
|
|
+
|
|
|
+ b.Property<string>("OrderID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("OrderName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("PaidAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("PaymentMethod")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("PointAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("TransactionID")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<int>("VatAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("VirtualAccountBank")
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("VirtualAccountExpireAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("VirtualAccountHolder")
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<string>("VirtualAccountNumber")
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.HasIndex("TransactionID");
|
|
|
+
|
|
|
+ b.ToTable("PaymentOrder", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("PG 결제 주문");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.PaymentReconcileLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("Kind")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("PaymentOrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)");
|
|
|
+
|
|
|
+ b.Property<string>("TransactionID")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("PaymentOrderID");
|
|
|
+
|
|
|
+ b.ToTable("PaymentReconcileLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("PG 성공 후 저장 실패 대사 로그 (Phase 1.5)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossCancel", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("CancelAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("CancelReason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<string>("CancelRequester")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("CanceledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("OrderID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("PaymentKey")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<int>("PaymentOrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("RawResponse")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("ResponseCode")
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("ResponseMessage")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("Status")
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<string>("TransactionKey")
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID");
|
|
|
+
|
|
|
+ b.HasIndex("PaymentKey");
|
|
|
+
|
|
|
+ b.HasIndex("PaymentOrderID");
|
|
|
+
|
|
|
+ b.HasIndex("TransactionKey");
|
|
|
+
|
|
|
+ b.ToTable("TossCancel", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("토스페이먼츠 결제 취소 (요청+응답)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossConfirm", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ApprovedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Method")
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<string>("OrderID")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("PaymentKey")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<int>("PaymentOrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("RawResponse")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("ReceiptUrl")
|
|
|
+ .HasMaxLength(300)
|
|
|
+ .HasColumnType("nvarchar(300)");
|
|
|
+
|
|
|
+ b.Property<string>("ResponseCode")
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("ResponseMessage")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("Status")
|
|
|
+ .HasMaxLength(32)
|
|
|
+ .HasColumnType("nvarchar(32)");
|
|
|
+
|
|
|
+ b.Property<int?>("TotalAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("PaymentKey")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("PaymentOrderID");
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.ToTable("TossConfirm", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("토스페이먼츠 결제 승인 (요청+응답)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossLog", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("ExtraData")
|
|
|
+ .HasMaxLength(4000)
|
|
|
+ .HasColumnType("nvarchar(4000)");
|
|
|
+
|
|
|
+ b.Property<int>("LogType")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int?>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Message")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("OrderID")
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)");
|
|
|
+
|
|
|
+ b.Property<string>("PaymentKey")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code");
|
|
|
+
|
|
|
+ b.HasIndex("LogType");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID");
|
|
|
+
|
|
|
+ b.HasIndex("PaymentKey");
|
|
|
+
|
|
|
+ b.ToTable("TossLog", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("토스페이먼츠 결제 에러/실패/웹훅/대사 로그");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.BondDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<byte>("BondMarket")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("채권 시장 구분 (1=국채전문유통, 2=일반채권, 3=소액채권)");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비 (CMPPREVDD_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가 가격 (CLSPRC)");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nvarchar(12)")
|
|
|
+ .HasComment("단축코드 (ISU_CD) — 12자리 ISIN");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가 가격 (HGPRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("HighYield")
|
|
|
+ .HasPrecision(9, 3)
|
|
|
+ .HasColumnType("decimal(9,3)")
|
|
|
+ .HasComment("고가 수익률 % (HGPRC_YD)");
|
|
|
+
|
|
|
+ b.Property<string>("IssueType")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("종목구분 (국채전문, GOVBND_ISU_TP_NM)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가 가격 (LWPRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("LowYield")
|
|
|
+ .HasPrecision(9, 3)
|
|
|
+ .HasColumnType("decimal(9,3)")
|
|
|
+ .HasComment("저가 수익률 % (LWPRC_YD)");
|
|
|
+
|
|
|
+ b.Property<string>("MaturityYears")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("만기년수 (국채전문, BND_EXP_TP_NM)");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가 가격 (OPNPRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("OpenYield")
|
|
|
+ .HasPrecision(9, 3)
|
|
|
+ .HasColumnType("decimal(9,3)")
|
|
|
+ .HasComment("시가 수익률 % (OPNPRC_YD)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (ACC_TRDVAL, 원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량 (ACC_TRDVOL)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("YieldToMaturity")
|
|
|
+ .HasPrecision(9, 3)
|
|
|
+ .HasColumnType("decimal(9,3)")
|
|
|
+ .HasComment("만기수익률 % (CLSPRC_YD)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("BondMarket", "Code", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("BondMarket", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("BondDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채권(국채전문유통/일반채권/소액채권) 일별매매 시세 (KRX OpenAPI bon)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.BondIndexDailyPrice", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal?>("AvgConvexity")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("평균 컨벡시티 (AVG_CONVEXITY_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("AvgDuration")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("평균 듀레이션 (AVG_DURATION)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("AvgYield")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("평균 만기수익률 YTM (BND_IDX_AVG_YD)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("CallReinvestChange")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("Call재투자지수 전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal?>("CallReinvestIndex")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("Call재투자지수 (CALL_REINVST_IDX)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("GroupName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("채권지수 그룹명 (BND_IDX_GRP_NM)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("MarketPriceChange")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("시장가격지수 전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal?>("MarketPriceIndex")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("시장가격지수 (MKT_PRC_IDX)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("NetPriceChange")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("순가격지수 전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal?>("NetPriceIndex")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("순가격지수 (NETPRC_IDX)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("TotalEarningChange")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("총수익지수 전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal?>("TotalEarningIndex")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("총수익지수 (TOT_EARNG_IDX)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<decimal?>("ZeroReinvestChange")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("제로재투자지수 전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal?>("ZeroReinvestIndex")
|
|
|
+ .HasPrecision(18, 4)
|
|
|
+ .HasColumnType("decimal(18,4)")
|
|
|
+ .HasComment("제로재투자지수 (ZERO_REINVST_IDX)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate");
|
|
|
+
|
|
|
+ b.HasIndex("GroupName", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("BondIndexDailyPrice", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("채권지수 일별시세 (KRX OpenAPI idx/bon_dd_trd)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.CommodityDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal?>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비 (CMPPREVDD_PRC) — 금/배출권만");
|
|
|
+
|
|
|
+ b.Property<decimal?>("ChangeRate")
|
|
|
+ .HasPrecision(9, 2)
|
|
|
+ .HasColumnType("decimal(9,2)")
|
|
|
+ .HasComment("등락률 % (FLUC_RT) — 금/배출권만");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가 (TDD_CLSPRC) — 석유는 가중평균가격_경쟁");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(40)
|
|
|
+ .HasColumnType("nvarchar(40)")
|
|
|
+ .HasComment("단축코드 (ISU_CD) — 석유는 OIL_NM(유종구분)");
|
|
|
+
|
|
|
+ b.Property<byte>("CommodityMarket")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("일반상품 시장 구분 (1=석유, 2=금, 3=배출권)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가 (TDD_HGPRC) — 석유 0");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가 (TDD_LWPRC) — 석유 0");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명 (ISU_NM) — 석유는 유종구분");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가 (TDD_OPNPRC) — 석유 0");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (ACC_TRDVAL, 원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량 (ACC_TRDVOL)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("WeightedDiscussionPrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("가중평균가격_협의 (WT_DIS_AVG_PRC) — 석유만");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CommodityMarket", "Code", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("CommodityMarket", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("CommodityDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("일반상품(석유/금/배출권) 일별매매 시세 (KRX OpenAPI gen)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.EsgIndexDailyPrice", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeVal")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일비 (PRV_DD_CMPR)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("현재가/종가 (CLSPRC_IDX)");
|
|
|
+
|
|
|
+ b.Property<int>("ConstituentCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("구성종목수 (TRD_ISU_CNT)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FlucRateBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("등락률 basis point (%×100, UPDN_RATE)");
|
|
|
+
|
|
|
+ b.Property<string>("IndexName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("지수명 (IDX_NM)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("Value")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (ACC_TRDVAL, 백만원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량 (ACC_TRDVOL, 천주)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate");
|
|
|
+
|
|
|
+ b.HasIndex("IndexName", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("EsgIndexDailyPrice", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("ESG 지수 일별시세 (KRX OpenAPI esg/esg_index_info)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.EsgSecurity", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일비 (CMPPREVDD_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeRate")
|
|
|
+ .HasPrecision(9, 2)
|
|
|
+ .HasColumnType("decimal(9,2)")
|
|
|
+ .HasComment("등락률 % (FLUC_RT)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("현재가/종가 (TDD_CLSPRC)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<long>("ListedShares")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("상장좌수 (LIST_SHRS)");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명 (ISU_ABBRV)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금(원) (ACC_TRDVAL)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량(좌) (ACC_TRDVOL)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Name", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("EsgSecurity", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("ESG 증권상품 일별시세 (KRX OpenAPI esg/esg_etp_info)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.EtpDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal?>("BaseIndexClose")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("기초지수 종가 (ETF/ETN)");
|
|
|
+
|
|
|
+ b.Property<string>("BaseIndexName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("기초지수명 (ETF/ETN)");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeRate")
|
|
|
+ .HasPrecision(7, 2)
|
|
|
+ .HasColumnType("decimal(7,2)")
|
|
|
+ .HasComment("등락률 % (ELW 는 0)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("단축코드 (ISU_CD)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<byte>("EtpType")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("증권상품 구분 (1=ETF, 2=ETN, 3=ELW)");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가");
|
|
|
+
|
|
|
+ b.Property<long?>("ListedShares")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("상장증권수/상장좌수");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가");
|
|
|
+
|
|
|
+ b.Property<long?>("MarketCap")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("시가총액 (원)");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명");
|
|
|
+
|
|
|
+ b.Property<decimal?>("Nav")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("ETF NAV / ETN 지표가치(IV)");
|
|
|
+
|
|
|
+ b.Property<long?>("NetAssetTotal")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("ETF 순자산총액 / ETN 지표가치총액 (원)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (원)");
|
|
|
+
|
|
|
+ b.Property<string>("Underlying")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("ELW 기초자산명");
|
|
|
+
|
|
|
+ b.Property<decimal?>("UnderlyingClose")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("ELW 기초자산 종가");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("EtpType", "Code", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("EtpType", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("EtpDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("증권상품(ETF/ETN/ELW) 일별매매 시세 (KRX OpenAPI etp)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.FuturesDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비 (CMPPREVDD_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가 (TDD_CLSPRC)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<byte>("FuturesKind")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("선물 상품군 구분 (1=일반선물, 2=주식선물유가, 3=주식선물코스닥)");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가 (TDD_HGPRC)");
|
|
|
+
|
|
|
+ b.Property<string>("IsuCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nvarchar(12)")
|
|
|
+ .HasComment("종목코드 (ISU_CD) — 8자리 영숫자");
|
|
|
+
|
|
|
+ b.Property<string>("IsuName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가 (TDD_LWPRC)");
|
|
|
+
|
|
|
+ b.Property<string>("MarketName")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("시장구분 (MKT_NM 정규/야간)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가 (TDD_OPNPRC)");
|
|
|
+
|
|
|
+ b.Property<long?>("OpenInterest")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("미결제약정 (ACC_OPNINT_QTY)");
|
|
|
+
|
|
|
+ b.Property<string>("ProductName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("상품구분 (PROD_NM)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("SettlePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("정산가 (SETL_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("SpotPrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("현물가 (SPOT_PRC)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (ACC_TRDVAL, 원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량 (ACC_TRDVOL)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("FuturesKind", "IsuCode", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("FuturesKind", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("FuturesDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("선물(일반/주식유가/주식코스닥) 일별매매 시세 (KRX OpenAPI drv)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.IndexDailyPrice", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeVal")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("FlucRateBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("등락률 basis point (%×100)");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가");
|
|
|
+
|
|
|
+ b.Property<string>("IndexName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("지수명");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가");
|
|
|
+
|
|
|
+ b.Property<long?>("MarketCap")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("상장시가총액 (원)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가");
|
|
|
+
|
|
|
+ b.Property<byte>("Series")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("계열 구분 (1=KOSPI, 2=KOSDAQ, 3=KRX)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("Value")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate");
|
|
|
+
|
|
|
+ b.HasIndex("Series", "IndexName", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("IndexDailyPrice", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("지수(시장) 일별 마감 시세 (KRX OpenAPI)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.MarketHoliday", b =>
|
|
|
+ {
|
|
|
+ b.Property<DateOnly>("Date")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("휴장 사유");
|
|
|
+
|
|
|
+ b.HasKey("Date");
|
|
|
+
|
|
|
+ b.ToTable("MarketHoliday", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("KRX 휴장일 (주말 제외, Admin 수동 관리)");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.HasData(
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 1, 1),
|
|
|
+ Name = "신정"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 2, 16),
|
|
|
+ Name = "설날 연휴"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 2, 17),
|
|
|
+ Name = "설날"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 2, 18),
|
|
|
+ Name = "설날 연휴"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 3, 2),
|
|
|
+ Name = "삼일절 대체공휴일"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 5, 5),
|
|
|
+ Name = "어린이날"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 5, 25),
|
|
|
+ Name = "부처님오신날 대체공휴일"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 6, 3),
|
|
|
+ Name = "전국동시지방선거"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 8, 17),
|
|
|
+ Name = "광복절 대체공휴일"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 9, 24),
|
|
|
+ Name = "추석 연휴"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 9, 25),
|
|
|
+ Name = "추석"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 9, 28),
|
|
|
+ Name = "추석 대체공휴일"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 10, 5),
|
|
|
+ Name = "개천절 대체공휴일"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 10, 9),
|
|
|
+ Name = "한글날"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 12, 25),
|
|
|
+ Name = "성탄절"
|
|
|
+ },
|
|
|
+ new
|
|
|
+ {
|
|
|
+ Date = new DateOnly(2026, 12, 31),
|
|
|
+ Name = "연말 휴장일"
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.OptionsDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비 (CMPPREVDD_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가 (TDD_CLSPRC)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가 (TDD_HGPRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("ImpliedVolatility")
|
|
|
+ .HasPrecision(9, 3)
|
|
|
+ .HasColumnType("decimal(9,3)")
|
|
|
+ .HasComment("내재변동성 % (IMP_VOLT)");
|
|
|
+
|
|
|
+ b.Property<string>("IsuCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nvarchar(12)")
|
|
|
+ .HasComment("종목코드 (ISU_CD) — 8자리 영숫자");
|
|
|
+
|
|
|
+ b.Property<string>("IsuName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가 (TDD_LWPRC)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("NextDayBasePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("익일정산가 (NXTDD_BAS_PRC)");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가 (TDD_OPNPRC)");
|
|
|
+
|
|
|
+ b.Property<long?>("OpenInterest")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("미결제약정 (ACC_OPNINT_QTY)");
|
|
|
+
|
|
|
+ b.Property<byte>("OptionsKind")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("옵션 상품군 구분 (1=일반옵션, 2=주식옵션유가, 3=주식옵션코스닥)");
|
|
|
+
|
|
|
+ b.Property<string>("ProductName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("상품구분 (PROD_NM)");
|
|
|
+
|
|
|
+ b.Property<byte>("RightType")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("권리유형 (RGHT_TP_NM — 1=Call, 2=Put)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("StrikePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("행사가 (ISU_NM 에서 파싱)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (ACC_TRDVAL, 원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량 (ACC_TRDVOL)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("OptionsKind", "IsuCode", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("OptionsKind", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("OptionsDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("옵션(일반/주식유가/주식코스닥) 일별매매 시세 (KRX OpenAPI drv)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.SriBond", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("BondType")
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("채권유형 (BND_TP_NM)");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nvarchar(12)")
|
|
|
+ .HasComment("표준코드 (ISU_CD) — 12자리 ISIN");
|
|
|
+
|
|
|
+ b.Property<decimal?>("CouponRate")
|
|
|
+ .HasPrecision(9, 5)
|
|
|
+ .HasColumnType("decimal(9,5)")
|
|
|
+ .HasComment("표면이자율 % (ISU_RT)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<long>("IssueAmount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("발행금액 (ISU_AMT, 원)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("IssueDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("발행일 (ISU_DD)");
|
|
|
+
|
|
|
+ b.Property<string>("IssuerName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("발행기관 (ISUR_NM)");
|
|
|
+
|
|
|
+ b.Property<long>("ListAmount")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("상장금액 (LIST_AMT, 원)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("ListDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("상장일 (LIST_DD)");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명 (ISU_NM)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("RedemptionDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("상환일 (REDMPT_DD)");
|
|
|
+
|
|
|
+ b.Property<string>("SriBondType")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasComment("채권종류 (SRI_BND_TP_NM)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("TradeDate", "SriBondType");
|
|
|
+
|
|
|
+ b.ToTable("SriBond", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("사회책임투자채권(SRI) 정보 스냅샷 (KRX OpenAPI esg/sri_bond_info)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.Stock", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("단축코드");
|
|
|
+
|
|
|
+ b.Property<string>("CorpCode")
|
|
|
+ .HasMaxLength(8)
|
|
|
+ .HasColumnType("nchar(8)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("DART 고유번호");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("DelistedDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<string>("EnglishName")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<string>("ISIN")
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nchar(12)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("표준코드");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<decimal?>("LastChangeRate")
|
|
|
+ .HasPrecision(7, 2)
|
|
|
+ .HasColumnType("decimal(7,2)");
|
|
|
+
|
|
|
+ b.Property<int?>("LastClosePrice")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("LastTradingDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("ListedDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<byte>("Market")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("시장 구분 (1=KOSPI, 2=KOSDAQ, 3=KONEX)");
|
|
|
+
|
|
|
+ b.Property<long?>("MarketCap")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)");
|
|
|
+
|
|
|
+ b.Property<string>("SectorName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)");
|
|
|
+
|
|
|
+ b.Property<byte>("TradingStatus")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("거래 상태 (0=정상, 1=거래정지, 2=관리종목)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("CorpCode");
|
|
|
+
|
|
|
+ b.HasIndex("ISIN")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[ISIN] IS NOT NULL");
|
|
|
+
|
|
|
+ b.HasIndex("Name");
|
|
|
+
|
|
|
+ b.HasIndex("Market", "IsActive");
|
|
|
+
|
|
|
+ b.ToTable("Stock", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("종목 마스터 (KRX 상장종목)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.StockBoardStats", b =>
|
|
|
+ {
|
|
|
+ b.Property<string>("StockCode")
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nchar(6)")
|
|
|
+ .IsFixedLength()
|
|
|
+ .HasComment("종목 단축코드 (PK)");
|
|
|
+
|
|
|
+ b.Property<int>("Comments")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("댓글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("LastPostAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("마지막 글 작성 일시");
|
|
|
+
|
|
|
+ b.Property<int>("Posts")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게시글 수");
|
|
|
+
|
|
|
+ b.Property<DateTime>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("갱신 일시");
|
|
|
+
|
|
|
+ b.HasKey("StockCode");
|
|
|
+
|
|
|
+ b.ToTable("StockBoardStats", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("종목 가상보드 통계 (글/댓글 수)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.StockDailyPrice", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("ChangeAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeRate")
|
|
|
+ .HasPrecision(7, 2)
|
|
|
+ .HasColumnType("decimal(7,2)")
|
|
|
+ .HasComment("등락률 %");
|
|
|
+
|
|
|
+ b.Property<int>("Close")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("High")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<long?>("ListedShares")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<int>("Low")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<long?>("MarketCap")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<int>("Open")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("StockID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradingDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradingValue")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("StockID", "TradingDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("TradingDate", "ChangeRate")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.HasIndex("TradingDate", "TradingValue")
|
|
|
+ .IsDescending(false, true);
|
|
|
+
|
|
|
+ b.ToTable("StockDailyPrice", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("T+1 일별 마감 시세 (금융위 API)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.WarrantDailyTrade", b =>
|
|
|
+ {
|
|
|
+ b.Property<long>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bigint");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("ID"));
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeAmount")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("전일 대비");
|
|
|
+
|
|
|
+ b.Property<decimal>("ChangeRate")
|
|
|
+ .HasPrecision(7, 2)
|
|
|
+ .HasColumnType("decimal(7,2)")
|
|
|
+ .HasComment("등락률 %");
|
|
|
+
|
|
|
+ b.Property<decimal>("Close")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("종가");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(12)
|
|
|
+ .HasColumnType("nvarchar(12)")
|
|
|
+ .HasComment("단축코드 (ISU_CD) — 8자리 영숫자");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("DelistDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("상장폐지일 (증서, DELIST_DD)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("ExerciseEndDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("행사 종료일 (증권, EXST_END_DD)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("ExercisePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("행사가 (증권, EXER_PRC)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("ExerciseStartDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("행사 시작일 (증권, EXST_STRT_DD)");
|
|
|
+
|
|
|
+ b.Property<decimal>("High")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("고가");
|
|
|
+
|
|
|
+ b.Property<decimal?>("IssuePrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("발행가 (증서, ISU_PRC)");
|
|
|
+
|
|
|
+ b.Property<long?>("ListedShares")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("상장증권수");
|
|
|
+
|
|
|
+ b.Property<decimal>("Low")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("저가");
|
|
|
+
|
|
|
+ b.Property<byte>("Market")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("시장 구분 (1=KOSPI, 2=KOSDAQ, 3=KONEX)");
|
|
|
+
|
|
|
+ b.Property<long?>("MarketCap")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("시가총액 (원)");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("종목명");
|
|
|
+
|
|
|
+ b.Property<decimal>("Open")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("시가");
|
|
|
+
|
|
|
+ b.Property<string>("TargetStockCode")
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nvarchar(6)")
|
|
|
+ .HasComment("대상주식 단축코드 (TARSTK_ISU_SRT_CD)");
|
|
|
+
|
|
|
+ b.Property<string>("TargetStockName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("대상주식명 (TARSTK_ISU_NM)");
|
|
|
+
|
|
|
+ b.Property<decimal?>("TargetStockPrice")
|
|
|
+ .HasPrecision(18, 2)
|
|
|
+ .HasColumnType("decimal(18,2)")
|
|
|
+ .HasComment("대상주식 현재가 (TARSTK_ISU_PRSNT_PRC)");
|
|
|
+
|
|
|
+ b.Property<DateOnly>("TradeDate")
|
|
|
+ .HasColumnType("date");
|
|
|
+
|
|
|
+ b.Property<long>("TradeValue")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래대금 (원)");
|
|
|
+
|
|
|
+ b.Property<long>("Volume")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("거래량");
|
|
|
+
|
|
|
+ b.Property<byte>("WarrantType")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("신주인수권 구분 (1=증권, 2=증서)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("WarrantType", "Code", "TradeDate")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("WarrantType", "TradeDate", "TradeValue")
|
|
|
+ .IsDescending(false, false, true);
|
|
|
+
|
|
|
+ b.ToTable("WarrantDailyTrade", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("신주인수권증권/증서 일별매매 시세 (KRX OpenAPI sto sw/sr)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Coupon", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게임 ID (필수)");
|
|
|
+
|
|
|
+ b.Property<int>("GeneratedCount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("LowStockThreshold")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(10);
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)");
|
|
|
+
|
|
|
+ b.Property<int>("ProductID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("UsagePolicy")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("UsedCount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("GameID");
|
|
|
+
|
|
|
+ b.HasIndex("ProductID");
|
|
|
+
|
|
|
+ b.ToTable("Coupon", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("쿠폰 메타 (코드 풀의 상위)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.CouponCode", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("코드 평문 (사용자 표시용)");
|
|
|
+
|
|
|
+ b.Property<string>("CodeHash")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)")
|
|
|
+ .HasComment("SHA-256 hex (UNIQUE, 조회용)");
|
|
|
+
|
|
|
+ b.Property<int>("CouponID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("IssuedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int?>("IssuedToMemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("상태 (1=Available, 2=Reserved, 3=Issued, 4=Used)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UsedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CodeHash")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IssuedToMemberID");
|
|
|
+
|
|
|
+ b.HasIndex("CouponID", "Status");
|
|
|
+
|
|
|
+ b.ToTable("CouponCode", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("쿠폰 코드 풀 (Code 평문 + CodeHash SHA-256 hex)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Game", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("BigImage")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("큰 이미지 (상세/배너용)");
|
|
|
+
|
|
|
+ b.Property<string>("Code")
|
|
|
+ .HasMaxLength(6)
|
|
|
+ .HasColumnType("nvarchar(6)")
|
|
|
+ .HasComment("게임 코드 (UNIQUE, 외부 연동/내부 식별)");
|
|
|
+
|
|
|
+ b.Property<decimal>("CommissionRate")
|
|
|
+ .HasPrecision(10, 7)
|
|
|
+ .HasColumnType("decimal(10,7)")
|
|
|
+ .HasComment("게임사 수익률(%) — 0~100, 소수점 7자리");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Description")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("게임 소개 (CKEditor HTML)");
|
|
|
+
|
|
|
+ b.Property<string>("EngName")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("게임 영문명");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("KorName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("게임 한글명");
|
|
|
+
|
|
|
+ b.Property<string>("Link")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("게임 다운로드/공식 사이트 주소");
|
|
|
+
|
|
|
+ b.Property<string>("MinSpec")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("최소 사양 (자유 텍스트)");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Publisher")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("게임사/퍼블리셔");
|
|
|
+
|
|
|
+ b.Property<string>("RecommendedSpec")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("권장 사양 (자유 텍스트)");
|
|
|
+
|
|
|
+ b.Property<DateOnly?>("ReleaseDate")
|
|
|
+ .HasColumnType("date")
|
|
|
+ .HasComment("게임 출시일");
|
|
|
+
|
|
|
+ b.Property<string>("Thumbnail")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("작은 이미지 (목록 카드용)");
|
|
|
+
|
|
|
+ b.Property<string>("TrailerUrl")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("YouTube 예고편 URL");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Code")
|
|
|
+ .IsUnique()
|
|
|
+ .HasFilter("[Code] IS NOT NULL");
|
|
|
+
|
|
|
+ b.HasIndex("KorName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive", "Order");
|
|
|
+
|
|
|
+ b.ToTable("Game", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("상점 제휴 게임");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameCategory", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("EngName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("카테고리 영문명");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("KorName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("카테고리 한글명");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("KorName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive", "Order");
|
|
|
+
|
|
|
+ b.ToTable("GameCategory", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임 카테고리 코드");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameCategoryMap", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("GameCategoryID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("GameID", "GameCategoryID");
|
|
|
+
|
|
|
+ b.HasIndex("GameCategoryID");
|
|
|
+
|
|
|
+ b.ToTable("GameCategoryMap", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임-카테고리 N:M");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameGenre", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("EngName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("장르 영문명");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("KorName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("장르 한글명");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("KorName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive", "Order");
|
|
|
+
|
|
|
+ b.ToTable("GameGenre", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임 장르 코드");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameGenreMap", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("GameGenreID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("GameID", "GameGenreID");
|
|
|
+
|
|
|
+ b.HasIndex("GameGenreID");
|
|
|
+
|
|
|
+ b.ToTable("GameGenreMap", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임-장르 N:M");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameImage", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("PK");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("ContentType")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("MIME");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DisabledAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("비활성 일시");
|
|
|
+
|
|
|
+ b.Property<string>("Extension")
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasComment("확장자");
|
|
|
+
|
|
|
+ b.Property<string>("FileName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("원본 파일명");
|
|
|
+
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("HashedName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasComment("저장 파일명(해시)");
|
|
|
+
|
|
|
+ b.Property<short?>("Height")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("세로 픽셀");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDisabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("비활성 여부");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("정렬 순서");
|
|
|
+
|
|
|
+ b.Property<string>("Path")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)")
|
|
|
+ .HasComment("상대 경로");
|
|
|
+
|
|
|
+ b.Property<long?>("Size")
|
|
|
+ .HasColumnType("bigint")
|
|
|
+ .HasComment("바이트 크기");
|
|
|
+
|
|
|
+ b.Property<Guid>("UUID")
|
|
|
+ .HasColumnType("uniqueidentifier")
|
|
|
+ .HasComment("UUID");
|
|
|
+
|
|
|
+ b.Property<string>("Url")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasComment("접근 URL");
|
|
|
+
|
|
|
+ b.Property<short?>("Width")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasComment("가로 픽셀");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("GameID");
|
|
|
+
|
|
|
+ b.HasIndex("UUID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("GameID", "IsDisabled");
|
|
|
+
|
|
|
+ b.ToTable("GameImage", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임 상세 이미지 갤러리");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameLanguage", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("EngName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("언어 영문명");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<string>("KorName")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasComment("언어 한글명");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("KorName")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("IsActive", "Order");
|
|
|
+
|
|
|
+ b.ToTable("GameLanguage", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임 지원 언어 마스터");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameLanguageSupport", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("GameLanguageID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<bool>("FullAudio")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("풀 오디오(음성) 지원");
|
|
|
+
|
|
|
+ b.Property<bool>("Interface")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("인터페이스 지원");
|
|
|
+
|
|
|
+ b.Property<bool>("Subtitles")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("자막 지원");
|
|
|
+
|
|
|
+ b.HasKey("GameID", "GameLanguageID");
|
|
|
+
|
|
|
+ b.HasIndex("GameLanguageID");
|
|
|
+
|
|
|
+ b.ToTable("GameLanguageSupport", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임별 언어 지원 (인터페이스/풀오디오/자막)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameSettlement", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AdminMemo")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("GameID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Month")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("OrderCount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("SettledAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("SettledByAdminEmail")
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)");
|
|
|
+
|
|
|
+ b.Property<string>("SettledByAdminUserId")
|
|
|
+ .HasMaxLength(450)
|
|
|
+ .HasColumnType("nvarchar(450)");
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("정산 상태 (1=Pending, 2=Settled)");
|
|
|
+
|
|
|
+ b.Property<int>("TotalRevenueAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Year")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("GameID", "Year", "Month")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Year", "Month", "Status");
|
|
|
+
|
|
|
+ b.ToTable("GameSettlement", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("게임사 월별 정산 큐");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.MemberAddress", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Address1_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("기본 주소 (암호화)");
|
|
|
+
|
|
|
+ b.Property<string>("Address2_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("상세 주소 (암호화)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("IsDefault")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<int>("KeyVersion")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("암호화 키 버전");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Phone_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("연락처 (암호화)");
|
|
|
+
|
|
|
+ b.Property<string>("RecipientName_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("수령인명 (암호화)");
|
|
|
+
|
|
|
+ b.Property<string>("RecipientName_Hash")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(64)
|
|
|
+ .HasColumnType("nvarchar(64)")
|
|
|
+ .HasComment("수령인명 SHA-256 hex (검색용)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("ZipCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("RecipientName_Hash");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "IsDefault");
|
|
|
+
|
|
|
+ b.ToTable("MemberAddress", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 배송 주소 (AES-GCM 암호화)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.MemberInventory", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("AcquiredAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("CouponCodeID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeletedAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("사용자 보관함 소프트 삭제 일시. NULL = 보관함 노출");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ExpiresAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("OrderItemID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UsedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CouponCodeID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("OrderItemID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "DeletedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "UsedAt");
|
|
|
+
|
|
|
+ b.ToTable("MemberInventory", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 보관함 (Digital 상품)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Order", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("CancelReason")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<int?>("ChannelID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("후원 채널 (선택)");
|
|
|
+
|
|
|
+ b.Property<int>("ChannelRewardAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("채널주 채널 보상 입금 금액 (비활성 — 과거 주문 호환)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("GameRevenueAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게임사 정산 큐 적재 금액");
|
|
|
+
|
|
|
+ b.Property<string>("GiftMessage")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("선물 메시지");
|
|
|
+
|
|
|
+ b.Property<int?>("GiftToMemberID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("선물 수신자 회원 ID (null=본인구매)");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("OrderNumber")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasComment("주문 번호 (UNIQUE)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("PaidAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("PlatformFeeAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("dpot 몫");
|
|
|
+
|
|
|
+ b.Property<string>("RefundReason")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("주문 상태");
|
|
|
+
|
|
|
+ b.Property<int>("TotalAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("총 결제 금액");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("ChannelID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderNumber")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Status", "CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID", "Status", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("Order", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("상점 주문 헤더");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderItem", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int?>("IssuedCouponCodeID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("Digital 상품 발급 쿠폰 코드");
|
|
|
+
|
|
|
+ b.Property<int>("OrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("ProductID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Quantity")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("UnitPrice")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("주문 시점 상품 단가 스냅샷");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("IssuedCouponCodeID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID");
|
|
|
+
|
|
|
+ b.HasIndex("ProductID");
|
|
|
+
|
|
|
+ b.ToTable("OrderItem", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("주문 라인");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderRefund", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("AdminEmail")
|
|
|
+ .HasMaxLength(256)
|
|
|
+ .HasColumnType("nvarchar(256)");
|
|
|
+
|
|
|
+ b.Property<string>("AdminMemo")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("AdminUserId")
|
|
|
+ .HasMaxLength(450)
|
|
|
+ .HasColumnType("nvarchar(450)");
|
|
|
+
|
|
|
+ b.Property<int>("Amount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("OrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<int>("ReasonType")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(7)
|
|
|
+ .HasComment("사유 유형 (1=ChangedMind, 2=OptionChange, 3=ProductDefect, 4=ProductInfoMismatch, 5=DeliveryDelay, 6=WrongDelivery, 7=Other)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("RequestedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ResolvedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("상태 (1=Requested, 2=Approved, 3=Rejected, 4=Completed)");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("유형 (1=Cancel, 2=Return, 3=Exchange, 4=Refund)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID", "Status");
|
|
|
+
|
|
|
+ b.ToTable("OrderRefund", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("통합 환불 이력 (취소/반품/교환/환불)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderRefundItem", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("CouponCodeID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("OrderItemID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("OrderRefundID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("PostRefundAction")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("쿠폰 후처리 (1=Restore 회수, 2=Expire 만료)");
|
|
|
+
|
|
|
+ b.Property<int>("UnitAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("환불 단가 스냅샷");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CouponCodeID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("OrderItemID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderRefundID");
|
|
|
+
|
|
|
+ b.ToTable("OrderRefundItem", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("환불 단위 — 쿠폰 별 후처리(회수/만료) 정책. OrderRefund 1:N");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Product", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Description")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<byte>("DiscountType")
|
|
|
+ .HasColumnType("tinyint");
|
|
|
+
|
|
|
+ b.Property<int>("DiscountValue")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("DurationDays")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(0)
|
|
|
+ .HasComment("아이템 효과 지속일 (0=즉시소모/영구)");
|
|
|
+
|
|
|
+ b.Property<string>("EffectPayload")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasComment("지위 아이템 효과 페이로드 JSON (색상·아이콘·애니메이션)");
|
|
|
+
|
|
|
+ b.Property<int?>("GameID")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("게임 ID (선택 — null=플랫폼 직접판매)");
|
|
|
+
|
|
|
+ b.Property<bool>("IsActive")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b.Property<bool>("IsGiftable")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasDefaultValue(false)
|
|
|
+ .HasComment("선물하기 가능 여부");
|
|
|
+
|
|
|
+ b.Property<byte?>("ItemKind")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasComment("아이템 종류 (null=일반상품, 2~4=지위, 5~11=소모품)");
|
|
|
+
|
|
|
+ b.Property<int>("MaxPurchase")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(999)
|
|
|
+ .HasComment("1회 주문 최대 구매 수량 (하드 상한 999)");
|
|
|
+
|
|
|
+ b.Property<int>("MinPurchase")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(1)
|
|
|
+ .HasComment("1회 주문 최소 구매 수량");
|
|
|
+
|
|
|
+ b.Property<string>("Name")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasComment("상품명");
|
|
|
+
|
|
|
+ b.Property<int>("Order")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("Price")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("판매가 (KRW)");
|
|
|
+
|
|
|
+ b.Property<bool>("RequireDonationChannel")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasDefaultValue(false)
|
|
|
+ .HasComment("구매 시 후원 채널 선택 필수 여부");
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("SaleEndAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("SaleStartAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("Stock")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("재고 (-1=무제한)");
|
|
|
+
|
|
|
+ b.Property<string>("Thumbnail")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("상품 유형 (1=Physical, 2=Digital)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("IsActive", "Type");
|
|
|
+
|
|
|
+ b.HasIndex("ItemKind", "IsActive");
|
|
|
+
|
|
|
+ b.HasIndex("GameID", "IsActive", "Order");
|
|
|
+
|
|
|
+ b.ToTable("Product", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("상점 상품");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.ProductLimitConfig", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ProductID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MaxQuantity")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("회원당 누적 최대 구매 수량 (0=무제한)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("PeriodEndAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("Custom 시 절대 윈도우 종료 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("PeriodStartAt")
|
|
|
+ .HasColumnType("datetime2")
|
|
|
+ .HasComment("Custom 시 절대 윈도우 시작 시각 (UTC)");
|
|
|
+
|
|
|
+ b.Property<int>("PeriodType")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasComment("기간 유형 (0=None, 1=Day, 2=Week, 3=Month, 4=Custom)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<bool>("UsePeriodLimit")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("기간 제한 사용 여부");
|
|
|
+
|
|
|
+ b.Property<bool>("UseQuantityLimit")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasComment("수량 제한 사용 여부");
|
|
|
+
|
|
|
+ b.HasKey("ProductID");
|
|
|
+
|
|
|
+ b.ToTable("ProductLimitConfig", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("상품 판매 정책 (1:1 with Product)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Shipment", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<string>("Address1_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("Address2_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("AdminMemo")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("Carrier")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("DeliveredAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("KeyVersion")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<int>("OrderID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("Phone_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<string>("RecipientName_Encrypted")
|
|
|
+ .IsRequired()
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("ShippedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("ShippingFee")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(0);
|
|
|
+
|
|
|
+ b.Property<int>("Status")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("TrackingNumber")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)");
|
|
|
+
|
|
|
+ b.Property<string>("ZipCode")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("OrderID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("Status");
|
|
|
+
|
|
|
+ b.HasIndex("TrackingNumber");
|
|
|
+
|
|
|
+ b.ToTable("Shipment", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("배송 (주문 시점 주소 스냅샷, 암호화)");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<int>("MemberID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime?>("UpdatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<Guid>("WalletKey")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("MemberID")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.HasIndex("WalletKey")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("Wallet", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 지갑");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.WalletBalance", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<byte[]>("RowVersion")
|
|
|
+ .IsConcurrencyToken()
|
|
|
+ .IsRequired()
|
|
|
+ .ValueGeneratedOnAddOrUpdate()
|
|
|
+ .HasColumnType("rowversion");
|
|
|
+
|
|
|
+ b.Property<int>("Type")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<Guid>("WalletKey")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("WalletKey", "Type")
|
|
|
+ .IsUnique();
|
|
|
+
|
|
|
+ b.ToTable("WalletBalance", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 지갑 잔액");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.WalletTransaction", b =>
|
|
|
+ {
|
|
|
+ b.Property<int>("ID")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("ID"));
|
|
|
+
|
|
|
+ b.Property<int>("BalanceType")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<DateTime>("CreatedAt")
|
|
|
+ .HasColumnType("datetime2");
|
|
|
+
|
|
|
+ b.Property<string>("Memo")
|
|
|
+ .HasMaxLength(500)
|
|
|
+ .HasColumnType("nvarchar(500)");
|
|
|
+
|
|
|
+ b.Property<string>("Reason")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)");
|
|
|
+
|
|
|
+ b.Property<string>("RefID")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)");
|
|
|
+
|
|
|
+ b.Property<int>("TxType")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b.Property<string>("UserID")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)");
|
|
|
+
|
|
|
+ b.Property<Guid>("WalletKey")
|
|
|
+ .HasColumnType("uniqueidentifier");
|
|
|
+
|
|
|
+ b.HasKey("ID");
|
|
|
+
|
|
|
+ b.HasIndex("CreatedAt");
|
|
|
+
|
|
|
+ b.HasIndex("WalletKey");
|
|
|
+
|
|
|
+ b.HasIndex("WalletKey", "CreatedAt");
|
|
|
+
|
|
|
+ b.ToTable("WalletTransaction", null, t =>
|
|
|
+ {
|
|
|
+ t.HasComment("회원 거래 장부");
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Chat.ChatBan", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", null)
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Common.Config", b =>
|
|
|
+ {
|
|
|
+ b.OwnsOne("Domain.Entities.Common.AccountConfig", "Account", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangeEmailDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangeEmailDay")
|
|
|
+ .HasComment("이메일 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangeIntroDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangeIntroDay")
|
|
|
+ .HasComment("자기소개 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangeNameDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangeNameDay")
|
|
|
+ .HasComment("별명 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangePasswordDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangePasswordDay")
|
|
|
+ .HasComment("비밀번호 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangeSummaryDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangeSummaryDay")
|
|
|
+ .HasComment("한마디 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<int?>("ChangeThumbDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_ChangeThumbDay")
|
|
|
+ .HasComment("프로필 이미지 갱신 주기(일)");
|
|
|
+
|
|
|
+ b1.Property<string>("DeniedEmailList")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Account_DeniedEmailList")
|
|
|
+ .HasComment("금지 이메일");
|
|
|
+
|
|
|
+ b1.Property<string>("DeniedNameList")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Account_DeniedNameList")
|
|
|
+ .HasComment("금지 별명");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsLoginEmailVerifiedOnly")
|
|
|
+ .HasColumnType("bit");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsRegisterBlock")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Account_IsRegisterBlock")
|
|
|
+ .HasComment("회원가입 차단");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsRegisterEmailAuth")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Account_IsRegisterEmailAuth")
|
|
|
+ .HasComment("회원가입 시 이메일 인증");
|
|
|
+
|
|
|
+ b1.Property<int?>("MaxLoginTryCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_MaxLoginTryCount")
|
|
|
+ .HasComment("로그인 시도 제한 횟수");
|
|
|
+
|
|
|
+ b1.Property<int?>("MaxLoginTryLimitSecond")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_MaxLoginTryLimitSecond")
|
|
|
+ .HasComment("로그인 시도 제한 시간(초)");
|
|
|
+
|
|
|
+ b1.Property<int?>("PasswordMinLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_PasswordMinLength")
|
|
|
+ .HasComment("비밀번호 최소 길이");
|
|
|
+
|
|
|
+ b1.Property<int?>("PasswordNumbersLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_PasswordNumbersLength")
|
|
|
+ .HasComment("비밀번호 최소 숫자 수");
|
|
|
+
|
|
|
+ b1.Property<int?>("PasswordSpecialcharsLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_PasswordSpecialcharsLength")
|
|
|
+ .HasComment("비밀번호 최소 특수문자 수");
|
|
|
+
|
|
|
+ b1.Property<int?>("PasswordUppercaseLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Account_PasswordUppercaseLength")
|
|
|
+ .HasComment("비밀번호 최소 대문자 수");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.AttendanceConfig", "Attendance", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("BaseExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Attendance_BaseExp")
|
|
|
+ .HasComment("기본 경험치");
|
|
|
+
|
|
|
+ b1.Property<int>("BasePoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Attendance_BasePoint")
|
|
|
+ .HasComment("기본 포인트");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsEnabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Attendance_IsEnabled")
|
|
|
+ .HasComment("출석 기능 활성화");
|
|
|
+
|
|
|
+ b1.Property<string>("RankBonusConfig")
|
|
|
+ .HasMaxLength(2000)
|
|
|
+ .HasColumnType("nvarchar(2000)")
|
|
|
+ .HasColumnName("Attendance_RankBonusConfig")
|
|
|
+ .HasComment("순위별 보상 설정 (JSON)");
|
|
|
+
|
|
|
+ b1.Property<int>("StreakBonusMaxDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Attendance_StreakBonusMaxDays")
|
|
|
+ .HasComment("가중치 최대 적용 일수");
|
|
|
+
|
|
|
+ b1.Property<int>("StreakBonusPerDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Attendance_StreakBonusPerDay")
|
|
|
+ .HasComment("1일당 추가 경험치");
|
|
|
+
|
|
|
+ b1.Property<int>("StreakBonusPointPerDay")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Attendance_StreakBonusPointPerDay")
|
|
|
+ .HasComment("1일당 추가 포인트");
|
|
|
+
|
|
|
+ b1.Property<bool>("UseRankBonus")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Attendance_UseRankBonus")
|
|
|
+ .HasComment("순위 보상 사용");
|
|
|
+
|
|
|
+ b1.Property<bool>("UseStreakBonus")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Attendance_UseStreakBonus")
|
|
|
+ .HasComment("연속 출석 가중치 사용");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.BasicConfig", "Basic", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("AdminWhiteIPList")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasColumnName("Basic_AdminWhiteIPList")
|
|
|
+ .HasComment("관리자단 접근 가능 IP");
|
|
|
+
|
|
|
+ b1.Property<string>("BlockAlertContent")
|
|
|
+ .HasMaxLength(5000)
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Basic_BlockAlertContent")
|
|
|
+ .HasComment("차단 시 안내문 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("BlockAlertTitle")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasColumnName("Basic_BlockAlertTitle")
|
|
|
+ .HasComment("차단 시 안내문 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("FromEmail")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Basic_FromEmail")
|
|
|
+ .HasComment("송수신 이메일");
|
|
|
+
|
|
|
+ b1.Property<string>("FromName")
|
|
|
+ .HasMaxLength(30)
|
|
|
+ .HasColumnType("nvarchar(30)")
|
|
|
+ .HasColumnName("Basic_FromName")
|
|
|
+ .HasComment("송수신자 이름");
|
|
|
+
|
|
|
+ b1.Property<string>("FrontWhiteIPList")
|
|
|
+ .HasMaxLength(1000)
|
|
|
+ .HasColumnType("nvarchar(1000)")
|
|
|
+ .HasColumnName("Basic_FrontWhiteIPList")
|
|
|
+ .HasComment("사용자단 접근 가능 IP");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsMaintenance")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Basic_IsMaintenance")
|
|
|
+ .HasComment("점검 여부");
|
|
|
+
|
|
|
+ b1.Property<string>("MaintenanceContent")
|
|
|
+ .HasMaxLength(5000)
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Basic_MaintenanceContent")
|
|
|
+ .HasComment("점검 내용");
|
|
|
+
|
|
|
+ b1.Property<int>("NoteDailySendLimit")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(3)
|
|
|
+ .HasColumnName("Basic_NoteDailySendLimit")
|
|
|
+ .HasComment("쪽지 일일 발송 제한 (사용자 1인당, 시스템 제외)");
|
|
|
+
|
|
|
+ b1.Property<string>("RootID")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Basic_RootID")
|
|
|
+ .HasComment("최고 관리자 ID");
|
|
|
+
|
|
|
+ b1.Property<string>("SiteName")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Basic_SiteName")
|
|
|
+ .HasComment("사이트 이름");
|
|
|
+
|
|
|
+ b1.Property<string>("SiteURL")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Basic_SiteURL")
|
|
|
+ .HasComment("사이트 주소");
|
|
|
+
|
|
|
+ b1.Property<bool>("SmtpEnableSSL")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Basic_SmtpEnableSSL")
|
|
|
+ .HasComment("SMTP Enable SSL");
|
|
|
+
|
|
|
+ b1.Property<string>("SmtpPassword")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasColumnName("Basic_SmtpPassword")
|
|
|
+ .HasComment("SMTP Password");
|
|
|
+
|
|
|
+ b1.Property<int?>("SmtpPort")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Basic_SmtpPort")
|
|
|
+ .HasComment("SMTP Port");
|
|
|
+
|
|
|
+ b1.Property<string>("SmtpServer")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasColumnName("Basic_SmtpServer")
|
|
|
+ .HasComment("SMTP Server");
|
|
|
+
|
|
|
+ b1.Property<string>("SmtpUsername")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Basic_SmtpUsername")
|
|
|
+ .HasComment("SMTP Username");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ChatExpConfig", "ChatExp", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("ChatXpPerMessage")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(1)
|
|
|
+ .HasColumnName("ChatExp_ChatXpPerMessage")
|
|
|
+ .HasComment("채팅 1건당 지급 XP");
|
|
|
+
|
|
|
+ b1.Property<int>("ChatXpSessionLimit")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(50)
|
|
|
+ .HasColumnName("ChatExp_ChatXpSessionLimit")
|
|
|
+ .HasComment("방송 세션당 채팅 XP 상한");
|
|
|
+
|
|
|
+ b1.Property<int>("CrownTopN")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(3)
|
|
|
+ .HasColumnName("ChatExp_CrownTopN")
|
|
|
+ .HasComment("크라운 뱃지 Top N");
|
|
|
+
|
|
|
+ b1.Property<int>("DonationXpPerAmount")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(1000)
|
|
|
+ .HasColumnName("ChatExp_DonationXpPerAmount")
|
|
|
+ .HasComment("후원 N POINT당 1 XP");
|
|
|
+
|
|
|
+ b1.Property<int>("LeaderboardSize")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(50)
|
|
|
+ .HasColumnName("ChatExp_LeaderboardSize")
|
|
|
+ .HasComment("리더보드 Top N");
|
|
|
+
|
|
|
+ b1.Property<int>("MinContentLength")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(2)
|
|
|
+ .HasColumnName("ChatExp_MinContentLength")
|
|
|
+ .HasComment("XP 적립 최소 글자수");
|
|
|
+
|
|
|
+ b1.Property<int>("RateLimitSec")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(2)
|
|
|
+ .HasColumnName("ChatExp_RateLimitSec")
|
|
|
+ .HasComment("채팅 쿨다운(초)");
|
|
|
+
|
|
|
+ b1.Property<bool>("UxShowLeaderboard")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("ChatExp_UxShowLeaderboard")
|
|
|
+ .HasComment("watch에서 리더보드 노출");
|
|
|
+
|
|
|
+ b1.Property<bool>("UxShowMyXpBadge")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("ChatExp_UxShowMyXpBadge")
|
|
|
+ .HasComment("내 XP 뱃지 노출");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.CompanyConfig", "Company", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("AddedSaleNo")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasColumnName("Company_AddedSaleNo")
|
|
|
+ .HasComment("부가통신 사업자번호");
|
|
|
+
|
|
|
+ b1.Property<string>("Address")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Company_Address")
|
|
|
+ .HasComment("사업장 소재지");
|
|
|
+
|
|
|
+ b1.Property<string>("AdminEmail")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Company_AdminEmail")
|
|
|
+ .HasComment("정보관리책임자 이메일");
|
|
|
+
|
|
|
+ b1.Property<string>("AdminName")
|
|
|
+ .HasMaxLength(70)
|
|
|
+ .HasColumnType("nvarchar(70)")
|
|
|
+ .HasColumnName("Company_AdminName")
|
|
|
+ .HasComment("정보관리책임자");
|
|
|
+
|
|
|
+ b1.Property<string>("BankCode")
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasColumnName("Company_BankCode")
|
|
|
+ .HasComment("입금계좌 - 은행");
|
|
|
+
|
|
|
+ b1.Property<string>("BankNumber")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Company_BankNumber")
|
|
|
+ .HasComment("입금계좌 - 계좌번호");
|
|
|
+
|
|
|
+ b1.Property<string>("BankOwner")
|
|
|
+ .HasMaxLength(70)
|
|
|
+ .HasColumnType("nvarchar(70)")
|
|
|
+ .HasColumnName("Company_BankOwner")
|
|
|
+ .HasComment("입금계좌 - 예금주");
|
|
|
+
|
|
|
+ b1.Property<string>("Fax")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasColumnName("Company_Fax")
|
|
|
+ .HasComment("FAX");
|
|
|
+
|
|
|
+ b1.Property<string>("Hosting")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Company_Hosting")
|
|
|
+ .HasComment("호스팅 서비스");
|
|
|
+
|
|
|
+ b1.Property<string>("Name")
|
|
|
+ .HasMaxLength(70)
|
|
|
+ .HasColumnType("nvarchar(70)")
|
|
|
+ .HasColumnName("Company_Name")
|
|
|
+ .HasComment("상호 명");
|
|
|
+
|
|
|
+ b1.Property<string>("Owner")
|
|
|
+ .HasMaxLength(50)
|
|
|
+ .HasColumnType("nvarchar(50)")
|
|
|
+ .HasColumnName("Company_Owner")
|
|
|
+ .HasComment("대표자 명");
|
|
|
+
|
|
|
+ b1.Property<string>("RegNo")
|
|
|
+ .HasMaxLength(100)
|
|
|
+ .HasColumnType("nvarchar(100)")
|
|
|
+ .HasColumnName("Company_RegNo")
|
|
|
+ .HasComment("사업자 등록 번호");
|
|
|
+
|
|
|
+ b1.Property<string>("RetailSaleNo")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasColumnName("Company_RetailSaleNo")
|
|
|
+ .HasComment("통신판매업 신고번호");
|
|
|
+
|
|
|
+ b1.Property<string>("SiteUrl")
|
|
|
+ .HasMaxLength(200)
|
|
|
+ .HasColumnType("nvarchar(200)")
|
|
|
+ .HasColumnName("Company_SiteUrl")
|
|
|
+ .HasComment("사이트 주소");
|
|
|
+
|
|
|
+ b1.Property<string>("Tel")
|
|
|
+ .HasMaxLength(20)
|
|
|
+ .HasColumnType("nvarchar(20)")
|
|
|
+ .HasColumnName("Company_Tel")
|
|
|
+ .HasComment("대표 전화번호");
|
|
|
+
|
|
|
+ b1.Property<string>("ZipCode")
|
|
|
+ .HasMaxLength(8)
|
|
|
+ .HasColumnType("nvarchar(8)")
|
|
|
+ .HasColumnName("Company_ZipCode")
|
|
|
+ .HasComment("사업장 주소(우편번호)");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.CryptoConfig", "Crypto", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("MainPageCoinCount")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasDefaultValue(10)
|
|
|
+ .HasColumnName("Crypto_MainPageCoinCount")
|
|
|
+ .HasComment("메인 페이지 기본 표시 코인 수");
|
|
|
+
|
|
|
+ b1.Property<decimal>("PlungeThreshold")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("decimal(5,2)")
|
|
|
+ .HasDefaultValue(-5.0m)
|
|
|
+ .HasColumnName("Crypto_PlungeThreshold")
|
|
|
+ .HasComment("급락 임계값 (%)");
|
|
|
+
|
|
|
+ b1.Property<decimal>("SurgeThreshold")
|
|
|
+ .ValueGeneratedOnAdd()
|
|
|
+ .HasColumnType("decimal(5,2)")
|
|
|
+ .HasDefaultValue(5.0m)
|
|
|
+ .HasColumnName("Crypto_SurgeThreshold")
|
|
|
+ .HasComment("급등 임계값 (%)");
|
|
|
+
|
|
|
+ b1.Property<int>("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<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("ChangedEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ChangedEmailFormContent")
|
|
|
+ .HasComment("이메일 변경 완료 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("ChangedEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ChangedEmailFormTitle")
|
|
|
+ .HasComment("이메일 변경 완료 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("ChangedPasswordEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ChangedPasswordEmailFormContent")
|
|
|
+ .HasComment("비밀번호 변경 완료 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("ChangedPasswordEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ChangedPasswordEmailFormTitle")
|
|
|
+ .HasComment("비밀번호 변경 완료 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("EmailVerifyFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_EmailVerifyFormContent")
|
|
|
+ .HasComment("이메일 변경 시 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("EmailVerifyFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_EmailVerifyFormTitle")
|
|
|
+ .HasComment("이메일 변경 시 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("RegisterEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_RegisterEmailFormContent")
|
|
|
+ .HasComment("회원가입 시 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("RegisterEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_RegisterEmailFormTitle")
|
|
|
+ .HasComment("회원가입 시 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("RegistrationEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_RegistrationEmailFormContent")
|
|
|
+ .HasComment("회원가입 완료 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("RegistrationEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_RegistrationEmailFormTitle")
|
|
|
+ .HasComment("회원가입 완료 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("ResetPasswordEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ResetPasswordEmailFormContent")
|
|
|
+ .HasComment("비밀번호 재설정 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("ResetPasswordEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_ResetPasswordEmailFormTitle")
|
|
|
+ .HasComment("비밀번호 재설정 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("WithdrawEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_WithdrawEmailFormContent")
|
|
|
+ .HasComment("회원탈퇴 시 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("WithdrawEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_WithdrawEmailFormTitle")
|
|
|
+ .HasComment("회원탈퇴 시 - 제목");
|
|
|
+
|
|
|
+ b1.Property<string>("WithdrawVerifyEmailFormContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_WithdrawVerifyEmailFormContent")
|
|
|
+ .HasComment("회원탈퇴 인증 - 내용");
|
|
|
+
|
|
|
+ b1.Property<string>("WithdrawVerifyEmailFormTitle")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("EmailTemplate_WithdrawVerifyEmailFormTitle")
|
|
|
+ .HasComment("회원탈퇴 인증 - 제목");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ExternalApiConfig", "External", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("GoogleAppId")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("External_GoogleAppId")
|
|
|
+ .HasComment("Google APP ID");
|
|
|
+
|
|
|
+ b1.Property<string>("GoogleClientId")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("External_GoogleClientId")
|
|
|
+ .HasComment("Google Client ID");
|
|
|
+
|
|
|
+ b1.Property<string>("GoogleClientSecretEnc")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("External_GoogleClientSecretEnc")
|
|
|
+ .HasComment("Google Client Secret (암호화 저장 권장)");
|
|
|
+
|
|
|
+ b1.Property<string>("TossLiveClientKeyEnc")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("TossLiveSecretKeyEnc")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("TossPayMode")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("TossTestClientKeyEnc")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("TossTestSecretKeyEnc")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("YouTubeApiKeyEnc")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("External_YouTubeApiKeyEnc")
|
|
|
+ .HasComment("YouTube API Key (암호화 저장 권장)");
|
|
|
+
|
|
|
+ b1.Property<string>("YouTubeApiName")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("External_YouTubeApiName")
|
|
|
+ .HasComment("YouTube API Name");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ImagesConfig", "Images", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("AppIcon_192")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_AppIcon_192")
|
|
|
+ .HasComment("App-icon-192");
|
|
|
+
|
|
|
+ b1.Property<string>("AppIcon_512")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_AppIcon_512")
|
|
|
+ .HasComment("App-icon-512");
|
|
|
+
|
|
|
+ b1.Property<string>("AppleTouchIcon")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_AppleTouchIcon")
|
|
|
+ .HasComment("Apple-touch-icon");
|
|
|
+
|
|
|
+ b1.Property<string>("Favicon")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_Favicon")
|
|
|
+ .HasComment("Favicon");
|
|
|
+
|
|
|
+ b1.Property<string>("LogoHorizontal")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_LogoHorizontal")
|
|
|
+ .HasComment("Logo-horizontal");
|
|
|
+
|
|
|
+ b1.Property<string>("LogoSquare")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_LogoSquare")
|
|
|
+ .HasComment("Logo-square");
|
|
|
+
|
|
|
+ b1.Property<string>("OgDefault")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_OgDefault")
|
|
|
+ .HasComment("og-default");
|
|
|
+
|
|
|
+ b1.Property<string>("TwitterImage")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Images_TwitterImage")
|
|
|
+ .HasComment("Twitter-image");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.MetaConfig", "Meta", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("Adds")
|
|
|
+ .HasColumnType("nvarchar(max)");
|
|
|
+
|
|
|
+ b1.Property<string>("ApplicationName")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_ApplicationName")
|
|
|
+ .HasComment("Meta Application Name");
|
|
|
+
|
|
|
+ b1.Property<string>("Author")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Author")
|
|
|
+ .HasComment("Meta Author");
|
|
|
+
|
|
|
+ b1.Property<string>("Description")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Description")
|
|
|
+ .HasComment("Meta Description");
|
|
|
+
|
|
|
+ b1.Property<string>("Generator")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Generator")
|
|
|
+ .HasComment("Meta Generator");
|
|
|
+
|
|
|
+ b1.Property<string>("Keywords")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Keywords")
|
|
|
+ .HasComment("Meta Keywords");
|
|
|
+
|
|
|
+ b1.Property<string>("Robots")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Robots")
|
|
|
+ .HasComment("Meta Robots");
|
|
|
+
|
|
|
+ b1.Property<string>("Viewport")
|
|
|
+ .HasMaxLength(255)
|
|
|
+ .HasColumnType("nvarchar(255)")
|
|
|
+ .HasColumnName("Meta_Viewport")
|
|
|
+ .HasComment("Meta Viewport");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.PaperConfig", "Paper", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("Enabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Paper_Enabled")
|
|
|
+ .HasComment("모의투자 활성화");
|
|
|
+
|
|
|
+ b1.Property<int>("FeeRateBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_FeeRateBp")
|
|
|
+ .HasComment("매매 수수료 Bp");
|
|
|
+
|
|
|
+ b1.Property<int>("MaxHolding")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_MaxHolding")
|
|
|
+ .HasComment("계좌 최대 보유 토큰 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("MinDeposit")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_MinDeposit")
|
|
|
+ .HasComment("최소 입금 토큰");
|
|
|
+
|
|
|
+ b1.Property<int>("MinFillsForRank")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_MinFillsForRank")
|
|
|
+ .HasComment("리더보드 등재 최소 체결 수");
|
|
|
+
|
|
|
+ b1.Property<int>("OrderMaxPctBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_OrderMaxPctBp")
|
|
|
+ .HasComment("1주문 상한 Bp");
|
|
|
+
|
|
|
+ b1.Property<int>("TaxRateBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_TaxRateBp")
|
|
|
+ .HasComment("매도 거래세 Bp");
|
|
|
+
|
|
|
+ b1.Property<int>("WithdrawProfitBurnBp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Paper_WithdrawProfitBurnBp")
|
|
|
+ .HasComment("출금 수익분 소각 Bp");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.RewardConfig", "Reward", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("ChatDailyCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_ChatDailyCount")
|
|
|
+ .HasComment("채팅 보상 일일 횟수 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("ChatDailyExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_ChatDailyExp")
|
|
|
+ .HasComment("채팅 보상 일일 경험치 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("CheerDailyMax")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("CheerFeePercent")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("CheerMinAmount")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentDailyCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_CommentDailyCount")
|
|
|
+ .HasComment("댓글 보상 일일 횟수 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentDailyExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_CommentDailyExp")
|
|
|
+ .HasComment("댓글 보상 일일 경험치 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentDailyPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_CommentDailyPoint")
|
|
|
+ .HasComment("댓글 보상 일일 토큰 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_CommentExp")
|
|
|
+ .HasComment("댓글 작성 지급 경험치");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_CommentPoint")
|
|
|
+ .HasComment("댓글 작성 지급 토큰");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeGivenDailyCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeGivenDailyCount")
|
|
|
+ .HasComment("추천(누른 쪽) 보상 일일 횟수 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeGivenDailyExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeGivenDailyExp")
|
|
|
+ .HasComment("추천(누른 쪽) 보상 일일 경험치 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeGivenExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeGivenExp")
|
|
|
+ .HasComment("추천(누른 쪽) 지급 경험치");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeReceivedDailyCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeReceivedDailyCount")
|
|
|
+ .HasComment("추천(받은 쪽) 보상 일일 횟수 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeReceivedDailyPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeReceivedDailyPoint")
|
|
|
+ .HasComment("추천(받은 쪽) 보상 일일 토큰 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("LikeReceivedPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_LikeReceivedPoint")
|
|
|
+ .HasComment("추천(받은 쪽) 지급 토큰");
|
|
|
+
|
|
|
+ b1.Property<int>("MinCommentLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_MinCommentLength")
|
|
|
+ .HasComment("보상 지급 최소 댓글 길이 (0=제한 없음)");
|
|
|
+
|
|
|
+ b1.Property<int>("MinPostLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_MinPostLength")
|
|
|
+ .HasComment("보상 지급 최소 게시글 길이 (0=제한 없음)");
|
|
|
+
|
|
|
+ b1.Property<int>("NewMemberHoldDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_NewMemberHoldDays")
|
|
|
+ .HasComment("신규 회원 보상 유예 기간(일, 0=유예 없음)");
|
|
|
+
|
|
|
+ b1.Property<int>("PostDailyCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_PostDailyCount")
|
|
|
+ .HasComment("게시글 보상 일일 횟수 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("PostDailyExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_PostDailyExp")
|
|
|
+ .HasComment("게시글 보상 일일 경험치 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("PostDailyPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_PostDailyPoint")
|
|
|
+ .HasComment("게시글 보상 일일 토큰 상한 (0=무제한)");
|
|
|
+
|
|
|
+ b1.Property<int>("PostExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_PostExp")
|
|
|
+ .HasComment("게시글 작성 지급 경험치");
|
|
|
+
|
|
|
+ b1.Property<int>("PostPoint")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Reward_PostPoint")
|
|
|
+ .HasComment("게시글 작성 지급 토큰");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.SignupRewardConfig", "SignupReward", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("ConfigID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("CashAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("SignupReward_CashAmount")
|
|
|
+ .HasComment("지급 캐시 (Adjusted)");
|
|
|
+
|
|
|
+ b1.Property<int>("CoinAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("SignupReward_CoinAmount")
|
|
|
+ .HasComment("지급 코인 (Airdrop)");
|
|
|
+
|
|
|
+ b1.Property<bool>("Enabled")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("SignupReward_Enabled")
|
|
|
+ .HasComment("가입 축하 보상 활성화");
|
|
|
+
|
|
|
+ b1.Property<int>("ExpAmount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("SignupReward_ExpAmount")
|
|
|
+ .HasComment("지급 경험치");
|
|
|
+
|
|
|
+ b1.HasKey("ConfigID");
|
|
|
+
|
|
|
+ b1.ToTable("Config");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("ConfigID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.Navigation("Account")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Attendance")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Basic")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("ChatExp")
|
|
|
+ .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("Paper")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Reward")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("SignupReward")
|
|
|
+ .IsRequired();
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedBookmark", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedBookmark")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedComment", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedComment")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedComment", "Parent")
|
|
|
+ .WithMany("Children")
|
|
|
+ .HasForeignKey("ParentID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Parent");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedCommentLike", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedComment", "FeedComment")
|
|
|
+ .WithMany("FeedCommentLike")
|
|
|
+ .HasForeignKey("FeedCommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedComment");
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedLike", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedLike")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPost", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostImage", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedPostImage")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostMedia", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedPostMedia")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostMention", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedPostMention")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPostTag", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedPost", "FeedPost")
|
|
|
+ .WithMany("FeedPostTag")
|
|
|
+ .HasForeignKey("FeedPostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Feed.FeedTag", "FeedTag")
|
|
|
+ .WithMany("FeedPostTag")
|
|
|
+ .HasForeignKey("FeedTagID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FeedPost");
|
|
|
+
|
|
|
+ b.Navigation("FeedTag");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.Board", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.BoardGroup", "BoardGroup")
|
|
|
+ .WithMany("Board")
|
|
|
+ .HasForeignKey("BoardGroupID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("BoardGroup");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardManager", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany("BoardManager")
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardMeta", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", null)
|
|
|
+ .WithOne("BoardMeta")
|
|
|
+ .HasForeignKey("Domain.Entities.Forum.Boards.BoardMeta", "BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaComment", "Comment", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowDeleteProtection")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_AllowDeleteProtection");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowDisLike")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_AllowDisLike");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowLike")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_AllowLike");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowSecret")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_AllowSecret");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowUpdateProtection")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_AllowUpdateProtection");
|
|
|
+
|
|
|
+ b1.Property<int>("BlameHideCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_BlameHideCount");
|
|
|
+
|
|
|
+ b1.Property<string>("ContentPlaceholder")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Comment_ContentPlaceholder");
|
|
|
+
|
|
|
+ b1.Property<int>("DeleteProtectionDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_DeleteProtectionDays");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableComment")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_EnableComment");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableCommentUpdateLog")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_EnableCommentUpdateLog");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableEditor")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_EnableEditor");
|
|
|
+
|
|
|
+ b1.Property<int>("MaxContentLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_MaxContentLength");
|
|
|
+
|
|
|
+ b1.Property<int>("MinContentLength")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_MinContentLength");
|
|
|
+
|
|
|
+ b1.Property<int>("PerPage")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_PerPage");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberIcon")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_ShowMemberIcon");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberThumb")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Comment_ShowMemberThumb");
|
|
|
+
|
|
|
+ b1.Property<int>("UpdateProtectionDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Comment_UpdateProtectionDays");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaExp", "Exp", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentWriteExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_CommentWriteExp");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentWriteExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_CommentWriteExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("CommentWriteUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_CommentWriteUndoExp");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableExp")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Exp_EnableExp");
|
|
|
+
|
|
|
+ b1.Property<short>("FileDownloadExp")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Exp_FileDownloadExp");
|
|
|
+
|
|
|
+ b1.Property<int>("FileUploadExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_FileUploadExp");
|
|
|
+
|
|
|
+ b1.Property<int>("FileUploadExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_FileUploadExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("FileUploadUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_FileUploadUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentDisLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentDisLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentDisLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentDisLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentDisLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentDisLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherCommentLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherCommentLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostDisLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostDisLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostDisLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostDisLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostDisLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostDisLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<short>("OtherPostReadExp")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Exp_OtherPostReadExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostReadExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostReadExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OtherPostReadUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OtherPostReadUndoExp");
|
|
|
+
|
|
|
+ b1.Property<short>("OwnCommentDisLikeExp")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Exp_OwnCommentDisLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnCommentDisLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnCommentDisLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnCommentDisLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnCommentDisLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnCommentLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnCommentLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnCommentLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnCommentLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnCommentLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnCommentLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<short>("OwnPostDisLikeExp")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Exp_OwnPostDisLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostDisLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostDisLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostDisLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostDisLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostLikeExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostLikeExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostLikeExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostLikeExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostLikeUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostLikeUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostReadExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostReadExp");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostReadExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostReadExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("OwnPostReadUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_OwnPostReadUndoExp");
|
|
|
+
|
|
|
+ b1.Property<int>("PostWriteExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_PostWriteExp");
|
|
|
+
|
|
|
+ b1.Property<int>("PostWriteExpWithinDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_PostWriteExpWithinDays");
|
|
|
+
|
|
|
+ b1.Property<int>("PostWriteUndoExp")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Exp_PostWriteUndoExp");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowExpGuide")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Exp_ShowExpGuide");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaGeneral", "General", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowDeleteProtection")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("General_AllowDeleteProtection");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowUpdateProtection")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("General_AllowUpdateProtection");
|
|
|
+
|
|
|
+ b1.Property<int>("DeleteProtectionDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("General_DeleteProtectionDays");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableFileDownLog")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("General_EnableFileDownLog");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnableLinkClickLog")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("General_EnableLinkClickLog");
|
|
|
+
|
|
|
+ b1.Property<bool>("EnablePostUpdateLog")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("General_EnablePostUpdateLog");
|
|
|
+
|
|
|
+ b1.Property<int>("UpdateProtectionDays")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("General_UpdateProtectionDays");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaList", "List", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("AlwaysShowWriteButton")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_AlwaysShowWriteButton");
|
|
|
+
|
|
|
+ b1.Property<bool>("ExceptNotice")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_ExceptNotice");
|
|
|
+
|
|
|
+ b1.Property<bool>("ExceptSpeaker")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_ExceptSpeaker");
|
|
|
+
|
|
|
+ b1.Property<string>("FooterContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("List_FooterContent");
|
|
|
+
|
|
|
+ b1.Property<string>("HeaderContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("List_HeaderContent");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsHotIcon")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_IsHotIcon");
|
|
|
+
|
|
|
+ b1.Property<bool>("IsNewIcon")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_IsNewIcon");
|
|
|
+
|
|
|
+ b1.Property<byte?>("Layout")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("List_Layout");
|
|
|
+
|
|
|
+ b1.Property<byte>("PerPage")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("List_PerPage");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowFooter")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_ShowFooter");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowFooterListView")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_ShowFooterListView");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowHeader")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("List_ShowHeader");
|
|
|
+
|
|
|
+ b1.Property<byte?>("Sort")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("List_Sort");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotify", "Notify", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<byte?>("CommentWriteNotify")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Notify_CommentWriteNotify");
|
|
|
+
|
|
|
+ b1.Property<byte?>("PostWriteNotify")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Notify_PostWriteNotify");
|
|
|
+
|
|
|
+ b1.Property<byte?>("ReplyWriteNotify")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Notify_ReplyWriteNotify");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaNotifyTemplate", "NotifyTemplate", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("CommentWriteEmailNotifyContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_CommentWriteEmailNotifyContent");
|
|
|
+
|
|
|
+ b1.Property<string>("CommentWriteEmailNotifySubject")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_CommentWriteEmailNotifySubject");
|
|
|
+
|
|
|
+ b1.Property<string>("PostWriteEmailNotifyContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_PostWriteEmailNotifyContent");
|
|
|
+
|
|
|
+ b1.Property<string>("PostWriteEmailNotifySubject")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_PostWriteEmailNotifySubject");
|
|
|
+
|
|
|
+ b1.Property<string>("ReplyWriteEmailNotifyContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifyContent");
|
|
|
+
|
|
|
+ b1.Property<string>("ReplyWriteEmailNotifySubject")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("NotifyTemplate_ReplyWriteEmailNotifySubject");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaPermission", "Permission", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<short>("BoardAccess")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_BoardAccess");
|
|
|
+
|
|
|
+ b1.Property<short>("CommentView")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_CommentView");
|
|
|
+
|
|
|
+ b1.Property<short>("CommentWrite")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_CommentWrite");
|
|
|
+
|
|
|
+ b1.Property<short>("FileDownload")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_FileDownload");
|
|
|
+
|
|
|
+ b1.Property<short>("FileUpload")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_FileUpload");
|
|
|
+
|
|
|
+ b1.Property<short>("PostView")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_PostView");
|
|
|
+
|
|
|
+ b1.Property<short>("PostWrite")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_PostWrite");
|
|
|
+
|
|
|
+ b1.Property<short>("ReplyWrite")
|
|
|
+ .HasColumnType("smallint")
|
|
|
+ .HasColumnName("Permission_ReplyWrite");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaView", "View", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowBlame")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowBlame");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowBookmark")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowBookmark");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowContentLinkTargetBlank")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowContentLinkTargetBlank");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowDislike")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowDislike");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowLike")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowLike");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowPostUrlCopy")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowPostUrlCopy");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowPostUrlQrCode")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowPostUrlQrCode");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowPrevNextBotton")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowPrevNextBotton");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowPrint")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowPrint");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowSnsShare")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_AllowSnsShare");
|
|
|
+
|
|
|
+ b1.Property<int>("BlameHideCount")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("View_BlameHideCount");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberIcon")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_ShowMemberIcon");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberRegDate")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_ShowMemberRegDate");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberSummary")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_ShowMemberSummary");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowMemberThumb")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("View_ShowMemberThumb");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Forum.Boards.BoardMetaWrite", "Write", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("BoardMetaID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowEditor")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowEditor");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowFile")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowFile");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowImage")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowImage");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowMedia")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowMedia");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowPrefix")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowPrefix");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowSecret")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowSecret");
|
|
|
+
|
|
|
+ b1.Property<bool>("AllowTag")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_AllowTag");
|
|
|
+
|
|
|
+ b1.Property<string>("DefaultContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Write_DefaultContent");
|
|
|
+
|
|
|
+ b1.Property<string>("DefaultSubject")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Write_DefaultSubject");
|
|
|
+
|
|
|
+ b1.Property<string>("FileUploadExtension")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Write_FileUploadExtension");
|
|
|
+
|
|
|
+ b1.Property<byte>("FileUploadLimit")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Write_FileUploadLimit");
|
|
|
+
|
|
|
+ b1.Property<int>("FileUploadMaxSize")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Write_FileUploadMaxSize");
|
|
|
+
|
|
|
+ b1.Property<string>("FooterContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Write_FooterContent");
|
|
|
+
|
|
|
+ b1.Property<string>("HeaderContent")
|
|
|
+ .HasColumnType("nvarchar(max)")
|
|
|
+ .HasColumnName("Write_HeaderContent");
|
|
|
+
|
|
|
+ b1.Property<byte>("ImageUploadLimit")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Write_ImageUploadLimit");
|
|
|
+
|
|
|
+ b1.Property<int>("ImageUploadMaxSize")
|
|
|
+ .HasColumnType("int")
|
|
|
+ .HasColumnName("Write_ImageUploadMaxSize");
|
|
|
+
|
|
|
+ b1.Property<byte>("MediaUploadLimit")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Write_MediaUploadLimit");
|
|
|
+
|
|
|
+ b1.Property<bool>("RequiredPrefix")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_RequiredPrefix");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowFooter")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_ShowFooter");
|
|
|
+
|
|
|
+ b1.Property<bool>("ShowHeader")
|
|
|
+ .HasColumnType("bit")
|
|
|
+ .HasColumnName("Write_ShowHeader");
|
|
|
+
|
|
|
+ b1.Property<byte>("TagLimit")
|
|
|
+ .HasColumnType("tinyint")
|
|
|
+ .HasColumnName("Write_TagLimit");
|
|
|
+
|
|
|
+ b1.HasKey("BoardMetaID");
|
|
|
+
|
|
|
+ b1.ToTable("BoardMeta");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("BoardMetaID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.Navigation("Comment")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Exp")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("General")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("List")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Notify")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("NotifyTemplate")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Permission")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("View")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Write")
|
|
|
+ .IsRequired();
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Boards.BoardPrefix", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany("BoardPrefix")
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.Comment", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "MentionMember")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MentionMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.SetNull);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Parent")
|
|
|
+ .WithMany("Children")
|
|
|
+ .HasForeignKey("ParentID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany("Comment")
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("MentionMember");
|
|
|
+
|
|
|
+ b.Navigation("Parent");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentFile", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentFile")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentImage", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentImage")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentLink", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentLink")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMedia", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentMedia")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentMention", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithOne("CommentMention")
|
|
|
+ .HasForeignKey("Domain.Entities.Forum.Comments.CommentMention", "CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReaction", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentReaction")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Comments.CommentReport", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Boards.Board", "Board")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BoardID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentReport")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Board");
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentFileDownLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.CommentFile", "CommentFile")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("CommentFileID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentFileDownLog")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("CommentFile");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentLinkClickLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentLinkClickLog")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.CommentLink", "CommentLink")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("CommentLinkID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("CommentLink");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.CommentUpdateLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Comments.Comment", "Comment")
|
|
|
+ .WithMany("CommentUpdateLog")
|
|
|
+ .HasForeignKey("CommentID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Comment");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostFileDownLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.PostFile", "PostFile")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostFileID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany("PostFileDownLog")
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+
|
|
|
+ b.Navigation("PostFile");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostLinkClickLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany("PostLinkClickLog")
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.PostLink", "PostLink")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostLinkID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+
|
|
|
+ b.Navigation("PostLink");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostUpdateLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany("PostUpdateLog")
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Forum.Logs.PostViewLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID");
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .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.PostCheer", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "FromMember")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("FromMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "ToMember")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ToMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("FromMember");
|
|
|
+
|
|
|
+ b.Navigation("Post");
|
|
|
+
|
|
|
+ b.Navigation("ToMember");
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.PostPrediction", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ 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.PostStockTag", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Forum.Posts.Post", "Post")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PostID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ 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.Attendance", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.BroadcastSession", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Channel", "Channel")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ChannelID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Channel");
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.ChannelBroadcastStats", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Channel", "Channel")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ChannelID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Channel");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.ChannelHandleHistory", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Channel", "Channel")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ChannelID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Channel");
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.MemberExpLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.BroadcastSession", "BroadcastSession")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("BroadcastSessionID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("BroadcastSession");
|
|
|
+
|
|
|
+ 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.Logs.MemberThumbChangeLog", 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.MemberDailyRewardCounter", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", null)
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberFollow", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Followee")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("FolloweeMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Follower")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("FollowerMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Followee");
|
|
|
+
|
|
|
+ b.Navigation("Follower");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberItem", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Product", "Product")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ProductID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("Product");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Members.MemberOAuthToken", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("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.MemberTrackRecord", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithOne()
|
|
|
+ .HasForeignKey("Domain.Entities.Members.MemberTrackRecord", "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.Notes.Note", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Receiver")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ReceiverMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Sender")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("SenderMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Receiver");
|
|
|
+
|
|
|
+ b.Navigation("Sender");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Notifications.Notification", 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.Paper.PaperAccount", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperDailySnapshot", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Paper.PaperAccount", "Account")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("AccountID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Account");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperFill", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Paper.PaperOrder", "Order")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("OrderID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Order");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperLedger", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Paper.PaperAccount", "Account")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("AccountID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Account");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperOrder", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Paper.PaperAccount", "Account")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("AccountID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Account");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Paper.PaperPosition", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Paper.PaperAccount", "Account")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("AccountID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Account");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.PaymentOrder", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossCancel", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Payments.PaymentOrder", "PaymentOrder")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PaymentOrderID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("PaymentOrder");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossConfirm", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Payments.PaymentOrder", "PaymentOrder")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("PaymentOrderID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("PaymentOrder");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Payments.Toss.TossLog", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction);
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Stocks.StockDailyPrice", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Stocks.Stock", "Stock")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("StockID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Stock");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Coupon", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Product", "Product")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ProductID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+
|
|
|
+ b.Navigation("Product");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.CouponCode", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Coupon", "Coupon")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("CouponID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "IssuedToMember")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("IssuedToMemberID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction);
|
|
|
+
|
|
|
+ b.Navigation("Coupon");
|
|
|
+
|
|
|
+ b.Navigation("IssuedToMember");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameCategoryMap", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.GameCategory", "GameCategory")
|
|
|
+ .WithMany("GameCategoryMap")
|
|
|
+ .HasForeignKey("GameCategoryID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany("GameCategoryMap")
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+
|
|
|
+ b.Navigation("GameCategory");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameGenreMap", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.GameGenre", "GameGenre")
|
|
|
+ .WithMany("GameGenreMap")
|
|
|
+ .HasForeignKey("GameGenreID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany("GameGenreMap")
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+
|
|
|
+ b.Navigation("GameGenre");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameImage", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany("GameImage")
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameLanguageSupport", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany("GameLanguageSupport")
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.GameLanguage", "GameLanguage")
|
|
|
+ .WithMany("GameLanguageSupport")
|
|
|
+ .HasForeignKey("GameLanguageID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+
|
|
|
+ b.Navigation("GameLanguage");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameSettlement", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.MemberAddress", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.MemberInventory", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.CouponCode", "CouponCode")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("CouponCodeID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.OrderItem", "OrderItem")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("OrderItemID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("CouponCode");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+
|
|
|
+ b.Navigation("OrderItem");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Order", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Channel", "Channel")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ChannelID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Channel");
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderItem", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.CouponCode", "IssuedCouponCode")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("IssuedCouponCodeID")
|
|
|
+ .OnDelete(DeleteBehavior.NoAction);
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Order", "Order")
|
|
|
+ .WithMany("Items")
|
|
|
+ .HasForeignKey("OrderID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.Product", "Product")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("ProductID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("IssuedCouponCode");
|
|
|
+
|
|
|
+ b.Navigation("Order");
|
|
|
+
|
|
|
+ b.Navigation("Product");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderRefund", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Order", "Order")
|
|
|
+ .WithMany("Refunds")
|
|
|
+ .HasForeignKey("OrderID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Order");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderRefundItem", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.CouponCode", "CouponCode")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("CouponCodeID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.OrderItem", "OrderItem")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("OrderItemID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.HasOne("Domain.Entities.Store.OrderRefund", "OrderRefund")
|
|
|
+ .WithMany("Items")
|
|
|
+ .HasForeignKey("OrderRefundID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("CouponCode");
|
|
|
+
|
|
|
+ b.Navigation("OrderItem");
|
|
|
+
|
|
|
+ b.Navigation("OrderRefund");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Product", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Game", "Game")
|
|
|
+ .WithMany()
|
|
|
+ .HasForeignKey("GameID")
|
|
|
+ .OnDelete(DeleteBehavior.Restrict);
|
|
|
+
|
|
|
+ b.Navigation("Game");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.ProductLimitConfig", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Product", "Product")
|
|
|
+ .WithOne()
|
|
|
+ .HasForeignKey("Domain.Entities.Store.ProductLimitConfig", "ProductID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Product");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Shipment", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Store.Order", "Order")
|
|
|
+ .WithOne()
|
|
|
+ .HasForeignKey("Domain.Entities.Store.Shipment", "OrderID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Order");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Members.Member", "Member")
|
|
|
+ .WithOne("Wallet")
|
|
|
+ .HasForeignKey("Domain.Entities.Wallets.Wallet", "MemberID")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Member");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.WalletBalance", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Wallets.Wallet", null)
|
|
|
+ .WithMany("Balances")
|
|
|
+ .HasForeignKey("WalletKey")
|
|
|
+ .HasPrincipalKey("WalletKey")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "Amount", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("WalletBalanceID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("Currency")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasColumnName("Currency");
|
|
|
+
|
|
|
+ b1.Property<decimal>("Value")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasColumnName("Amount");
|
|
|
+
|
|
|
+ b1.HasKey("WalletBalanceID");
|
|
|
+
|
|
|
+ b1.ToTable("WalletBalance");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("WalletBalanceID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.Navigation("Amount")
|
|
|
+ .IsRequired();
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.WalletTransaction", b =>
|
|
|
+ {
|
|
|
+ b.HasOne("Domain.Entities.Wallets.Wallet", "Wallet")
|
|
|
+ .WithMany("Transactions")
|
|
|
+ .HasForeignKey("WalletKey")
|
|
|
+ .HasPrincipalKey("WalletKey")
|
|
|
+ .OnDelete(DeleteBehavior.Cascade)
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "Amount", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("WalletTransactionID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("Currency")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasColumnName("Currency");
|
|
|
+
|
|
|
+ b1.Property<decimal>("Value")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasColumnName("Amount");
|
|
|
+
|
|
|
+ b1.HasKey("WalletTransactionID");
|
|
|
+
|
|
|
+ b1.ToTable("WalletTransaction");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("WalletTransactionID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.OwnsOne("Domain.Entities.Common.ValueObject.Money", "BalanceAfter", b1 =>
|
|
|
+ {
|
|
|
+ b1.Property<int>("WalletTransactionID")
|
|
|
+ .HasColumnType("int");
|
|
|
+
|
|
|
+ b1.Property<string>("Currency")
|
|
|
+ .IsRequired()
|
|
|
+ .HasMaxLength(10)
|
|
|
+ .HasColumnType("nvarchar(10)")
|
|
|
+ .HasColumnName("BalanceAfterCurrency");
|
|
|
+
|
|
|
+ b1.Property<decimal>("Value")
|
|
|
+ .HasPrecision(18)
|
|
|
+ .HasColumnType("decimal(18,0)")
|
|
|
+ .HasColumnName("BalanceAfter");
|
|
|
+
|
|
|
+ b1.HasKey("WalletTransactionID");
|
|
|
+
|
|
|
+ b1.ToTable("WalletTransaction");
|
|
|
+
|
|
|
+ b1.WithOwner()
|
|
|
+ .HasForeignKey("WalletTransactionID");
|
|
|
+ });
|
|
|
+
|
|
|
+ b.Navigation("Amount")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("BalanceAfter")
|
|
|
+ .IsRequired();
|
|
|
+
|
|
|
+ b.Navigation("Wallet");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedComment", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("Children");
|
|
|
+
|
|
|
+ b.Navigation("FeedCommentLike");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedPost", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("FeedBookmark");
|
|
|
+
|
|
|
+ b.Navigation("FeedComment");
|
|
|
+
|
|
|
+ b.Navigation("FeedLike");
|
|
|
+
|
|
|
+ b.Navigation("FeedPostImage");
|
|
|
+
|
|
|
+ b.Navigation("FeedPostMedia");
|
|
|
+
|
|
|
+ b.Navigation("FeedPostMention");
|
|
|
+
|
|
|
+ b.Navigation("FeedPostTag");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Feed.FeedTag", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("FeedPostTag");
|
|
|
+ });
|
|
|
+
|
|
|
+ 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.Store.Game", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("GameCategoryMap");
|
|
|
+
|
|
|
+ b.Navigation("GameGenreMap");
|
|
|
+
|
|
|
+ b.Navigation("GameImage");
|
|
|
+
|
|
|
+ b.Navigation("GameLanguageSupport");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameCategory", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("GameCategoryMap");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameGenre", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("GameGenreMap");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.GameLanguage", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("GameLanguageSupport");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.Order", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("Items");
|
|
|
+
|
|
|
+ b.Navigation("Refunds");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Store.OrderRefund", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("Items");
|
|
|
+ });
|
|
|
+
|
|
|
+ modelBuilder.Entity("Domain.Entities.Wallets.Wallet", b =>
|
|
|
+ {
|
|
|
+ b.Navigation("Balances");
|
|
|
+
|
|
|
+ b.Navigation("Transactions");
|
|
|
+ });
|
|
|
+#pragma warning restore 612, 618
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|