import { BoardLayout, BoardSort } from '@/constants/forum'; // 게시판 설정 값 export default interface BoardMeta { id: number; boardID: number; list: BoardListMeta; view: BoardViewMeta; write: BoardWriteMeta; general: BoardGeneralMeta; comment: BoardCommentMeta; permission: BoardPermissionMeta; notify: BoardNotifyMeta; notifyTemplate: BoardNotifyTemplateMeta; exp: BoardExpMeta; } // 게시판 목록 설정 export interface BoardListMeta { showHeader: boolean; headerContent: string|null; showFooter: boolean; footerContent: string|null; layout: BoardLayout; sort: BoardSort; perPage: number; alwaysShowWriteButton: boolean; showFooterListView: boolean; isNewIcon: boolean; isHotIcon: boolean; exceptNotice: boolean; exceptSpeaker: boolean; } // 게시판 권한 설정 export interface BoardPermissionMeta { boardAccess: number; postView: number; postWrite: number; commentView: number; commentWrite: number; replyWrite: number; fileUpload: number; fileDownload: number; } // 알림 설정 export interface BoardNotifyMeta { postWriteNotify: number|null; commentWriteNotify: number|null; postWriteNotifyEnum: number|null; commentWriteNotifyEnum: number|null; replyWriteNotifyEnum: number|null; } // 알림 양식 설정 export interface BoardNotifyTemplateMeta { postWriteEmailNotifySubject: string|null, postWriteEmailNotifyContent: string|null, commentWriteEmailNotifySubject: string|null, commentWriteEmailNotifyContent: string|null, replyWriteEmailNotifySubject: string|null, replyWriteEmailNotifyContent: string|null } // 경험치 설정 export interface BoardExpMeta { enableExp: boolean; showExpGuide: boolean; postWriteExp: number|null; commentWriteExp: number|null; fileUploadExp: number|null; fileDownloadExp: number|null; otherPostReadExp: number|null; otherPostLikeExp: number|null; otherPostDisLikeExp: number|null; otherCommentLikeExp: number|null; otherCommentDisLikeExp: number|null; ownPostReadExp: number|null; ownPostLikeExp: number|null; ownPostDisLikeExp: number|null; ownCommentLikeExp: number|null; ownCommentDisLikeExp: number|null; postWriteUndoExp: number|null; commentWriteUndoExp: number|null; fileUploadUndoExp: number|null; otherPostReadUndoExp: number|null; otherPostLikeUndoExp: number|null; otherPostDisLikeUndoExp: number|null; otherCommentLikeUndoExp: number|null; otherCommentDisLikeUndoExp: number|null; ownPostReadUndoExp: number|null; ownPostLikeUndoExp: number|null; ownPostDisLikeUndoExp: number|null; ownCommentLikeUndoExp: number|null; ownCommentDisLikeUndoExp: number|null; postWriteExpWithinDays: number|null; commentWriteExpWithinDays: number|null; fileUploadExpWithinDays: number|null; otherPostReadExpWithinDays: number|null; otherPostLikeExpWithinDays: number|null; otherPostDisLikeExpWithinDays: number|null; otherCommentLikeExpWithinDays: number|null; otherCommentDisLikeExpWithinDays: number|null; ownPostReadExpWithinDays: number|null; ownPostLikeExpWithinDays: number|null; ownPostDisLikeExpWithinDays: number|null; ownCommentLikeExpWithinDays: number|null; ownCommentDisLikeExpWithinDays: number|null; } // 게시글 열람 속성 export interface BoardViewMeta { allowBookmark: boolean; allowLike: boolean; allowDislike: boolean; allowPrint: boolean; allowSnsShare: boolean; allowPrevNextBotton: boolean; allowBlame: boolean; blameHideCount: number; allowContentLinkTargetBlank: boolean; allowPostUrlCopy: boolean; allowPostUrlQrCode: boolean; showMemberThumb: boolean; showMemberIcon: boolean; showMemberRegDate: boolean; showMemberSummary: boolean; } // 게시글 작성 속성 export interface BoardWriteMeta { showHeader: boolean; headerContent: string|null; showFooter: boolean; footerContent: string|null; defaultSubject: string|null; defaultContent: string|null; allowEditor: boolean; allowSaveExternalImage: boolean; allowPrefix: boolean; requiredPrefix: boolean; allowSecret: boolean; allowTag: boolean; tagLimit: number; allowImage: boolean; imageUploadLimit: number; imageUploadMaxSize: number; allowMedia: boolean; mediaUploadLimit: number; allowFile: boolean; fileUploadLimit: number; fileUploadMaxSize: number; fileUploadExtension: string[]; } // 게시글 일반 속성 export interface BoardGeneralMeta { deleteProtectionDays: number; updateProtectionDays: number; allowDeleteProtection: boolean; allowUpdateProtection: boolean; enableFileDownLog: boolean; enablePostUpdateLog: boolean; } // 댓글 속성 export interface BoardCommentMeta { id: number; boardID: number; enableComment: boolean; perPage: number; allowLike: boolean; allowDisLike: boolean; showMemberThumb: boolean; showMemberIcon: boolean; contentPlaceholder: string|null; minContentLength: number; maxContentLength: number; enableEditor: boolean; allowSecret: boolean; blameHideCount: number; deleteProtectionDays: number; updateProtectionDays: number; allowDeleteProtection: boolean; allowUpdateProtection: boolean; enableCommentUpdateLog: boolean; };