This commit is contained in:
payacom
2026-08-31 20:45:41 +03:30
parent fa9f23c61d
commit 3f416a7a60
367 changed files with 621895 additions and 6443 deletions

89
utils/moderationStatus.js Normal file
View File

@@ -0,0 +1,89 @@
/** وضعیت تایید موقت — محتوا در اپ نمایش داده می‌شود ولی نیاز به بازبینی دستی دارد */
const TEMP_ACCEPT = 'temp_accept'
/** وضعیت‌های عمومی قابل نمایش — پست */
const PUBLIC_POST_STATUSES = [TEMP_ACCEPT, 'accept']
/** وضعیت‌های عمومی قابل نمایش — کامنت */
const PUBLIC_COMMENT_STATUSES = [TEMP_ACCEPT, 'accepted']
/** وضعیت‌های عمومی قابل نمایش — پروژه */
const PUBLIC_PROJECT_STATUSES = [TEMP_ACCEPT, 'paid', 'accepted', 'done', 'ongoing']
/** وضعیت‌های عمومی قابل نمایش — بیلبورد */
const PUBLIC_BILLBOARD_STATUSES = [TEMP_ACCEPT, 'paid', 'accepted']
/** وضعیت‌های عمومی قابل نمایش — پکیج آموزشی */
const PUBLIC_COURSE_STATUSES = [TEMP_ACCEPT, 'accept']
/** وضعیت‌های عمومی قابل نمایش — ویدیو آموزشگاه */
const PUBLIC_ACADEMY_CONTENT_STATUSES = [TEMP_ACCEPT, 'accept']
/** صف بازبینی ادمین — پست */
const REVIEW_POST_STATUSES = [TEMP_ACCEPT, 'pending']
/** صف بازبینی ادمین — کامنت */
const REVIEW_COMMENT_STATUSES = [TEMP_ACCEPT, 'pending']
/** صف بازبینی ادمین — پروژه / بیلبورد */
const REVIEW_PROJECT_STATUSES = [TEMP_ACCEPT, 'paid']
const REVIEW_BILLBOARD_STATUSES = [TEMP_ACCEPT, 'paid']
function postStatusFilter() {
return { $in: PUBLIC_POST_STATUSES }
}
function commentStatusFilter() {
return { $in: PUBLIC_COMMENT_STATUSES }
}
function projectPublicStatusFilter() {
return { $in: PUBLIC_PROJECT_STATUSES }
}
function billboardPublicStatusFilter() {
return { $in: PUBLIC_BILLBOARD_STATUSES }
}
function coursePublicStatusFilter() {
return { $in: PUBLIC_COURSE_STATUSES }
}
function academyContentPublicStatusFilter() {
return { $in: PUBLIC_ACADEMY_CONTENT_STATUSES }
}
function isPublicPostStatus(status) {
return PUBLIC_POST_STATUSES.includes(status)
}
function isPublicCommentStatus(status) {
return PUBLIC_COMMENT_STATUSES.includes(status)
}
function publicCourseStatusFilter() {
return { $in: PUBLIC_COURSE_STATUSES }
}
module.exports = {
TEMP_ACCEPT,
PUBLIC_POST_STATUSES,
PUBLIC_COMMENT_STATUSES,
PUBLIC_PROJECT_STATUSES,
PUBLIC_BILLBOARD_STATUSES,
PUBLIC_COURSE_STATUSES,
PUBLIC_ACADEMY_CONTENT_STATUSES,
REVIEW_POST_STATUSES,
REVIEW_COMMENT_STATUSES,
REVIEW_PROJECT_STATUSES,
REVIEW_BILLBOARD_STATUSES,
postStatusFilter,
commentStatusFilter,
projectPublicStatusFilter,
billboardPublicStatusFilter,
coursePublicStatusFilter,
academyContentPublicStatusFilter,
isPublicPostStatus,
isPublicCommentStatus,
publicCourseStatusFilter,
}