72 lines
2.6 KiB
TypeScript
72 lines
2.6 KiB
TypeScript
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": "یادداشت نهایی نامعتبر است",
|
||
}),
|
||
});
|