Allow admins to edit transaction amount and status, recalculate payment totals, and mark invoices fully paid when paid transactions cover the payable amount.
193 lines
6.5 KiB
JSON
193 lines
6.5 KiB
JSON
{
|
|
"USER_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "User not found.",
|
|
"fa": "کاربر یافت نشد."
|
|
},
|
|
"USER_ALREADY_EXISTS": {
|
|
"statusCode": 409,
|
|
"en": "User with this national ID, phone number, or email already exists.",
|
|
"fa": "کاربری با این کدملی، شماره تلفن یا ایمیل از قبل وجود دارد."
|
|
},
|
|
"PROFESSOR_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Professor not found.",
|
|
"fa": "استاد یافت نشد."
|
|
},
|
|
"PROFESSOR_ALREADY_EXISTS": {
|
|
"statusCode": 409,
|
|
"en": "Professor with this national ID, phone number, or email already exists.",
|
|
"fa": "استادی با این کدملی، شماره تلفن یا ایمیل از قبل وجود دارد."
|
|
},
|
|
"COURSE_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Course not found.",
|
|
"fa": "دوره یافت نشد."
|
|
},
|
|
"COURSE_CAPACITY_FULL": {
|
|
"statusCode": 400,
|
|
"en": "Course capacity is full.",
|
|
"fa": "ظرفیت دوره تکمیل است."
|
|
},
|
|
"ALREADY_ENROLLED": {
|
|
"statusCode": 400,
|
|
"en": "User is already enrolled in this course.",
|
|
"fa": "کاربر قبلاً در این دوره ثبتنام کرده است."
|
|
},
|
|
"SESSION_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Session not found.",
|
|
"fa": "جلسه یافت نشد."
|
|
},
|
|
"ATTENDANCE_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Attendance record not found.",
|
|
"fa": "سابقه حضور و غیاب یافت نشد."
|
|
},
|
|
"ATTENDANCE_ALREADY_EXISTS": {
|
|
"statusCode": 409,
|
|
"en": "Attendance record already exists for this student in this session.",
|
|
"fa": "سابقه حضور و غیاب برای این دانشجو در این جلسه قبلاً ثبت شده است."
|
|
},
|
|
"PAYMENT_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Payment record not found.",
|
|
"fa": "سابقه پرداخت یافت نشد."
|
|
},
|
|
"TRANSACTION_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Transaction not found.",
|
|
"fa": "تراکنش یافت نشد."
|
|
},
|
|
"ROLE_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Role not found.",
|
|
"fa": "نقش یافت نشد."
|
|
},
|
|
"ROLE_ALREADY_EXISTS": {
|
|
"statusCode": 409,
|
|
"en": "Role with this name already exists.",
|
|
"fa": "نقشی با این نام از قبل وجود دارد."
|
|
},
|
|
"SYSTEM_ROLE_PROTECTED": {
|
|
"statusCode": 403,
|
|
"en": "System roles cannot be modified or deleted.",
|
|
"fa": "نقشهای سیستمی قابل تغییر یا حذف نیستند."
|
|
},
|
|
"NOTIFICATION_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Notification record not found.",
|
|
"fa": "اعلان یافت نشد."
|
|
},
|
|
"CERTIFICATE_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Certificate not found.",
|
|
"fa": "مدرک یافت نشد."
|
|
},
|
|
"DOCUMENT_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Document not found.",
|
|
"fa": "سند یافت نشد."
|
|
},
|
|
"CLASS_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Class not found.",
|
|
"fa": "کلاس یافت نشد."
|
|
},
|
|
"DEFAULT_ROLE_NOT_FOUND": {
|
|
"statusCode": 500,
|
|
"en": "Default user role was not found. Please seed the database.",
|
|
"fa": "نقش پیشفرض کاربر یافت نشد. لطفاً دیتابیس را seed کنید."
|
|
},
|
|
"VALIDATION_FAILED": {
|
|
"statusCode": 400,
|
|
"en": "Validation failed.",
|
|
"fa": "اعتبارسنجی ناموفق بود."
|
|
},
|
|
"UNAUTHORIZED": {
|
|
"statusCode": 401,
|
|
"en": "Authentication required. Invalid or missing token.",
|
|
"fa": "احراز هویت لازم است. توکن نامعتبر یا یافت نشد."
|
|
},
|
|
"FORBIDDEN": {
|
|
"statusCode": 403,
|
|
"en": "Access denied. Insufficient permissions.",
|
|
"fa": "دسترسی رد شد. مجوز کافی ندارید."
|
|
},
|
|
"INVALID_CREDENTIALS": {
|
|
"statusCode": 401,
|
|
"en": "Invalid username or password.",
|
|
"fa": "نام کاربری یا رمز عبور اشتباه است."
|
|
},
|
|
"INVALID_CURRENT_PASSWORD": {
|
|
"statusCode": 401,
|
|
"en": "Current password is incorrect.",
|
|
"fa": "رمز عبور فعلی اشتباه است."
|
|
},
|
|
"WEAK_PASSWORD": {
|
|
"statusCode": 400,
|
|
"en": "Password must be at least 6 characters.",
|
|
"fa": "رمز عبور باید حداقل ۶ نویسه باشد."
|
|
},
|
|
"PHONE_NUMBER_REQUIRED": {
|
|
"statusCode": 400,
|
|
"en": "A phone number is required to send login credentials by SMS.",
|
|
"fa": "برای ارسال اطلاعات ورود با پیامک، شماره همراه الزامی است."
|
|
},
|
|
"TOKEN_EXPIRED": {
|
|
"statusCode": 401,
|
|
"en": "Token has expired. Please login again.",
|
|
"fa": "توکن منقضی شده است. لطفا مجددا وارد شوید."
|
|
},
|
|
"INVALID_REFRESH_TOKEN": {
|
|
"statusCode": 401,
|
|
"en": "Invalid or revoked refresh token.",
|
|
"fa": "توکن بازنشانی نامعتبر یا باطل شده است."
|
|
},
|
|
"DUPLICATE_KEY": {
|
|
"statusCode": 409,
|
|
"en": "Duplicate key error. A unique field already exists.",
|
|
"fa": "خطای کلید تکراری. مقداری یکتا از قبل وجود دارد."
|
|
},
|
|
"NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "Requested route or resource not found.",
|
|
"fa": "مسیر یا منبع درخواستی یافت نشد."
|
|
},
|
|
"INTERNAL_SERVER_ERROR": {
|
|
"statusCode": 500,
|
|
"en": "An internal server error occurred.",
|
|
"fa": "خطای داخلی سرور رخ داده است."
|
|
},
|
|
"FILE_REQUIRED": {
|
|
"statusCode": 400,
|
|
"en": "File is required.",
|
|
"fa": "ارسال فایل الزامی است."
|
|
},
|
|
"FILE_NOT_FOUND": {
|
|
"statusCode": 404,
|
|
"en": "The requested file was not found.",
|
|
"fa": "فایل مورد نظر یافت نشد."
|
|
},
|
|
"UNSUPPORTED_FILE_TYPE": {
|
|
"statusCode": 400,
|
|
"en": "This file type is not allowed. Use JPEG, PNG, WebP, GIF, or PDF.",
|
|
"fa": "این نوع فایل مجاز نیست. از JPEG، PNG، WebP، GIF یا PDF استفاده کنید."
|
|
},
|
|
"FILE_COMMIT_FAILED": {
|
|
"statusCode": 502,
|
|
"en": "Failed to store the uploaded file. Please try again.",
|
|
"fa": "ذخیره فایل آپلودشده ناموفق بود. لطفا دوباره تلاش کنید."
|
|
},
|
|
"SEED_LOCKED": {
|
|
"statusCode": 409,
|
|
"en": "Database seeding has already been completed and is locked.",
|
|
"fa": "راهاندازی پایگاه داده قبلاً انجام شده و قفل است."
|
|
},
|
|
"SEED_FAILED": {
|
|
"statusCode": 500,
|
|
"en": "Database seeding failed.",
|
|
"fa": "راهاندازی پایگاه داده با خطا مواجه شد."
|
|
}
|
|
}
|