first commit

This commit is contained in:
Isuru Bimsara
2026-08-14 22:46:02 +05:30
commit 81d0e65686
132 changed files with 24398 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// utils/referenceNumber.util.js
const { referenceNumber } = require("../models");
const { sequelize } = require("../models");
const crypto = require("crypto");
const pad = (num, size = 4) => {
return String(num).padStart(size, "0");
};
const nextSequence = async (sequenceKey, transaction) => {
const options = {
where: { sequence_key: sequenceKey },
};
// Only add transaction and lock if transaction is provided
if (transaction) {
options.transaction = transaction;
options.lock = transaction.LOCK.UPDATE;
}
let sequence = await referenceNumber.findOne(options);
if (!sequence) {
const createOptions = transaction ? { transaction } : {};
sequence = await referenceNumber.create(
{
id: crypto.randomUUID(),
sequence_key: sequenceKey,
current_number: 1,
},
createOptions
);
return 1;
}
sequence.current_number += 1;
const saveOptions = transaction ? { transaction } : {};
await sequence.save(saveOptions);
return sequence.current_number;
};
module.exports = { nextSequence, pad };