- Updated `getCurrentSubscription` and related functions to reflect terminology changes. - Adjusted subscription levels and access checks to streamline logic. - Removed unused cases in `getSubLevel` and optimized conditionals for clarity.
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import {SessionProps} from "@/lib/types/session";
|
|
import {Subscription} from "@/lib/types/user";
|
|
import {getCurrentSubscription} from "@/lib/utils/user";
|
|
|
|
export function getSubLevel(session: SessionProps): number {
|
|
let currentSub: Subscription | null = getCurrentSubscription(session?.user, 'ritor-subscription');
|
|
if (!currentSub) {
|
|
currentSub = getCurrentSubscription(session?.user, 'ritor-trial');
|
|
if (!currentSub) {
|
|
return 0;
|
|
}
|
|
}
|
|
switch (currentSub?.subTier) {
|
|
case 1:
|
|
return 1;
|
|
case 2:
|
|
return 2;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
export function isBringYourKeys(session: SessionProps): boolean {
|
|
if (!session?.user) return false;
|
|
return session.user.apiKeys.openai || session.user.apiKeys.anthropic || session.user.apiKeys.gemini;
|
|
}
|
|
|
|
export function isGeminiEnabled(session: SessionProps): boolean {
|
|
return session.user?.apiKeys.gemini || false;
|
|
}
|
|
|
|
export function isAnthropicEnabled(session: SessionProps): boolean {
|
|
return session.user?.apiKeys.anthropic || false;
|
|
}
|
|
|
|
export function isOpenAIEnabled(session: SessionProps): boolean {
|
|
return session.user?.apiKeys.openai || false;
|
|
}
|