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

const activityPointSchema = Joi.object({
  activityId: Joi.string().required(),
  points: Joi.number().required(),
});

export const createLeadScoreConfig = {
  body: Joi.object({
    activityPoints: Joi.array().items(activityPointSchema).required(),
    zeroScoreIfLeadLost: Joi.boolean(),
    fullScoreIfLeadWon: Joi.boolean(),
  }),
};

export const updateLeadScoreConfig = () => ({
  query: Joi.object().keys({
    id: Joi.string().custom(objectId).required(),
  }),
  body: Joi.object({
    activityPoints: Joi.array().items(activityPointSchema).required(),
    zeroScoreIfLeadLost: Joi.boolean(),
    fullScoreIfLeadWon: Joi.boolean(),
  }),
});

export const getLeadScoreConfig = {
  query: Joi.object().keys({
    companyId: Joi.string().custom(objectId),
    sortBy: Joi.string(),
    limit: Joi.number().integer().min(1),
    page: Joi.number().integer().min(-1),
    includeTimeStamps: Joi.boolean(),
  }),
};

export const getLeadScoreConfigById = {
  params: Joi.object().keys({
    id: Joi.string().custom(objectId),
  }),
};

export const deleteLeadScoreConfigById = {
  params: Joi.object().keys({
    id: Joi.string().custom(objectId),
  }),
};
