27 lines
750 B
TypeScript
27 lines
750 B
TypeScript
import { getDatabase } from "@/lib/database";
|
|
import { getMembershipFeatures } from "./features";
|
|
|
|
export async function getUserMembershipContext(userId: string): Promise<{
|
|
membershipType: "basic" | "premium" | "vip";
|
|
features: ReturnType<typeof getMembershipFeatures>;
|
|
}> {
|
|
const db = await getDatabase();
|
|
const user = await db.getUserById(userId);
|
|
|
|
if (!user || user.role !== "client") {
|
|
const membershipType = "vip" as const;
|
|
return {
|
|
membershipType,
|
|
features: getMembershipFeatures(membershipType),
|
|
};
|
|
}
|
|
|
|
const client = await db.getClientByUserId(userId);
|
|
const membershipType = client?.membershipType ?? "basic";
|
|
|
|
return {
|
|
membershipType,
|
|
features: getMembershipFeatures(membershipType),
|
|
};
|
|
}
|