Add sessionHolding template, unique 8-digit codes, reason slot for sessionCancelled, and disable unused notifications

This commit is contained in:
2026-08-21 10:44:51 +03:30
parent 5328f36f06
commit 091e519280
28 changed files with 2180 additions and 280 deletions
+32
View File
@@ -0,0 +1,32 @@
'use strict';
const { generateUniqueCode } = require('./uniqueCode');
/**
* Mongoose plugin: auto-assigns an 8-digit uniqueCode before validation if missing.
*/
const uniqueCodePlugin = (schema, options = {}) => {
const field = options.field || 'uniqueCode';
schema.add({
[field]: {
type: String,
unique: true,
sparse: true,
trim: true,
index: true
}
});
schema.pre('validate', async function assignUniqueCode(next) {
if (this[field]) return next();
try {
this[field] = await generateUniqueCode(this.constructor, field);
return next();
} catch (err) {
return next(err);
}
});
};
module.exports = uniqueCodePlugin;