fix: ai balance for unlimited plan

This commit is contained in:
Vasily Zubarev
2025-05-03 09:48:38 +02:00
parent 6c3641c469
commit 69bc4b3889
3 changed files with 18 additions and 16 deletions

View File

@@ -6,7 +6,7 @@ import { buildLLMPrompt } from "@/ai/prompt"
import { fieldsToJsonSchema } from "@/ai/schema" import { fieldsToJsonSchema } from "@/ai/schema"
import { transactionFormSchema } from "@/forms/transactions" import { transactionFormSchema } from "@/forms/transactions"
import { ActionState } from "@/lib/actions" import { ActionState } from "@/lib/actions"
import { getCurrentUser, isSubscriptionExpired } from "@/lib/auth" import { getCurrentUser, isAiBalanceExhausted, isSubscriptionExpired } from "@/lib/auth"
import config from "@/lib/config" import config from "@/lib/config"
import { getTransactionFileUploadPath, getUserUploadsDirectory } from "@/lib/files" import { getTransactionFileUploadPath, getUserUploadsDirectory } from "@/lib/files"
import { DEFAULT_PROMPT_ANALYSE_NEW_FILE } from "@/models/defaults" import { DEFAULT_PROMPT_ANALYSE_NEW_FILE } from "@/models/defaults"
@@ -36,19 +36,17 @@ export async function analyzeFileAction(
return { success: false, error: "OpenAI API key is not set" } return { success: false, error: "OpenAI API key is not set" }
} }
if (!config.selfHosted.isEnabled) { if (isAiBalanceExhausted(user)) {
if (user.aiBalance <= 0) { return {
return { success: false,
success: false, error: "You used all of your pre-paid AI scans, please upgrade your account or buy new subscription plan",
error: "You used all of your pre-paid AI scans, please upgrade your account or buy new subscription plan",
}
} }
}
if (isSubscriptionExpired(user)) { if (isSubscriptionExpired(user)) {
return { return {
success: false, success: false,
error: "Your subscription has expired, please upgrade your account or buy new subscription plan", error: "Your subscription has expired, please upgrade your account or buy new subscription plan",
}
} }
} }

View File

@@ -323,9 +323,6 @@ export default function LandingPage() {
<section className="py-20 px-8 bg-gradient-to-b from-white to-gray-50 mt-28"> <section className="py-20 px-8 bg-gradient-to-b from-white to-gray-50 mt-28">
<div className="max-w-7xl mx-auto"> <div className="max-w-7xl mx-auto">
<div className="text-center mb-16"> <div className="text-center mb-16">
<div className="inline-block px-4 py-2 rounded-full bg-purple-50 text-purple-600 text-sm font-medium mb-6">
🚀 Under Active Development
</div>
<h2 className="text-3xl font-bold mb-4 bg-gradient-to-r from-gray-900 to-gray-600 bg-clip-text text-transparent"> <h2 className="text-3xl font-bold mb-4 bg-gradient-to-r from-gray-900 to-gray-600 bg-clip-text text-transparent">
Upcoming Features Upcoming Features
</h2> </h2>

View File

@@ -1,5 +1,5 @@
import config from "@/lib/config" import config from "@/lib/config"
import { getSelfHostedUser, getUserByEmail, getUserById } from "@/models/users" import { getSelfHostedUser, getUserByEmail, getUserById, SELF_HOSTED_USER } from "@/models/users"
import { User } from "@prisma/client" import { User } from "@prisma/client"
import { betterAuth } from "better-auth" import { betterAuth } from "better-auth"
import { prismaAdapter } from "better-auth/adapters/prisma" import { prismaAdapter } from "better-auth/adapters/prisma"
@@ -101,3 +101,10 @@ export function isSubscriptionExpired(user: User) {
} }
return user.membershipExpiresAt && user.membershipExpiresAt < new Date() return user.membershipExpiresAt && user.membershipExpiresAt < new Date()
} }
export function isAiBalanceExhausted(user: User) {
if (config.selfHosted.isEnabled || user.membershipPlan === SELF_HOSTED_USER.membershipPlan) {
return false
}
return user.aiBalance <= 0
}