import Joi from 'joi';

export interface CreateCostCodeBody {
  code: string;
  name: string;
  category?: string;
  description?: string;
}

export interface UpdateCostCodeBody {
  code?: string;
  name?: string;
  category?: string;
  description?: string;
}

export const createCostCodeSchema = Joi.object<CreateCostCodeBody>({
  code: Joi.string().trim().min(1).max(30).required(),
  name: Joi.string().trim().min(1).max(150).required(),
  category: Joi.string().trim().max(50).allow('').optional(),
  description: Joi.string().trim().max(255).allow('').optional(),
}).required();

export const updateCostCodeSchema = Joi.object<UpdateCostCodeBody>({
  code: Joi.string().trim().min(1).max(30),
  name: Joi.string().trim().min(1).max(150),
  category: Joi.string().trim().max(50).allow(''),
  description: Joi.string().trim().max(255).allow(''),
}).min(1).required();
