BoardMetaConfiguration.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using Domain.Entities.Forum.Boards;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.EntityFrameworkCore.Metadata.Builders;
  4. namespace Infrastructure.Persistence.Configurations.Forum.Boards;
  5. public sealed class BoardMetaConfiguration : IEntityTypeConfiguration<BoardMeta>
  6. {
  7. public void Configure(EntityTypeBuilder<BoardMeta> builder)
  8. {
  9. builder.HasIndex(x => x.BoardID).IsUnique();
  10. builder.OwnsOne(x => x.List, list =>
  11. {
  12. list.Property(x => x.HeaderContent).HasColumnName("List_HeaderContent");
  13. list.Property(x => x.ShowHeader).HasColumnName("List_ShowHeader");
  14. list.Property(x => x.FooterContent).HasColumnName("List_FooterContent");
  15. list.Property(x => x.ShowFooter).HasColumnName("List_ShowFooter");
  16. list.Property(x => x.Layout).HasColumnName("List_Layout").HasConversion<byte?>();
  17. list.Property(x => x.Sort).HasColumnName("List_Sort").HasConversion<byte?>();
  18. list.Property(x => x.PerPage).HasColumnName("List_PerPage");
  19. list.Property(x => x.AlwaysShowWriteButton).HasColumnName("List_AlwaysShowWriteButton");
  20. list.Property(x => x.ShowFooterListView).HasColumnName("List_ShowFooterListView");
  21. list.Property(x => x.IsNewIcon).HasColumnName("List_IsNewIcon");
  22. list.Property(x => x.IsHotIcon).HasColumnName("List_IsHotIcon");
  23. list.Property(x => x.ExceptNotice).HasColumnName("List_ExceptNotice");
  24. list.Property(x => x.ExceptSpeaker).HasColumnName("List_ExceptSpeaker");
  25. });
  26. builder.OwnsOne(x => x.View, view =>
  27. {
  28. view.Property(x => x.AllowBookmark).HasColumnName("View_AllowBookmark");
  29. view.Property(x => x.AllowLike).HasColumnName("View_AllowLike");
  30. view.Property(x => x.AllowDislike).HasColumnName("View_AllowDislike");
  31. view.Property(x => x.AllowPrint).HasColumnName("View_AllowPrint");
  32. view.Property(x => x.AllowSnsShare).HasColumnName("View_AllowSnsShare");
  33. view.Property(x => x.AllowPrevNextBotton).HasColumnName("View_AllowPrevNextBotton");
  34. view.Property(x => x.AllowBlame).HasColumnName("View_AllowBlame");
  35. view.Property(x => x.BlameHideCount).HasColumnName("View_BlameHideCount");
  36. view.Property(x => x.AllowContentLinkTargetBlank).HasColumnName("View_AllowContentLinkTargetBlank");
  37. view.Property(x => x.AllowPostUrlCopy).HasColumnName("View_AllowPostUrlCopy");
  38. view.Property(x => x.AllowPostUrlQrCode).HasColumnName("View_AllowPostUrlQrCode");
  39. view.Property(x => x.ShowMemberThumb).HasColumnName("View_ShowMemberThumb");
  40. view.Property(x => x.ShowMemberIcon).HasColumnName("View_ShowMemberIcon");
  41. view.Property(x => x.ShowMemberRegDate).HasColumnName("View_ShowMemberRegDate");
  42. view.Property(x => x.ShowMemberSummary).HasColumnName("View_ShowMemberSummary");
  43. });
  44. builder.OwnsOne(x => x.Write, write =>
  45. {
  46. write.Property(x => x.HeaderContent).HasColumnName("Write_HeaderContent");
  47. write.Property(x => x.ShowHeader).HasColumnName("Write_ShowHeader");
  48. write.Property(x => x.FooterContent).HasColumnName("Write_FooterContent");
  49. write.Property(x => x.ShowFooter).HasColumnName("Write_ShowFooter");
  50. write.Property(x => x.DefaultSubject).HasColumnName("Write_DefaultSubject");
  51. write.Property(x => x.DefaultContent).HasColumnName("Write_DefaultContent");
  52. write.Property(x => x.AllowEditor).HasColumnName("Write_AllowEditor");
  53. write.Property(x => x.AllowPrefix).HasColumnName("Write_AllowPrefix");
  54. write.Property(x => x.RequiredPrefix).HasColumnName("Write_RequiredPrefix");
  55. write.Property(x => x.AllowSecret).HasColumnName("Write_AllowSecret");
  56. write.Property(x => x.AllowTag).HasColumnName("Write_AllowTag");
  57. write.Property(x => x.TagLimit).HasColumnName("Write_TagLimit");
  58. write.Property(x => x.AllowImage).HasColumnName("Write_AllowImage");
  59. write.Property(x => x.ImageUploadLimit).HasColumnName("Write_ImageUploadLimit");
  60. write.Property(x => x.ImageUploadMaxSize).HasColumnName("Write_ImageUploadMaxSize");
  61. write.Property(x => x.AllowMedia).HasColumnName("Write_AllowMedia");
  62. write.Property(x => x.MediaUploadLimit).HasColumnName("Write_MediaUploadLimit");
  63. write.Property(x => x.AllowFile).HasColumnName("Write_AllowFile");
  64. write.Property(x => x.FileUploadLimit).HasColumnName("Write_FileUploadLimit");
  65. write.Property(x => x.FileUploadMaxSize).HasColumnName("Write_FileUploadMaxSize");
  66. write.Property(x => x.FileUploadExtension).HasColumnName("Write_FileUploadExtension");
  67. });
  68. builder.OwnsOne(x => x.Comment, comment =>
  69. {
  70. comment.Property(x => x.EnableComment).HasColumnName("Comment_EnableComment");
  71. comment.Property(x => x.PerPage).HasColumnName("Comment_PerPage");
  72. comment.Property(x => x.AllowLike).HasColumnName("Comment_AllowLike");
  73. comment.Property(x => x.AllowDisLike).HasColumnName("Comment_AllowDisLike");
  74. comment.Property(x => x.ShowMemberThumb).HasColumnName("Comment_ShowMemberThumb");
  75. comment.Property(x => x.ShowMemberIcon).HasColumnName("Comment_ShowMemberIcon");
  76. comment.Property(x => x.ContentPlaceholder).HasColumnName("Comment_ContentPlaceholder");
  77. comment.Property(x => x.MinContentLength).HasColumnName("Comment_MinContentLength");
  78. comment.Property(x => x.MaxContentLength).HasColumnName("Comment_MaxContentLength");
  79. comment.Property(x => x.EnableEditor).HasColumnName("Comment_EnableEditor");
  80. comment.Property(x => x.AllowSecret).HasColumnName("Comment_AllowSecret");
  81. comment.Property(x => x.BlameHideCount).HasColumnName("Comment_BlameHideCount");
  82. comment.Property(x => x.DeleteProtectionDays).HasColumnName("Comment_DeleteProtectionDays");
  83. comment.Property(x => x.UpdateProtectionDays).HasColumnName("Comment_UpdateProtectionDays");
  84. comment.Property(x => x.AllowDeleteProtection).HasColumnName("Comment_AllowDeleteProtection");
  85. comment.Property(x => x.AllowUpdateProtection).HasColumnName("Comment_AllowUpdateProtection");
  86. comment.Property(x => x.EnableCommentUpdateLog).HasColumnName("Comment_EnableCommentUpdateLog");
  87. });
  88. builder.OwnsOne(x => x.General, general =>
  89. {
  90. general.Property(x => x.DeleteProtectionDays).HasColumnName("General_DeleteProtectionDays");
  91. general.Property(x => x.UpdateProtectionDays).HasColumnName("General_UpdateProtectionDays");
  92. general.Property(x => x.AllowDeleteProtection).HasColumnName("General_AllowDeleteProtection");
  93. general.Property(x => x.AllowUpdateProtection).HasColumnName("General_AllowUpdateProtection");
  94. general.Property(x => x.EnableFileDownLog).HasColumnName("General_EnableFileDownLog");
  95. general.Property(x => x.EnableLinkClickLog).HasColumnName("General_EnableLinkClickLog");
  96. general.Property(x => x.EnablePostUpdateLog).HasColumnName("General_EnablePostUpdateLog");
  97. });
  98. builder.OwnsOne(x => x.Permission, permission =>
  99. {
  100. permission.Property(x => x.BoardAccess).HasColumnName("Permission_BoardAccess");
  101. permission.Property(x => x.PostView).HasColumnName("Permission_PostView");
  102. permission.Property(x => x.PostWrite).HasColumnName("Permission_PostWrite");
  103. permission.Property(x => x.CommentView).HasColumnName("Permission_CommentView");
  104. permission.Property(x => x.CommentWrite).HasColumnName("Permission_CommentWrite");
  105. permission.Property(x => x.ReplyWrite).HasColumnName("Permission_ReplyWrite");
  106. permission.Property(x => x.FileUpload).HasColumnName("Permission_FileUpload");
  107. permission.Property(x => x.FileDownload).HasColumnName("Permission_FileDownload");
  108. });
  109. builder.OwnsOne(x => x.Notify, notify =>
  110. {
  111. notify.Property(x => x.PostWriteNotify).HasColumnName("Notify_PostWriteNotify");
  112. notify.Property(x => x.CommentWriteNotify).HasColumnName("Notify_CommentWriteNotify");
  113. notify.Property(x => x.ReplyWriteNotify).HasColumnName("Notify_ReplyWriteNotify");
  114. notify.Ignore(x => x.PostWriteNotifyEnum);
  115. notify.Ignore(x => x.CommentWriteNotifyEnum);
  116. notify.Ignore(x => x.ReplyWriteNotifyEnum);
  117. });
  118. builder.OwnsOne(x => x.NotifyTemplate, template =>
  119. {
  120. template.Property(x => x.PostWriteEmailNotifySubject).HasColumnName("NotifyTemplate_PostWriteEmailNotifySubject");
  121. template.Property(x => x.PostWriteEmailNotifyContent).HasColumnName("NotifyTemplate_PostWriteEmailNotifyContent");
  122. template.Property(x => x.CommentWriteEmailNotifySubject).HasColumnName("NotifyTemplate_CommentWriteEmailNotifySubject");
  123. template.Property(x => x.CommentWriteEmailNotifyContent).HasColumnName("NotifyTemplate_CommentWriteEmailNotifyContent");
  124. template.Property(x => x.ReplyWriteEmailNotifySubject).HasColumnName("NotifyTemplate_ReplyWriteEmailNotifySubject");
  125. template.Property(x => x.ReplyWriteEmailNotifyContent).HasColumnName("NotifyTemplate_ReplyWriteEmailNotifyContent");
  126. });
  127. builder.OwnsOne(x => x.Exp, exp =>
  128. {
  129. exp.Property(x => x.EnableExp).HasColumnName("Exp_EnableExp");
  130. exp.Property(x => x.ShowExpGuide).HasColumnName("Exp_ShowExpGuide");
  131. exp.Property(x => x.PostWriteExp).HasColumnName("Exp_PostWriteExp");
  132. exp.Property(x => x.CommentWriteExp).HasColumnName("Exp_CommentWriteExp");
  133. exp.Property(x => x.FileUploadExp).HasColumnName("Exp_FileUploadExp");
  134. exp.Property(x => x.FileDownloadExp).HasColumnName("Exp_FileDownloadExp");
  135. exp.Property(x => x.OtherPostReadExp).HasColumnName("Exp_OtherPostReadExp");
  136. exp.Property(x => x.OtherPostLikeExp).HasColumnName("Exp_OtherPostLikeExp");
  137. exp.Property(x => x.OtherPostDisLikeExp).HasColumnName("Exp_OtherPostDisLikeExp");
  138. exp.Property(x => x.OtherCommentLikeExp).HasColumnName("Exp_OtherCommentLikeExp");
  139. exp.Property(x => x.OtherCommentDisLikeExp).HasColumnName("Exp_OtherCommentDisLikeExp");
  140. exp.Property(x => x.OwnPostReadExp).HasColumnName("Exp_OwnPostReadExp");
  141. exp.Property(x => x.OwnPostLikeExp).HasColumnName("Exp_OwnPostLikeExp");
  142. exp.Property(x => x.OwnPostDisLikeExp).HasColumnName("Exp_OwnPostDisLikeExp");
  143. exp.Property(x => x.OwnCommentLikeExp).HasColumnName("Exp_OwnCommentLikeExp");
  144. exp.Property(x => x.OwnCommentDisLikeExp).HasColumnName("Exp_OwnCommentDisLikeExp");
  145. exp.Property(x => x.PostWriteUndoExp).HasColumnName("Exp_PostWriteUndoExp");
  146. exp.Property(x => x.CommentWriteUndoExp).HasColumnName("Exp_CommentWriteUndoExp");
  147. exp.Property(x => x.FileUploadUndoExp).HasColumnName("Exp_FileUploadUndoExp");
  148. exp.Property(x => x.OtherPostReadUndoExp).HasColumnName("Exp_OtherPostReadUndoExp");
  149. exp.Property(x => x.OtherPostLikeUndoExp).HasColumnName("Exp_OtherPostLikeUndoExp");
  150. exp.Property(x => x.OtherPostDisLikeUndoExp).HasColumnName("Exp_OtherPostDisLikeUndoExp");
  151. exp.Property(x => x.OtherCommentLikeUndoExp).HasColumnName("Exp_OtherCommentLikeUndoExp");
  152. exp.Property(x => x.OtherCommentDisLikeUndoExp).HasColumnName("Exp_OtherCommentDisLikeUndoExp");
  153. exp.Property(x => x.OwnPostReadUndoExp).HasColumnName("Exp_OwnPostReadUndoExp");
  154. exp.Property(x => x.OwnPostLikeUndoExp).HasColumnName("Exp_OwnPostLikeUndoExp");
  155. exp.Property(x => x.OwnPostDisLikeUndoExp).HasColumnName("Exp_OwnPostDisLikeUndoExp");
  156. exp.Property(x => x.OwnCommentLikeUndoExp).HasColumnName("Exp_OwnCommentLikeUndoExp");
  157. exp.Property(x => x.OwnCommentDisLikeUndoExp).HasColumnName("Exp_OwnCommentDisLikeUndoExp");
  158. exp.Property(x => x.PostWriteExpWithinDays).HasColumnName("Exp_PostWriteExpWithinDays");
  159. exp.Property(x => x.CommentWriteExpWithinDays).HasColumnName("Exp_CommentWriteExpWithinDays");
  160. exp.Property(x => x.FileUploadExpWithinDays).HasColumnName("Exp_FileUploadExpWithinDays");
  161. exp.Property(x => x.OtherPostReadExpWithinDays).HasColumnName("Exp_OtherPostReadExpWithinDays");
  162. exp.Property(x => x.OtherPostLikeExpWithinDays).HasColumnName("Exp_OtherPostLikeExpWithinDays");
  163. exp.Property(x => x.OtherPostDisLikeExpWithinDays).HasColumnName("Exp_OtherPostDisLikeExpWithinDays");
  164. exp.Property(x => x.OtherCommentLikeExpWithinDays).HasColumnName("Exp_OtherCommentLikeExpWithinDays");
  165. exp.Property(x => x.OtherCommentDisLikeExpWithinDays).HasColumnName("Exp_OtherCommentDisLikeExpWithinDays");
  166. exp.Property(x => x.OwnPostReadExpWithinDays).HasColumnName("Exp_OwnPostReadExpWithinDays");
  167. exp.Property(x => x.OwnPostLikeExpWithinDays).HasColumnName("Exp_OwnPostLikeExpWithinDays");
  168. exp.Property(x => x.OwnPostDisLikeExpWithinDays).HasColumnName("Exp_OwnPostDisLikeExpWithinDays");
  169. exp.Property(x => x.OwnCommentLikeExpWithinDays).HasColumnName("Exp_OwnCommentLikeExpWithinDays");
  170. exp.Property(x => x.OwnCommentDisLikeExpWithinDays).HasColumnName("Exp_OwnCommentDisLikeExpWithinDays");
  171. });
  172. builder.ToTable(nameof(BoardMeta), x => x.HasComment("게시판 설정"));
  173. builder.HasKey(x => x.ID);
  174. builder.Property(x => x.ID).ValueGeneratedOnAdd().HasComment("PK");
  175. builder.Property(x => x.BoardID).IsRequired().HasComment("게시판 ID");
  176. }
  177. }