first commit

This commit is contained in:
sajjadtalkhabi
2026-05-13 01:43:05 +03:30
commit d2a577f254
297 changed files with 36274 additions and 0 deletions
+195
View File
@@ -0,0 +1,195 @@
export const getEnumObject = (enumArray, key = 'value', value = 'label') =>
enumArray.reduce((acc, option) => {
acc[option[key]] = option[value]
return acc
}, {})
export const ROLES = Object.freeze([
{ value: 'admin', label: 'مدیر' },
{ value: 'student', label: 'دانش‌آموز' },
])
export const LOGIN_STEPS = Object.freeze({
LOGIN: 1,
LOGIN_WITH_VERIFY_CODE: 2,
VERIFY_CODE: 3,
})
export const SIGNUP_STEPS = Object.freeze({
SIGNUP: 1,
VERIFY_CODE: 2,
})
export const STUDENT_REGISTRATION = Object.freeze({
PERSONAL_INFORMATION: 1,
EDUCATIONAL_INFORMATION: 2,
PROFESSIONAL_INFORMATION: 3,
SKILL_ASSESSMENT_PART_1: 4,
SKILL_ASSESSMENT_PART_2: 5,
SKILL_ASSESSMENT_PART_3: 6,
SKILL_ASSESSMENT_PART_4: 7,
SKILL_ASSESSMENT_PART_5: 8,
SKILL_ASSESSMENT_PART_6: 9,
SKILL_ASSESSMENT_PART_7: 10,
})
export const STUDENT_REGISTRATION_ORDER = Object.freeze(Object.values(STUDENT_REGISTRATION))
export const USER_STATUS = Object.freeze({
approved: 'تأیید شده',
pending: 'در انتظار',
rejected: 'رد شده',
blocked: 'مسدود',
})
export const MARITAL_STATUS = Object.freeze({
single: 'مجرد',
married: 'متاهل',
divorced: 'مطلقه',
widowed: 'بیوه',
})
export const GENDER = Object.freeze({
male: 'اقا',
female: 'خانم',
})
export const ROLE_LABELS = Object.freeze({
admin: 'مدیر',
counselor: 'مشاور',
missionary: 'مبلغ',
student: 'دانشجو',
teacher: 'استاد',
})
export const CHANGEABLE_ROLES = Object.freeze(['student', 'teacher', 'missionary', 'counselor'])
export const EDUCATION_STATUS = Object.freeze({
seminary_student: 'طلبه',
seminary_and_university_student: 'طلبه و دانشجو',
graduate: 'فارغ التحصیلی',
})
export const SEMINARY_LEVEL = Object.freeze({
level_2: 'سطح دو',
level_3: 'سطح سه',
level_4: 'سطح چهار',
not_applicable: 'طلبه نیستم',
})
export const UNIVERSITY_LEVEL = Object.freeze({
bachelor: ' مقطع کارشناسی (لیسانس)',
master: ' مقطع کارشناسی ارشد (فوق لیسانس)',
phd: ' مقطع دکتری',
not_applicable: 'دانشجو نیستم',
})
export const PROPAGATION_PLATFORM = Object.freeze({
home_gathering_occasional: 'روضه‌های خانگی مناسبتی',
home_gathering_regular: 'جلسات خانگی ثابت',
online: 'فضای مجازی',
university: 'دانشگاه',
school: 'مدرسه',
other: 'سایر فضاهای تبلیغی',
none: 'فعالیتی نداشته‌ام',
})
export const LOW_SATISFACTION_RESPONSE = Object.freeze({
change_the_method: 'روش را عوض می‌کنید در حالی که ایمان به صحت آن دارید',
insist_on_your_method:
'اصرار بر روش و مسیر خود دارید و معتقد هستید مخاطب باید خود را به آن سطح برساند',
other: 'کاری به غیر از گزینه‌های ذکر شده انجام می‌دهید',
})
export const SESSION_CANCELLATION_RESPONSE = Object.freeze({
teach_how_to_reduce_costs: 'آموزش روش‌های کاهش هزینه به صاحب بیت',
provide_solutions_to_cover_meeting_costs: 'ارائه راهکارهای تامین هزینه‌های جلسه',
setup_or_find_an_alternative_meeting: 'راه‌اندازی یا پیدا کردن یک جلسه جایگزین با همان جمع',
convince_the_homeowner_to_continue: 'توجیه و اقناع صاحب بیت برای ادامه دادن',
other: 'کاری به غیر از گزینه‌های ذکر شده انجام می‌دهید',
})
export const AUDIENCE_CONFLICT_RESPONSE = Object.freeze({
divide_the_crowd:
'جمع را تفکیک می‌کنید و برای هر کدام متناسب با آن چیزی که می‌خواهند ارائه می‌دهید',
convince_one_of_the_groups: 'سعی می‌کنید یکی از گروه‌ها را متقاعد کنید',
considering_one_of_the_groups: 'بی‌توجه به یکی از گروه‌ها به ارائه خود می‌پردازید',
other: 'کاری غیر از گزینه‌های ذکر شده را انجام می‌دهید',
})
export const COMPETING_PROPAGATOR_RESPONSE = Object.freeze({
strengthen_yourself: 'خود را در زمینه ابزارها و روش‌ها تقویت می‌کنید تا جلسه شما پررونق شود',
close_your_meeting_and_strengthen_the_preacher:
'جلسه خود را تعطیل کرده و سعی در تقویت بنیه معرفتی مبلغه جلسه مذکور خواهید داشت',
convince_the_other_preacher_to_strengthen_or_close:
'سعی می‌کنید مبلغه دیگر را توجیه و اقناع کنید تا یا بنیه خود را تقویت کند یا جلسه را تعطیل کند',
bring_a_skilled_person_with_me:
'یک نفر دارای مهارت را به عنوان کمک و معین برای تقویت جلسه و روش و ابزارها، با خود همراه می‌کردم',
other: 'کاری غیر از گزینه‌های ذکر شده انجام می‌دادم',
})
export const VERIFICATION_MEDIA_TYPE = Object.freeze({
FAITH_PRODUCTION: 'faith_production',
LEADER_MESSAGE: 'leader_message',
})
export const SESSION_TYPE = Object.freeze({
in_person: 'حضوری',
online: 'آنلاین',
video: 'ویدئو',
audio: 'صوتی',
text: 'متن',
slide: 'اسلاید',
pdf: 'PDF',
})
export const SESSION_PLATFORM = Object.freeze({
zoom: 'Zoom',
google_meet: 'Google Meet',
teams: 'Microsoft Teams',
custom: 'سایر',
})
export const ASSIGNMENT_PRIORITY = Object.freeze({
mandatory: 'اجباری',
optional: 'اختیاری',
})
export const TICKET_STATUS = Object.freeze({
pending: 'در انتظار پاسخ',
answered: 'پاسخ داده شده',
closed: 'بسته شده',
})
export const STUDENT_COURSE_STATUS = Object.freeze({
watching: 'در حال گذراندن',
waitForExam: 'در انتظار آزمون',
completed: 'تکمیل شده',
failed: 'عدم قبولی',
})
export const PRIORITY_STATUS = Object.freeze({
high: 'بالا',
medium: 'متوسط',
low: 'پایین',
})
export const SERVICE_STATUS = Object.freeze({
approved: 'تایید شده',
pending: 'در انتظار بررسی',
in_progress: 'در حال انجام',
completed: 'تکمیل شده',
})
export const SERVICE_TYPE = Object.freeze({
loan: 'وام',
consultation: 'مشاوره',
educational: 'آموزشی',
other: 'سایر',
})
export const CONSULTATION_STATUS = Object.freeze({
in_progress: 'در حال گفتگو',
answered: 'پاسخ داده شده',
closed: 'بسته شده',
})