HotTRDealsBackend/services/redis/dealId.service.js
2026-02-07 22:42:02 +00:00

27 lines
686 B
JavaScript

const prisma = require("../../db/client")
const { ensureCounterAtLeast, nextId } = require("./idGenerator.service")
const DEAL_ID_KEY = "data:ids:deal"
async function ensureDealIdCounter() {
const latest = await prisma.deal.findFirst({
select: { id: true },
orderBy: { id: "desc" },
})
const maxId = latest?.id ?? 0
await ensureCounterAtLeast(DEAL_ID_KEY, maxId)
}
async function generateDealId() {
try {
return await nextId(DEAL_ID_KEY)
} catch {
const latest = await prisma.deal.findFirst({
select: { id: true },
orderBy: { id: "desc" },
})
return (latest?.id ?? 0) + 1
}
}
module.exports = { ensureDealIdCounter, generateDealId }