boardMeta.ts 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. import { BoardLayout, BoardSort } from '@/constants/forum';
  2. // 게시판 설정 값
  3. export default interface BoardMeta {
  4. id: number;
  5. boardID: number;
  6. list: BoardListMeta;
  7. view: BoardViewMeta;
  8. write: BoardWriteMeta;
  9. general: BoardGeneralMeta;
  10. comment: BoardCommentMeta;
  11. permission: BoardPermissionMeta;
  12. notify: BoardNotifyMeta;
  13. notifyTemplate: BoardNotifyTemplateMeta;
  14. exp: BoardExpMeta;
  15. }
  16. // 게시판 목록 설정
  17. export interface BoardListMeta {
  18. showHeader: boolean;
  19. headerContent: string|null;
  20. showFooter: boolean;
  21. footerContent: string|null;
  22. layout: BoardLayout;
  23. sort: BoardSort;
  24. perPage: number;
  25. alwaysShowWriteButton: boolean;
  26. showFooterListView: boolean;
  27. isNewIcon: boolean;
  28. isHotIcon: boolean;
  29. exceptNotice: boolean;
  30. exceptSpeaker: boolean;
  31. }
  32. // 게시판 권한 설정
  33. export interface BoardPermissionMeta {
  34. boardAccess: number;
  35. postView: number;
  36. postWrite: number;
  37. commentView: number;
  38. commentWrite: number;
  39. replyWrite: number;
  40. fileUpload: number;
  41. fileDownload: number;
  42. }
  43. // 알림 설정
  44. export interface BoardNotifyMeta {
  45. postWriteNotify: number|null;
  46. commentWriteNotify: number|null;
  47. postWriteNotifyEnum: number|null;
  48. commentWriteNotifyEnum: number|null;
  49. replyWriteNotifyEnum: number|null;
  50. }
  51. // 알림 양식 설정
  52. export interface BoardNotifyTemplateMeta {
  53. postWriteEmailNotifySubject: string|null,
  54. postWriteEmailNotifyContent: string|null,
  55. commentWriteEmailNotifySubject: string|null,
  56. commentWriteEmailNotifyContent: string|null,
  57. replyWriteEmailNotifySubject: string|null,
  58. replyWriteEmailNotifyContent: string|null
  59. }
  60. // 경험치 설정
  61. export interface BoardExpMeta {
  62. enableExp: boolean;
  63. showExpGuide: boolean;
  64. postWriteExp: number|null;
  65. commentWriteExp: number|null;
  66. fileUploadExp: number|null;
  67. fileDownloadExp: number|null;
  68. otherPostReadExp: number|null;
  69. otherPostLikeExp: number|null;
  70. otherPostDisLikeExp: number|null;
  71. otherCommentLikeExp: number|null;
  72. otherCommentDisLikeExp: number|null;
  73. ownPostReadExp: number|null;
  74. ownPostLikeExp: number|null;
  75. ownPostDisLikeExp: number|null;
  76. ownCommentLikeExp: number|null;
  77. ownCommentDisLikeExp: number|null;
  78. postWriteUndoExp: number|null;
  79. commentWriteUndoExp: number|null;
  80. fileUploadUndoExp: number|null;
  81. otherPostReadUndoExp: number|null;
  82. otherPostLikeUndoExp: number|null;
  83. otherPostDisLikeUndoExp: number|null;
  84. otherCommentLikeUndoExp: number|null;
  85. otherCommentDisLikeUndoExp: number|null;
  86. ownPostReadUndoExp: number|null;
  87. ownPostLikeUndoExp: number|null;
  88. ownPostDisLikeUndoExp: number|null;
  89. ownCommentLikeUndoExp: number|null;
  90. ownCommentDisLikeUndoExp: number|null;
  91. postWriteExpWithinDays: number|null;
  92. commentWriteExpWithinDays: number|null;
  93. fileUploadExpWithinDays: number|null;
  94. otherPostReadExpWithinDays: number|null;
  95. otherPostLikeExpWithinDays: number|null;
  96. otherPostDisLikeExpWithinDays: number|null;
  97. otherCommentLikeExpWithinDays: number|null;
  98. otherCommentDisLikeExpWithinDays: number|null;
  99. ownPostReadExpWithinDays: number|null;
  100. ownPostLikeExpWithinDays: number|null;
  101. ownPostDisLikeExpWithinDays: number|null;
  102. ownCommentLikeExpWithinDays: number|null;
  103. ownCommentDisLikeExpWithinDays: number|null;
  104. }
  105. // 게시글 열람 속성
  106. export interface BoardViewMeta {
  107. allowBookmark: boolean;
  108. allowLike: boolean;
  109. allowDislike: boolean;
  110. allowPrint: boolean;
  111. allowSnsShare: boolean;
  112. allowPrevNextBotton: boolean;
  113. allowBlame: boolean;
  114. blameHideCount: number;
  115. allowContentLinkTargetBlank: boolean;
  116. allowPostUrlCopy: boolean;
  117. allowPostUrlQrCode: boolean;
  118. showMemberThumb: boolean;
  119. showMemberIcon: boolean;
  120. showMemberRegDate: boolean;
  121. showMemberSummary: boolean;
  122. }
  123. // 게시글 작성 속성
  124. export interface BoardWriteMeta {
  125. showHeader: boolean;
  126. headerContent: string|null;
  127. showFooter: boolean;
  128. footerContent: string|null;
  129. defaultSubject: string|null;
  130. defaultContent: string|null;
  131. allowEditor: boolean;
  132. allowSaveExternalImage: boolean;
  133. allowPrefix: boolean;
  134. requiredPrefix: boolean;
  135. allowSecret: boolean;
  136. allowTag: boolean;
  137. tagLimit: number;
  138. allowImage: boolean;
  139. imageUploadLimit: number;
  140. imageUploadMaxSize: number;
  141. allowMedia: boolean;
  142. mediaUploadLimit: number;
  143. allowFile: boolean;
  144. fileUploadLimit: number;
  145. fileUploadMaxSize: number;
  146. fileUploadExtension: string[];
  147. }
  148. // 게시글 일반 속성
  149. export interface BoardGeneralMeta {
  150. deleteProtectionDays: number;
  151. updateProtectionDays: number;
  152. allowDeleteProtection: boolean;
  153. allowUpdateProtection: boolean;
  154. enableFileDownLog: boolean;
  155. enablePostUpdateLog: boolean;
  156. }
  157. // 댓글 속성
  158. export interface BoardCommentMeta {
  159. id: number;
  160. boardID: number;
  161. enableComment: boolean;
  162. perPage: number;
  163. allowLike: boolean;
  164. allowDisLike: boolean;
  165. showMemberThumb: boolean;
  166. showMemberIcon: boolean;
  167. contentPlaceholder: string|null;
  168. minContentLength: number;
  169. maxContentLength: number;
  170. enableEditor: boolean;
  171. allowSecret: boolean;
  172. blameHideCount: number;
  173. deleteProtectionDays: number;
  174. updateProtectionDays: number;
  175. allowDeleteProtection: boolean;
  176. allowUpdateProtection: boolean;
  177. enableCommentUpdateLog: boolean;
  178. };