AppDbContext.cs 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. using Application.Abstractions.Data;
  2. using Domain.Entities.Common;
  3. using Domain.Entities.Members;
  4. using Domain.Entities.Members.Logs;
  5. using Domain.Entities.Page;
  6. using Domain.Entities.Page.Banner;
  7. using Domain.Entities.Page.Faq;
  8. using Domain.Entities.Wallets;
  9. using Domain.Entities.Forum.Boards;
  10. using Domain.Entities.Forum.Posts;
  11. using Domain.Entities.Forum.Comments;
  12. using Domain.Entities.Director;
  13. using Domain.Entities.EmailVerification;
  14. using Domain.Entities.Forum.Logs;
  15. using Domain.Entities.Page.Popup;
  16. using Domain.Entities.Notes;
  17. using Domain.Entities.Notifications;
  18. using Domain.Entities.Payments;
  19. using Domain.Entities.Payments.Toss;
  20. using Domain.Entities.Feed;
  21. using Domain.Entities.Store;
  22. using Domain.Entities.Stocks;
  23. using Domain.Entities.Chat;
  24. using Microsoft.EntityFrameworkCore;
  25. namespace Infrastructure.Persistence;
  26. public sealed class AppDbContext : DbContext, IAppDbContext
  27. {
  28. public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
  29. // Admin
  30. public DbSet<AdminLoginLog> AdminLoginLog { get; set; }
  31. public DbSet<AdminAccessLog> AdminAccessLog { get; set; }
  32. // Config
  33. public DbSet<Config> Config { get; set; }
  34. public DbSet<EmailLog> EmailLog { get; set; }
  35. // Page
  36. public DbSet<Document> Document { get; set; }
  37. public DbSet<PopupPosition> PopupPosition { get; set; }
  38. public DbSet<Popup> Popup { get; set; }
  39. public DbSet<FaqCategory> FaqCategory { get; set; }
  40. public DbSet<FaqItem> FaqItem { get; set; }
  41. public DbSet<BannerPosition> BannerPosition { get; set; }
  42. public DbSet<BannerItem> BannerItem { get; set; }
  43. // Member
  44. public DbSet<Member> Member { get; set; }
  45. public DbSet<MemberStats> MemberStats { get; set; }
  46. public DbSet<MemberGrade> MemberGrade { get; set; }
  47. public DbSet<MemberApprove> MemberApprove { get; set; }
  48. public DbSet<MemberLoginLog> MemberLoginLog { get; set; }
  49. public DbSet<MemberEmailChangeLog> MemberEmailChangeLog { get; set; }
  50. public DbSet<MemberNameChangeLog> MemberNameChangeLog { get; set; }
  51. public DbSet<MemberSummaryChangeLog> MemberSummaryChangeLog { get; set; }
  52. public DbSet<MemberIntroChangeLog> MemberIntroChangeLog { get; set; }
  53. public DbSet<MemberThumbChangeLog> MemberThumbChangeLog { get; set; }
  54. public DbSet<MemberItemUsageLog> MemberItemUsageLog { get; set; }
  55. public DbSet<MemberExpLog> MemberExpLog { get; set; }
  56. public DbSet<MemberDailyRewardCounter> MemberDailyRewardCounter { get; set; }
  57. public DbSet<Attendance> Attendance { get; set; }
  58. public DbSet<MemberFollow> MemberFollow { get; set; }
  59. public DbSet<MemberTrackRecord> MemberTrackRecord { get; set; }
  60. public DbSet<MemberItem> MemberItem { get; set; }
  61. public DbSet<Channel> Channel { get; set; }
  62. public DbSet<ChannelHandleHistory> ChannelHandleHistory { get; set; }
  63. public DbSet<BroadcastSession> BroadcastSession { get; set; }
  64. public DbSet<ChannelBroadcastStats> ChannelBroadcastStats { get; set; }
  65. public DbSet<RefreshToken> RefreshToken { get; set; }
  66. public DbSet<MemberOAuthToken> MemberOAuthToken { get; set; }
  67. // EmailVerification
  68. public DbSet<EmailVerifyToken> EmailVerifyToken { get; set; }
  69. public DbSet<EmailVerifyNumber> EmailVerifyNumber { get; set; }
  70. // Wallet
  71. public DbSet<Wallet> Wallet { get; set; }
  72. public DbSet<WalletTransaction> WalletTransaction { get; set; }
  73. // 게시판
  74. public DbSet<BoardGroup> BoardGroup { get; set; }
  75. public DbSet<Board> Board { get; set; }
  76. public DbSet<BoardMeta> BoardMeta { get; set; }
  77. public DbSet<BoardManager> BoardManager { get; set; }
  78. public DbSet<BoardPrefix> BoardPrefix { get; set; }
  79. // 게시글
  80. public DbSet<Post> Post { get; set; }
  81. public DbSet<PostImage> PostImage { get; set; }
  82. public DbSet<PostMedia> PostMedia { get; set; }
  83. public DbSet<PostFile> PostFile { get; set; }
  84. public DbSet<PostLink> PostLink { get; set; }
  85. public DbSet<PostReaction> PostReaction { get; set; }
  86. public DbSet<PostBookmark> PostBookmark { get; set; }
  87. public DbSet<PostReport> PostReport { get; set; }
  88. public DbSet<PostTag> PostTag { get; set; }
  89. public DbSet<Tag> Tag { get; set; }
  90. public DbSet<PostCheer> PostCheer { get; set; }
  91. public DbSet<PostStockTag> PostStockTag { get; set; }
  92. public DbSet<PostPrediction> PostPrediction { get; set; }
  93. // 댓글
  94. public DbSet<Comment> Comment { get; set; }
  95. public DbSet<CommentFile> CommentFile { get; set; }
  96. public DbSet<CommentImage> CommentImage { get; set; }
  97. public DbSet<CommentMedia> CommentMedia { get; set; }
  98. public DbSet<CommentLink> CommentLink { get; set; }
  99. public DbSet<CommentReaction> CommentReaction { get; set; }
  100. public DbSet<CommentReport> CommentReport { get; set; }
  101. public DbSet<CommentMention> CommentMention { get; set; }
  102. // 게시글/댓글 로그
  103. public DbSet<PostUpdateLog> PostUpdateLog { get; set; }
  104. public DbSet<PostFileDownLog> PostFileDownLog { get; set; }
  105. public DbSet<PostLinkClickLog> PostLinkClickLog { get; set; }
  106. public DbSet<PostViewLog> PostViewLog { get; set; }
  107. public DbSet<CommentUpdateLog> CommentUpdateLog { get; set; }
  108. public DbSet<CommentFileDownLog> CommentFileDownLog { get; set; }
  109. public DbSet<CommentLinkClickLog> CommentLinkClickLog { get; set; }
  110. // 피드 (X/Twitter + Reddit 스타일 — Forum과 완전 분리)
  111. public DbSet<FeedPost> FeedPost { get; set; }
  112. public DbSet<FeedComment> FeedComment { get; set; }
  113. public DbSet<FeedLike> FeedLike { get; set; }
  114. public DbSet<FeedCommentLike> FeedCommentLike { get; set; }
  115. public DbSet<FeedBookmark> FeedBookmark { get; set; }
  116. public DbSet<FeedTag> FeedTag { get; set; }
  117. public DbSet<FeedPostTag> FeedPostTag { get; set; }
  118. public DbSet<FeedPostImage> FeedPostImage { get; set; }
  119. public DbSet<FeedPostMedia> FeedPostMedia { get; set; }
  120. public DbSet<FeedPostMention> FeedPostMention { get; set; }
  121. // 쪽지
  122. public DbSet<Note> Note { get; set; }
  123. // 알림
  124. public DbSet<Domain.Entities.Notifications.Notification> Notification { get; set; }
  125. // 결제
  126. public DbSet<PaymentOrder> PaymentOrder { get; set; }
  127. public DbSet<TossConfirm> TossConfirm { get; set; }
  128. public DbSet<TossCancel> TossCancel { get; set; }
  129. public DbSet<TossLog> TossLog { get; set; }
  130. public DbSet<PaymentReconcileLog> PaymentReconcileLog { get; set; }
  131. // 상점 (Store)
  132. public DbSet<Game> Game { get; set; }
  133. public DbSet<GameGenre> GameGenre { get; set; }
  134. public DbSet<GameCategory> GameCategory { get; set; }
  135. public DbSet<GameGenreMap> GameGenreMap { get; set; }
  136. public DbSet<GameCategoryMap> GameCategoryMap { get; set; }
  137. public DbSet<GameImage> GameImage { get; set; }
  138. public DbSet<GameLanguage> GameLanguage { get; set; }
  139. public DbSet<GameLanguageSupport> GameLanguageSupport { get; set; }
  140. public DbSet<Product> Product { get; set; }
  141. public DbSet<Coupon> Coupon { get; set; }
  142. public DbSet<CouponCode> CouponCode { get; set; }
  143. public DbSet<Order> Order { get; set; }
  144. public DbSet<OrderItem> OrderItem { get; set; }
  145. public DbSet<OrderRefund> OrderRefund { get; set; }
  146. public DbSet<OrderRefundItem> OrderRefundItem { get; set; }
  147. public DbSet<MemberInventory> MemberInventory { get; set; }
  148. public DbSet<MemberAddress> MemberAddress { get; set; }
  149. public DbSet<Shipment> Shipment { get; set; }
  150. public DbSet<GameSettlement> GameSettlement { get; set; }
  151. public DbSet<ProductLimitConfig> ProductLimitConfig { get; set; }
  152. // 주식 (Stocks — 개미투자 D1)
  153. public DbSet<Stock> Stock { get; set; }
  154. public DbSet<StockDailyPrice> StockDailyPrice { get; set; }
  155. public DbSet<IndexDailyPrice> IndexDailyPrice { get; set; }
  156. public DbSet<BondIndexDailyPrice> BondIndexDailyPrice { get; set; }
  157. public DbSet<EtpDailyTrade> EtpDailyTrade { get; set; }
  158. public DbSet<WarrantDailyTrade> WarrantDailyTrade { get; set; }
  159. public DbSet<BondDailyTrade> BondDailyTrade { get; set; }
  160. public DbSet<FuturesDailyTrade> FuturesDailyTrade { get; set; }
  161. public DbSet<OptionsDailyTrade> OptionsDailyTrade { get; set; }
  162. public DbSet<MarketHoliday> MarketHoliday { get; set; }
  163. public DbSet<StockBoardStats> StockBoardStats { get; set; }
  164. // 채팅 (Chat — 개미투자 D2)
  165. public DbSet<ChatRoomConfig> ChatRoomConfig { get; set; }
  166. public DbSet<ChatBan> ChatBan { get; set; }
  167. // 모의투자 (Paper — 개미투자 D4)
  168. public DbSet<Domain.Entities.Paper.PaperAccount> PaperAccount { get; set; }
  169. public DbSet<Domain.Entities.Paper.PaperPosition> PaperPosition { get; set; }
  170. public DbSet<Domain.Entities.Paper.PaperOrder> PaperOrder { get; set; }
  171. public DbSet<Domain.Entities.Paper.PaperFill> PaperFill { get; set; }
  172. public DbSet<Domain.Entities.Paper.PaperLedger> PaperLedger { get; set; }
  173. public DbSet<Domain.Entities.Paper.PaperDailySnapshot> PaperDailySnapshot { get; set; }
  174. protected override void OnModelCreating(ModelBuilder modelBuilder)
  175. {
  176. // Apply all configurations from the current assembly
  177. modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
  178. }
  179. }