This commit is contained in:
payacom
2026-08-31 20:45:41 +03:30
parent fa9f23c61d
commit 3f416a7a60
367 changed files with 621895 additions and 6443 deletions

View File

@@ -0,0 +1,38 @@
const FREE_LIFETIME_CREATION_LIMIT = 100
const canUseFreeCreation = (user) => {
const used = user?.lifetime_free_creations || 0
return used < FREE_LIFETIME_CREATION_LIMIT
}
const remainingFreeCreations = (user) => {
const used = user?.lifetime_free_creations || 0
return Math.max(0, FREE_LIFETIME_CREATION_LIMIT - used)
}
const consumeFreeCreation = async (user) => {
if (!canUseFreeCreation(user)) {
return {
ok: false,
message: `سقف ${FREE_LIFETIME_CREATION_LIMIT} ثبت رایگان (پروژه، بیلبورد و درخواست) به پایان رسیده است.`,
}
}
user.lifetime_free_creations = (user.lifetime_free_creations || 0) + 1
await user.save()
return { ok: true }
}
const freeCreationLimitResponse = () => ({
error: true,
message: `سقف ${FREE_LIFETIME_CREATION_LIMIT} ثبت رایگان (پروژه، بیلبورد و درخواست) به پایان رسیده است.`,
})
module.exports = {
FREE_LIFETIME_CREATION_LIMIT,
canUseFreeCreation,
remainingFreeCreations,
consumeFreeCreation,
freeCreationLimitResponse,
}