IAppDbContext.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. using Microsoft.EntityFrameworkCore;
  2. using Domain.Entities.Common;
  3. using Domain.Entities.Members;
  4. using Domain.Entities.Page;
  5. using Domain.Entities.Page.Faq;
  6. using Domain.Entities.Page.Banner;
  7. using Domain.Entities.Members.Logs;
  8. using Domain.Entities.Wallets;
  9. using Domain.Entities.Forum.Boards;
  10. using Domain.Entities.Forum.Briefings;
  11. using Domain.Entities.Forum.Posts;
  12. using Domain.Entities.Forum.Comments;
  13. using Domain.Entities.Director;
  14. using Domain.Entities.EmailVerification;
  15. using Domain.Entities.Forum.Logs;
  16. using Domain.Entities.Page.Popup;
  17. using Domain.Entities.Notes;
  18. using Domain.Entities.Payments.Toss;
  19. using Domain.Entities.Feed;
  20. using Domain.Entities.Store;
  21. using Domain.Entities.Stocks;
  22. using Domain.Entities.Chat;
  23. namespace Application.Abstractions.Data;
  24. // IAsyncDisposable: 팩토리(IAppDbContextFactory)로 만든 out-of-band 컨텍스트를 `await using` 으로 해제하기 위함.
  25. // 스코프 등록 컨텍스트는 DI 가 해제하므로 이 계약 추가는 기존 사용처에 영향이 없다. (Phase 1.5)
  26. public interface IAppDbContext : IAsyncDisposable
  27. {
  28. // 관리자
  29. DbSet<AdminLoginLog> AdminLoginLog { get; set; }
  30. DbSet<AdminAccessLog> AdminAccessLog { get; set; }
  31. // 각종 설정 및 페이지
  32. DbSet<Config> Config { get; set; }
  33. DbSet<EmailLog> EmailLog { get; set; }
  34. DbSet<Document> Document { get; set; }
  35. DbSet<PopupPosition> PopupPosition { get; set; }
  36. DbSet<Popup> Popup { get; set; }
  37. DbSet<FaqCategory> FaqCategory { get; set; }
  38. DbSet<FaqItem> FaqItem { get; set; }
  39. DbSet<BannerPosition> BannerPosition { get; set; }
  40. DbSet<BannerItem> BannerItem { get; set; }
  41. // 회원
  42. DbSet<Member> Member { get; set; }
  43. DbSet<MemberStats> MemberStats { get; set; }
  44. DbSet<MemberApprove> MemberApprove { get; set; }
  45. DbSet<MemberGrade> MemberGrade { get; set; }
  46. DbSet<MemberLoginLog> MemberLoginLog { get; set; }
  47. DbSet<MemberEmailChangeLog> MemberEmailChangeLog { get; set; }
  48. DbSet<MemberNameChangeLog> MemberNameChangeLog { get; set; }
  49. DbSet<MemberSummaryChangeLog> MemberSummaryChangeLog { get; set; }
  50. DbSet<MemberIntroChangeLog> MemberIntroChangeLog { get; set; }
  51. DbSet<MemberThumbChangeLog> MemberThumbChangeLog { get; set; }
  52. DbSet<MemberItemUsageLog> MemberItemUsageLog { get; set; }
  53. DbSet<MemberExpLog> MemberExpLog { get; set; }
  54. DbSet<MemberDailyRewardCounter> MemberDailyRewardCounter { get; set; }
  55. DbSet<Attendance> Attendance { get; set; }
  56. DbSet<MemberFollow> MemberFollow { get; set; }
  57. DbSet<MemberTrackRecord> MemberTrackRecord { get; set; }
  58. DbSet<MemberItem> MemberItem { get; set; }
  59. DbSet<Channel> Channel { get; set; }
  60. DbSet<ChannelHandleHistory> ChannelHandleHistory { get; set; }
  61. DbSet<BroadcastSession> BroadcastSession { get; set; }
  62. DbSet<ChannelBroadcastStats> ChannelBroadcastStats { get; set; }
  63. DbSet<RefreshToken> RefreshToken { get; set; }
  64. DbSet<MemberOAuthToken> MemberOAuthToken { get; set; }
  65. // 이메일 인증
  66. DbSet<EmailVerifyToken> EmailVerifyToken { get; set; }
  67. DbSet<EmailVerifyNumber> EmailVerifyNumber { get; set; }
  68. // 지갑
  69. DbSet<Wallet> Wallet { get; set; }
  70. DbSet<WalletTransaction> WalletTransaction { get; set; }
  71. // 게시판
  72. DbSet<BoardGroup> BoardGroup { get; set; }
  73. DbSet<Board> Board { get; set; }
  74. DbSet<BoardMeta> BoardMeta { get; set; }
  75. DbSet<BoardManager> BoardManager { get; set; }
  76. DbSet<BoardPrefix> BoardPrefix { get; set; }
  77. // 게시글
  78. DbSet<Post> Post { get; set; }
  79. DbSet<PostImage> PostImage { get; set; }
  80. DbSet<PostMedia> PostMedia { get; set; }
  81. DbSet<PostFile> PostFile { get; set; }
  82. DbSet<PostLink> PostLink { get; set; }
  83. DbSet<PostReaction> PostReaction { get; set; }
  84. DbSet<PostBookmark> PostBookmark { get; set; }
  85. DbSet<PostReport> PostReport { get; set; }
  86. DbSet<PostTag> PostTag { get; set; }
  87. DbSet<Tag> Tag { get; set; }
  88. DbSet<PostCheer> PostCheer { get; set; }
  89. DbSet<PostStockTag> PostStockTag { get; set; }
  90. DbSet<PostPrediction> PostPrediction { get; set; }
  91. // 댓글
  92. DbSet<Comment> Comment { get; set; }
  93. DbSet<CommentFile> CommentFile { get; set; }
  94. DbSet<CommentImage> CommentImage { get; set; }
  95. DbSet<CommentMedia> CommentMedia { get; set; }
  96. DbSet<CommentLink> CommentLink { get; set; }
  97. DbSet<CommentReaction> CommentReaction { get; set; }
  98. DbSet<CommentReport> CommentReport { get; set; }
  99. DbSet<CommentMention> CommentMention { get; set; }
  100. // 게시글/댓글 로그
  101. DbSet<PostUpdateLog> PostUpdateLog { get; set; }
  102. DbSet<PostFileDownLog> PostFileDownLog { get; set; }
  103. DbSet<PostLinkClickLog> PostLinkClickLog { get; set; }
  104. DbSet<PostViewLog> PostViewLog { get; set; }
  105. DbSet<CommentUpdateLog> CommentUpdateLog { get; set; }
  106. DbSet<CommentFileDownLog> CommentFileDownLog { get; set; }
  107. DbSet<CommentLinkClickLog> CommentLinkClickLog { get; set; }
  108. // 피드 (X/Twitter + Reddit 스타일 — Forum과 완전 분리)
  109. DbSet<FeedPost> FeedPost { get; set; }
  110. DbSet<FeedComment> FeedComment { get; set; }
  111. DbSet<FeedLike> FeedLike { get; set; }
  112. DbSet<FeedCommentLike> FeedCommentLike { get; set; }
  113. DbSet<FeedBookmark> FeedBookmark { get; set; }
  114. DbSet<FeedTag> FeedTag { get; set; }
  115. DbSet<FeedPostTag> FeedPostTag { get; set; }
  116. DbSet<FeedPostImage> FeedPostImage { get; set; }
  117. DbSet<FeedPostMedia> FeedPostMedia { get; set; }
  118. DbSet<FeedPostMention> FeedPostMention { get; set; }
  119. // 장전 브리핑 발행 기록 (d2 M3)
  120. DbSet<DailyBriefing> DailyBriefing { get; set; }
  121. // 쪽지
  122. DbSet<Note> Note { get; set; }
  123. // 알림
  124. DbSet<Domain.Entities.Notifications.Notification> Notification { get; set; }
  125. // 결제
  126. DbSet<Domain.Entities.Payments.PaymentOrder> PaymentOrder { get; set; }
  127. DbSet<TossConfirm> TossConfirm { get; set; }
  128. DbSet<TossCancel> TossCancel { get; set; }
  129. DbSet<TossLog> TossLog { get; set; }
  130. DbSet<Domain.Entities.Payments.PaymentReconcileLog> PaymentReconcileLog { get; set; }
  131. // 상점 (Store)
  132. DbSet<Game> Game { get; set; }
  133. DbSet<GameGenre> GameGenre { get; set; }
  134. DbSet<GameCategory> GameCategory { get; set; }
  135. DbSet<GameGenreMap> GameGenreMap { get; set; }
  136. DbSet<GameCategoryMap> GameCategoryMap { get; set; }
  137. DbSet<GameImage> GameImage { get; set; }
  138. DbSet<GameLanguage> GameLanguage { get; set; }
  139. DbSet<GameLanguageSupport> GameLanguageSupport { get; set; }
  140. DbSet<Product> Product { get; set; }
  141. DbSet<Coupon> Coupon { get; set; }
  142. DbSet<CouponCode> CouponCode { get; set; }
  143. DbSet<Order> Order { get; set; }
  144. DbSet<OrderItem> OrderItem { get; set; }
  145. DbSet<OrderRefund> OrderRefund { get; set; }
  146. DbSet<OrderRefundItem> OrderRefundItem { get; set; }
  147. DbSet<MemberInventory> MemberInventory { get; set; }
  148. DbSet<MemberAddress> MemberAddress { get; set; }
  149. DbSet<Shipment> Shipment { get; set; }
  150. DbSet<GameSettlement> GameSettlement { get; set; }
  151. DbSet<ProductLimitConfig> ProductLimitConfig { get; set; }
  152. // 주식 (Stocks — 개미투자 D1)
  153. DbSet<Stock> Stock { get; set; }
  154. DbSet<StockDailyPrice> StockDailyPrice { get; set; }
  155. DbSet<IndexDailyPrice> IndexDailyPrice { get; set; }
  156. DbSet<WorldIndexSnapshot> WorldIndexSnapshot { get; set; }
  157. DbSet<MarketQuoteSnapshot> MarketQuoteSnapshot { get; set; }
  158. DbSet<BondIndexDailyPrice> BondIndexDailyPrice { get; set; }
  159. DbSet<EtpDailyTrade> EtpDailyTrade { get; set; }
  160. DbSet<WarrantDailyTrade> WarrantDailyTrade { get; set; }
  161. DbSet<BondDailyTrade> BondDailyTrade { get; set; }
  162. DbSet<FuturesDailyTrade> FuturesDailyTrade { get; set; }
  163. DbSet<OptionsDailyTrade> OptionsDailyTrade { get; set; }
  164. DbSet<CommodityDailyTrade> CommodityDailyTrade { get; set; }
  165. DbSet<EsgSecurity> EsgSecurity { get; set; }
  166. DbSet<EsgIndexDailyPrice> EsgIndexDailyPrice { get; set; }
  167. DbSet<SriBond> SriBond { get; set; }
  168. DbSet<Disclosure> Disclosure { get; set; }
  169. DbSet<ExchangeRate> ExchangeRate { get; set; }
  170. DbSet<InterestRate> InterestRate { get; set; }
  171. DbSet<MacroIndicator> MacroIndicator { get; set; }
  172. DbSet<MarketHoliday> MarketHoliday { get; set; }
  173. DbSet<StockBoardStats> StockBoardStats { get; set; }
  174. DbSet<SeibroIssuerCode> SeibroIssuerCode { get; set; }
  175. DbSet<DividendSchedule> DividendSchedule { get; set; }
  176. DbSet<Dividend> Dividend { get; set; }
  177. DbSet<RightsBaseDate> RightsBaseDate { get; set; }
  178. DbSet<SecuritiesLending> SecuritiesLending { get; set; }
  179. DbSet<LockupEvent> LockupEvent { get; set; }
  180. DbSet<StockIssuanceChange> StockIssuanceChange { get; set; }
  181. DbSet<ListingChangeEvent> ListingChangeEvent { get; set; }
  182. DbSet<UnlistedCirculation> UnlistedCirculation { get; set; }
  183. DbSet<GeneralMeeting> GeneralMeeting { get; set; }
  184. DbSet<MeetingAgenda> MeetingAgenda { get; set; }
  185. DbSet<CorpNameChange> CorpNameChange { get; set; }
  186. DbSet<PaymentSchedule> PaymentSchedule { get; set; }
  187. DbSet<OddLotPayment> OddLotPayment { get; set; }
  188. DbSet<ConvertibleBondTarget> ConvertibleBondTarget { get; set; }
  189. DbSet<ConvertibleExercise> ConvertibleExercise { get; set; }
  190. // 채권·단기금융 (SEIBro Wave 4)
  191. DbSet<BondIssuance> BondIssuance { get; set; }
  192. DbSet<BondMaster> BondMaster { get; set; }
  193. DbSet<BondInterestPayment> BondInterestPayment { get; set; }
  194. DbSet<BondEarlyRedemption> BondEarlyRedemption { get; set; }
  195. DbSet<ShortTermIssuance> ShortTermIssuance { get; set; }
  196. DbSet<CdMaster> CdMaster { get; set; }
  197. DbSet<CpMaster> CpMaster { get; set; }
  198. DbSet<EstbMaster> EstbMaster { get; set; }
  199. // 파생결합증권 ELS/DLS (SEIBro Wave 5)
  200. DbSet<DerivIssuance> DerivIssuance { get; set; }
  201. DbSet<DerivMaster> DerivMaster { get; set; }
  202. DbSet<DerivAsset> DerivAsset { get; set; }
  203. DbSet<DerivAssetExercise> DerivAssetExercise { get; set; }
  204. DbSet<DerivRedemptionCondition> DerivRedemptionCondition { get; set; }
  205. DbSet<DerivRedemption> DerivRedemption { get; set; }
  206. DbSet<ElsUnredeemedScale> ElsUnredeemedScale { get; set; }
  207. // 외화증권 (SEIBro Wave 6)
  208. DbSet<ForeignCustodyNation> ForeignCustodyNation { get; set; }
  209. DbSet<ForeignSettlementNation> ForeignSettlementNation { get; set; }
  210. DbSet<ForeignCustodySecurity> ForeignCustodySecurity { get; set; }
  211. DbSet<ForeignSettlementSecurity> ForeignSettlementSecurity { get; set; }
  212. // SEIBro 수집 마커 (리뷰 결함 #1 — 정상 0행 재수집·starvation 해소)
  213. DbSet<SeibroFetchMarker> SeibroFetchMarker { get; set; }
  214. DbSet<SeibroSweptDate> SeibroSweptDate { get; set; }
  215. // 채팅 (Chat — 개미투자 D2)
  216. DbSet<ChatRoomConfig> ChatRoomConfig { get; set; }
  217. DbSet<ChatBan> ChatBan { get; set; }
  218. // 모의투자 (Paper — 개미투자 D4)
  219. DbSet<Domain.Entities.Paper.PaperAccount> PaperAccount { get; set; }
  220. DbSet<Domain.Entities.Paper.PaperPosition> PaperPosition { get; set; }
  221. DbSet<Domain.Entities.Paper.PaperOrder> PaperOrder { get; set; }
  222. DbSet<Domain.Entities.Paper.PaperFill> PaperFill { get; set; }
  223. DbSet<Domain.Entities.Paper.PaperLedger> PaperLedger { get; set; }
  224. DbSet<Domain.Entities.Paper.PaperDailySnapshot> PaperDailySnapshot { get; set; }
  225. Task<int> SaveChangesAsync(CancellationToken ct = default);
  226. }