migration to typescript

This commit is contained in:
JakkrapartXD 2026-01-09 06:28:15 +00:00
parent 924000b084
commit 9fde77468a
41 changed files with 11952 additions and 10164 deletions

View file

@ -0,0 +1,76 @@
import Joi from 'joi';
export const loginSchema = Joi.object({
username: Joi.string()
.min(3)
.max(50)
.required()
.messages({
'string.min': 'Username must be at least 3 characters',
'string.max': 'Username must not exceed 50 characters',
'any.required': 'Username is required'
}),
password: Joi.string()
.min(6)
.required()
.messages({
'string.min': 'Password must be at least 6 characters',
'any.required': 'Password is required'
})
});
export const registerSchema = Joi.object({
username: Joi.string()
.min(3)
.max(50)
.pattern(/^[a-zA-Z0-9_]+$/)
.required()
.messages({
'string.pattern.base': 'Username can only contain letters, numbers, and underscores',
'string.min': 'Username must be at least 3 characters',
'string.max': 'Username must not exceed 50 characters',
'any.required': 'Username is required'
}),
email: Joi.string()
.email()
.required()
.messages({
'string.email': 'Please provide a valid email address',
'any.required': 'Email is required'
}),
password: Joi.string()
.min(6)
.max(100)
.required()
.messages({
'string.min': 'Password must be at least 6 characters',
'string.max': 'Password must not exceed 100 characters',
'any.required': 'Password is required'
}),
first_name: Joi.string()
.min(1)
.max(100)
.required()
.messages({
'any.required': 'First name is required'
}),
last_name: Joi.string()
.min(1)
.max(100)
.required()
.messages({
'any.required': 'Last name is required'
}),
prefix: Joi.object({
th: Joi.string().optional(),
en: Joi.string().optional()
}).optional()
});
export const refreshTokenSchema = Joi.object({
refreshToken: Joi.string()
.required()
.messages({
'any.required': 'Refresh token is required'
})
});