import Joi from 'joi'; /** * Validator for creating an announcement */ export const CreateAnnouncementValidator = Joi.object({ title: Joi.object({ th: Joi.string().required().messages({ 'any.required': 'Thai title is required' }), en: Joi.string().required().messages({ 'any.required': 'English title is required' }) }).required().messages({ 'any.required': 'Title is required' }), content: Joi.object({ th: Joi.string().required().messages({ 'any.required': 'Thai content is required' }), en: Joi.string().required().messages({ 'any.required': 'English content is required' }) }).required().messages({ 'any.required': 'Content is required' }), status: Joi.string() .valid('DRAFT', 'PUBLISHED', 'ARCHIVED') .required() .messages({ 'any.only': 'Status must be one of: DRAFT, PUBLISHED, ARCHIVED', 'any.required': 'Status is required' }), is_pinned: Joi.boolean() .required() .messages({ 'any.required': 'is_pinned is required' }), published_at: Joi.string() .isoDate() .optional() .messages({ 'string.isoDate': 'published_at must be a valid ISO date string' }) }); /** * Validator for updating an announcement */ export const UpdateAnnouncementValidator = Joi.object({ title: Joi.object({ th: Joi.string().optional(), en: Joi.string().optional() }).optional(), content: Joi.object({ th: Joi.string().optional(), en: Joi.string().optional() }).optional(), status: Joi.string() .valid('DRAFT', 'PUBLISHED', 'ARCHIVED') .optional() .messages({ 'any.only': 'Status must be one of: DRAFT, PUBLISHED, ARCHIVED' }), is_pinned: Joi.boolean().optional(), published_at: Joi.string() .isoDate() .optional() .messages({ 'string.isoDate': 'published_at must be a valid ISO date string' }) });