import Joi from 'joi';

export interface CreateRoleBody {
  name: string;
  description?: string;
}

export interface UpdateRoleBody {
  name?: string;
  description?: string;
}

export interface AssignPermissionsBody {
  permissionIds: number[];
}

export const createRoleSchema = Joi.object<CreateRoleBody>({
  name: Joi.string().trim().lowercase().min(2).max(50).required(),
  description: Joi.string().trim().max(255).allow('').optional(),
}).required();

export const updateRoleSchema = Joi.object<UpdateRoleBody>({
  name: Joi.string().trim().lowercase().min(2).max(50),
  description: Joi.string().trim().max(255).allow(''),
}).min(1).required();

export const assignPermissionsSchema = Joi.object<AssignPermissionsBody>({
  permissionIds: Joi.array().items(Joi.number().integer().positive()).min(1).required(),
}).required();
