first commit

This commit is contained in:
2026-05-23 14:14:50 +03:30
commit 2a22bab127
48 changed files with 7554 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
import Joi from "joi";
import { TicketPriority, TicketStatus } from "../../../core/types";
export const ticketValidationSchema = Joi.object({
// ticketNumber: Joi.string().optional().allow(null,""),
departmentId: Joi.string().uuid().required().messages({
"string.base": "شناسه دپارتمان نامعتبر است",
"string.empty": "شناسه دپارتمان الزامی است",
"string.guid": "فرمت شناسه دپارتمان صحیح نیست",
"any.required": "شناسه دپارتمان الزامی است",
}),
internalPhone: Joi.string()
.pattern(/^[0-9]{3,10}$/)
.optional()
.messages({
"string.pattern.base": "شماره داخلی باید فقط عدد و بین ۳ تا ۱۰ رقم باشد",
}),
requestType: Joi.string().required().messages({
"string.empty": "نوع درخواست الزامی است",
"any.required": "نوع درخواست الزامی است",
}),
priority: Joi.string()
.valid(...Object.values(TicketPriority))
.optional()
.messages({
"any.only": "اولویت انتخاب شده معتبر نیست",
}),
description: Joi.string().min(5).required().messages({
"string.empty": "توضیحات الزامی است",
"string.min": "توضیحات باید حداقل ۵ کاراکتر باشد",
"any.required": "توضیحات الزامی است",
}),
relatedSystem: Joi.string().optional().allow("").messages({
"string.base": "سیستم مرتبط نامعتبر است",
}),
location: Joi.string().optional().allow("").messages({
"string.base": "موقعیت وارد شده نامعتبر است",
}),
createdBy: Joi.string().required().allow("").messages({
"string.empty": "نام نام خانوادگي كاربر الزامی است",
"any.required": "نام نام خانوادگي كاربر الزامی است",
}),
helpdeskAction: Joi.string().optional().allow("").messages({
"string.base": "اقدام واحد پشتیبانی نامعتبر است",
}),
assignedTo: Joi.string().uuid().optional().messages({
"string.guid": "شناسه کاربر تخصیص داده شده نامعتبر است",
}),
status: Joi.string()
.valid(...Object.values(TicketStatus))
.optional()
.messages({
"any.only": "وضعیت تیکت نامعتبر است",
}),
resolvedAt: Joi.date().optional().messages({
"date.base": "تاریخ حل شدن نامعتبر است",
}),
finalNotes: Joi.string().optional().allow("").messages({
"string.base": "یادداشت نهایی نامعتبر است",
}),
});