comfyui-deploy/web/src/server/getCurrentPlan.tsx

33 lines
931 B
TypeScript

import { db } from "@/db/db";
import { and, desc, eq, isNull, or } from "drizzle-orm";
import { subscriptionStatusTable } from "@/db/schema";
import { APIKeyUserType } from "@/server/APIKeyBodyRequest";
import { auth } from "@clerk/nextjs";
export async function getCurrentPlanWithAuth() {
const { userId, orgId } = auth();
const sub = await getCurrentPlan({
org_id: orgId,
user_id: userId,
});
return sub;
}
export async function getCurrentPlan({ user_id, org_id }: APIKeyUserType) {
if (!user_id) throw new Error("No user id");
const sub = await db.query.subscriptionStatusTable.findFirst({
where: and(
eq(subscriptionStatusTable.user_id, user_id),
org_id
? eq(subscriptionStatusTable.org_id, org_id)
: or(isNull(subscriptionStatusTable.org_id), eq(subscriptionStatusTable.org_id, "")),
),
orderBy: desc(subscriptionStatusTable.created_at),
});
return sub;
}