Ship free-tier watermark policy (2 clean renders) and align pricing/legal copy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Atakan Doğan Özban
2026-08-03 07:41:11 +02:00
co-authored by Cursor
parent 26c4b22fbb
commit 8f6b894f80
17 changed files with 346 additions and 34 deletions
+7 -1
View File
@@ -7,8 +7,9 @@ import {
} from "./billing";
import { FREE_EXTRA_CREDITS_MAX, MAX_CREDIT_CAP, PRO_UPGRADE_REQUIRED_SUFFIX, monthlyCreditsForPlan } from "./credits";
import { prisma } from "./db";
import { isSelfHostedEdition } from "./edition";
import { hasProFeatures, isSelfHostedEdition } from "./edition";
import { getNextMonthlyQuotaReset, getPlanLimits } from "./plans";
import { watermarkFreeRendersRemaining } from "./watermark-policy";
export function formatQuotaResetCountdown(resetsAt: Date | string): string {
const target = typeof resetsAt === "string" ? new Date(resetsAt) : resetsAt;
@@ -106,6 +107,11 @@ export async function getQuotaInfo(userId: string) {
resetsAt: user.quotaResetAt.toISOString(),
resetsIn: formatQuotaResetDisplay(user.plan, user.quotaResetAt),
plan: user.plan,
subscriptionStatus: hasProFeatures(user.plan) ? ("pro" as const) : ("free" as const),
createdVideoCount: user.createdVideoCount,
watermarkFreeRemaining: hasProFeatures(user.plan)
? null
: watermarkFreeRendersRemaining(user.createdVideoCount),
maxBatchSize: limits.maxBatchSize,
watermarkOptional: limits.watermarkOptional,
customWatermark: limits.customWatermark,