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