import * as coreJoi from "joi"; import * as joiDate from "@joi/date"; const Joi = coreJoi.extend(joiDate.default(coreJoi)) as typeof coreJoi; import { isValidPhoneNumber, isUniqueEmail, isUnique, isValidGender, isValidSource, isValidSoldier, isValidDate, isValidCvVisitSource, isValidCompanyRight } from "../rules"; export const JoiString = () => Joi.string() export const JoiNumber = () => Joi.number() export const JoiBoolean = () => Joi.boolean() export const JoiEmail = () => Joi.string().email().max(50) export const JoiDate = () => Joi.date().format('YYYY-MM-DD'); export const JoiDateTime = () => Joi.date().format('YYYY-MM-DD HH:mm:ss'); export const JoiUniqueEmail = (status: Boolean) => Joi.custom((data, helper) => isUniqueEmail(status, data, helper)) export const JoiUnique = (status: Boolean) => Joi.required().custom((data, helper) => isUnique(status, data, helper)) export const JoiCvVisitSource = () => Joi.custom(isValidCvVisitSource) export const JoiGender = () => Joi.custom(isValidGender) export const JoiPhoneNumber = () => Joi.custom(isValidPhoneNumber) export const JoiSoldier = () => Joi.custom(isValidSoldier) export const JoiSource = () => Joi.custom(isValidSource) export const JoiCompanyRight = () => Joi.custom(isValidCompanyRight) export const JoiCustom = (rule: any) => Joi.custom(rule) export const JoiTest = () => Joi.custom(isValidDate)