import Joi from 'joi';

export interface CreateVendorBody {
  name: string;
  code?: string;
  category?: string;
  contactPerson?: string;
  phone?: string;
  email?: string;
  address?: string;
  description?: string;
}

export interface UpdateVendorBody {
  name?: string;
  code?: string;
  category?: string;
  contactPerson?: string;
  phone?: string;
  email?: string;
  address?: string;
  description?: string;
}

const contactFields = {
  code: Joi.string().trim().min(1).max(30),
  category: Joi.string().trim().max(50).allow(''),
  contactPerson: Joi.string().trim().max(100).allow(''),
  phone: Joi.string().trim().max(30).allow(''),
  email: Joi.string().trim().lowercase().email().max(254).allow(''),
  address: Joi.string().trim().max(255).allow(''),
  description: Joi.string().trim().max(255).allow(''),
};

export const createVendorSchema = Joi.object<CreateVendorBody>({
  name: Joi.string().trim().min(1).max(150).required(),
  ...contactFields,
}).required();

export const updateVendorSchema = Joi.object<UpdateVendorBody>({
  name: Joi.string().trim().min(1).max(150),
  ...contactFields,
}).min(1).required();
