Files
2025-03-19 18:45:40 +02:00

88 lines
2.5 KiB
JavaScript

/**
* Rules manager class, контролен клас за управление на игрови правила
*/
class RulesManager{
name = 'rule';
/**
* 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 }