/** * Rules manager class, контролен клас за управление на игрови правила */ class RulesManager{ name = 'rules'; /** * Class initializer, инициализация на плъгин * @param {App} app Class initializer, основна апликация */ init(app){ const {db} = app; /** * Creates a new rule, създаване на ново правило * @param {Context} ctx Request context, контекст на заявката * @param {Rule} data the rule, данни за правилото */ this.create = async function(ctx, data){ } /** * Reads rule by ID, извличане на игрово правило от базата от данни по подаден идентификатор * @param {Number} id rule ID, идентификатор на правило * @returns {Rule} */ this.read = async function(id){ } /** * Updates rule, обновяване на игрово правило * @param {Context} ctx Request context, контекст на заявката * @param {Rule} data the rule, данни за правилото */ this.update = async function(ctx, data){ } /** * Removes rule by ID, изтриване на игрово правило по подаден идентификатор * @param {Number} id rule ID, идентификатор на правилото */ this.remove = async function(id){ } /** * Returns a set of rules by given criteria, търсене в игровите правила по зададени критерии * @param {Query} query criteria, критерии, заявка към базата от данни * @returns {Rule[]} */ this.list = async function(query){ } } /** * Class starter * @param {App} app The application, основна апликация */ async start(app){ } } /** * Rule entity, игрово правило - елемент */ class Rule { /** * Rule name, име на правилото * @type string */ name = null; /** * Rule definition, дефиниция на правилото * @type Object */ name = null; } export { RulesManager }