perf(api): eliminate 3 N+1 query patterns
- timeline-holiday-load-support: deduplicate getResolvedCalendarHolidays by location key so resources sharing the same country/state/city resolve holidays once instead of per-resource - rate-card-lookup: add lookupRatesBatch that loads rate card lines once and scores locally per demand line, replacing per-line DB round-trips in estimate-demand-lines autoFillDemandLineRates - config-readmodels: include _count in utilization-category list query instead of calling getById per category for project counts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,9 +14,11 @@ import {
|
||||
unsetDefaultUtilizationCategory,
|
||||
} from "./utilization-category-support.js";
|
||||
|
||||
export const UtilizationCategoryListInputSchema = z.object({
|
||||
isActive: z.boolean().optional(),
|
||||
}).optional();
|
||||
export const UtilizationCategoryListInputSchema = z
|
||||
.object({
|
||||
isActive: z.boolean().optional(),
|
||||
})
|
||||
.optional();
|
||||
|
||||
export const UtilizationCategoryByIdInputSchema = z.object({
|
||||
id: z.string(),
|
||||
@@ -38,6 +40,7 @@ export async function listUtilizationCategories(
|
||||
return ctx.db.utilizationCategory.findMany({
|
||||
where: buildUtilizationCategoryListWhere(input ?? {}),
|
||||
orderBy: { sortOrder: "asc" },
|
||||
include: { _count: { select: { projects: true } } },
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user