refactor(api): extract timeline quick assign support

This commit is contained in:
2026-03-31 17:55:52 +02:00
parent ff57fc24ce
commit e082f1748b
5 changed files with 80 additions and 75 deletions
@@ -0,0 +1,34 @@
import { AllocationStatus } from "@capakraken/shared";
export function calculateTimelineAllocationPercentage(hoursPerDay: number): number {
return Math.min(100, Math.round((hoursPerDay / 8) * 100));
}
export function buildTimelineQuickAssignMetadata(source: "quickAssign" | "batchQuickAssign") {
return { source } satisfies Record<string, unknown>;
}
export function buildTimelineQuickAssignAssignmentInput(input: {
resourceId: string;
projectId: string;
startDate: Date;
endDate: Date;
hoursPerDay: number;
role: string;
roleId?: string | undefined;
status: AllocationStatus;
source: "quickAssign" | "batchQuickAssign";
}) {
return {
resourceId: input.resourceId,
projectId: input.projectId,
startDate: input.startDate,
endDate: input.endDate,
hoursPerDay: input.hoursPerDay,
percentage: calculateTimelineAllocationPercentage(input.hoursPerDay),
role: input.role,
...(input.roleId !== undefined ? { roleId: input.roleId } : {}),
status: input.status,
metadata: buildTimelineQuickAssignMetadata(input.source),
};
}