import Joi from 'joi';

export interface CreatePermissionBody {
  name: string;
  description?: string;
  module?: string;
}

// Dot-namespaced, e.g. "users.create", "wbs.approve".
export const createPermissionSchema = Joi.object<CreatePermissionBody>({
  name: Joi.string().trim().lowercase().pattern(/^[a-z0-9]+(\.[a-z0-9]+)+$/).max(100).required()
    .messages({ 'string.pattern.base': '"name" must be dot-namespaced, e.g. "users.create"' }),
  description: Joi.string().trim().max(255).allow('').optional(),
  module: Joi.string().trim().max(50).optional(),
}).required();
