const Joi = require("joi"); // ======================== // Brand Validation // ======================== const insertBrandSchema = Joi.object({ brand_name: Joi.string().max(100).required(), brand_type: Joi.string().max(50).optional(), brand_manufacture: Joi.string().max(100).optional(), brand_model: Joi.string().max(100).optional(), is_active: Joi.boolean().required(), description: Joi.string().max(255).optional(), error_code: Joi.array().items( Joi.object({ error_code: Joi.string().max(100).required(), error_code_name: Joi.string().max(100).required(), error_code_description: Joi.string().optional(), is_active: Joi.boolean().required(), solution: Joi.array().items( Joi.object({ solution_name: Joi.string().max(100).required(), type_solution: Joi.string().valid('text', 'pdf', 'image', 'video', 'link').required(), text_solution: Joi.when('type_solution', { is: 'text', then: Joi.string().required(), otherwise: Joi.string().optional().allow('') }), path_solution: Joi.when('type_solution', { is: 'text', then: Joi.string().optional().allow(''), otherwise: Joi.string().required() }), is_active: Joi.boolean().required() }) ).min(1).required() }) ).min(1).required() }); // Update Brand Validation const updateBrandSchema = Joi.object({ brand_name: Joi.string().max(100).required(), brand_type: Joi.string().max(50).optional(), brand_manufacture: Joi.string().max(100).optional(), brand_model: Joi.string().max(100).optional(), is_active: Joi.boolean().required(), description: Joi.string().max(255).optional(), error_code: Joi.array().items( Joi.object({ error_code: Joi.string().max(100).required(), error_code_name: Joi.string().max(100).required(), error_code_description: Joi.string().optional(), is_active: Joi.boolean().required(), solution: Joi.array().items( Joi.object({ solution_name: Joi.string().max(100).required(), type_solution: Joi.string().valid('text', 'pdf', 'image', 'video', 'link').required(), text_solution: Joi.when('type_solution', { is: 'text', then: Joi.string().required(), otherwise: Joi.string().optional().allow('') }), path_solution: Joi.when('type_solution', { is: 'text', then: Joi.string().optional().allow(''), otherwise: Joi.string().required() }), is_active: Joi.boolean().optional() }) ).min(1).required() }) ).optional() }).min(1); module.exports = { insertBrandSchema, updateBrandSchema };