import Joi from 'joi';
import { objectId } from '@/shared/validations/custom.validation.js';

export const configurationValidation = {
  get: {
    params: Joi.object({
      id: Joi.string().custom(objectId).optional(),
    }).unknown(true),
    query: Joi.object({
      name: Joi.string(),
      sortBy: Joi.string(),
      limit: Joi.number().integer().min(1),
      page: Joi.number().integer().min(-1),
      search: Joi.string(),
      populate: Joi.string(),
    }).unknown(true),
  },
  create: Joi.object({
    categoryId: Joi.string().custom(objectId).required(),
    subCategoryId: Joi.string().custom(objectId).required(),
    name: Joi.string().required().trim().lowercase(),
    createdBy: Joi.string().custom(objectId).optional(),
    updatedBy: Joi.string().custom(objectId).optional(),
  }).unknown(true),
  update: {
    params: Joi.object({
      id: Joi.string().custom(objectId).required(),
    }).unknown(true),
    body: Joi.object({
      categoryId: Joi.string().custom(objectId).optional(),
      subCategoryId: Joi.string().custom(objectId).optional(),
      name: Joi.string().trim().lowercase().optional(),
      updatedBy: Joi.string().custom(objectId).optional(),
    }).unknown(true),
  },
  delete: Joi.object({
    id: Joi.string().custom(objectId).required(),
  }).unknown(true),
};
