diff --git a/web/drizzle/migrations/reset-inactive-users.ts b/web/drizzle/migrations/reset-inactive-users.ts index d6911f04..90693fa9 100644 --- a/web/drizzle/migrations/reset-inactive-users.ts +++ b/web/drizzle/migrations/reset-inactive-users.ts @@ -1,28 +1,38 @@ import { db, UserUsageTable } from "../schema"; -import { eq, sql } from "drizzle-orm"; +import { eq, or, sql } from "drizzle-orm"; export async function resetInactiveUsers() { try { - // 1. Reset token usage for inactive users + // 1. Reset token usage for inactive users or users with a lifetime billing cycle await db .update(UserUsageTable) .set({ maxTokenUsage: 0, tokenUsage: 0 }) - .where(eq(UserUsageTable.subscriptionStatus, 'inactive')); + .where( + or( + eq(UserUsageTable.subscriptionStatus, 'inactive'), + eq(UserUsageTable.billingCycle, 'lifetime') + ) + ); - console.log("Successfully reset token usage for inactive users"); + console.log("Successfully reset token usage for inactive users and users with a lifetime billing cycle"); // 2. Get count of affected users for logging - const inactiveUsers = await db + const affectedUsers = await db .select({ count: sql`count(*)`, }) .from(UserUsageTable) - .where(eq(UserUsageTable.subscriptionStatus, 'inactive')); + .where( + or( + eq(UserUsageTable.subscriptionStatus, 'inactive'), + eq(UserUsageTable.billingCycle, 'lifetime') + ) + ); - console.log(`Reset ${inactiveUsers[0].count} inactive users`); + console.log(`Reset ${affectedUsers[0].count} users`); } catch (error) { console.error("Error during migration:", error);