Files
Nexus/packages/application/src/use-cases/dashboard/get-top-value-resources.ts
T

37 lines
841 B
TypeScript

import type { PrismaClient } from "@planarchy/db";
export interface GetDashboardTopValueResourcesInput {
limit: number;
userRole: string;
}
export async function getDashboardTopValueResources(
db: PrismaClient,
input: GetDashboardTopValueResourcesInput,
) {
const settings = await db.systemSettings.findUnique({
where: { id: "singleton" },
});
const visibleRoles =
(settings?.scoreVisibleRoles as unknown as string[]) ?? ["ADMIN", "MANAGER"];
if (!visibleRoles.includes(input.userRole)) {
return [];
}
return db.resource.findMany({
where: { isActive: true, valueScore: { not: null } },
select: {
id: true,
eid: true,
displayName: true,
chapter: true,
valueScore: true,
lcrCents: true,
},
orderBy: { valueScore: "desc" },
take: input.limit,
});
}