54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
import type { PrismaClient } from "@capakraken/db";
|
|
import { PermissionKey } from "@capakraken/shared";
|
|
import { managerProcedure, requirePermission } from "../trpc.js";
|
|
import {
|
|
UpdateAllocationHoursSchema,
|
|
timelineBatchQuickAssignInputSchema,
|
|
timelineBatchShiftAllocationsInputSchema,
|
|
timelineQuickAssignInputSchema,
|
|
} from "./timeline-allocation-mutation-schema-support.js";
|
|
import {
|
|
applyTimelineAllocationBatchShiftMutation,
|
|
createTimelineBatchQuickAssignMutation,
|
|
createTimelineQuickAssignMutation,
|
|
updateTimelineAllocationInlineMutation,
|
|
} from "./timeline-allocation-router-support.js";
|
|
|
|
export const timelineAllocationMutationProcedures = {
|
|
updateAllocationInline: managerProcedure
|
|
.input(UpdateAllocationHoursSchema)
|
|
.mutation(async ({ ctx, input }) => {
|
|
requirePermission(ctx, PermissionKey.MANAGE_ALLOCATIONS);
|
|
return updateTimelineAllocationInlineMutation({
|
|
db: ctx.db as PrismaClient,
|
|
allocationId: input.allocationId,
|
|
hoursPerDay: input.hoursPerDay,
|
|
startDate: input.startDate,
|
|
endDate: input.endDate,
|
|
includeSaturday: input.includeSaturday,
|
|
role: input.role,
|
|
});
|
|
}),
|
|
|
|
quickAssign: managerProcedure
|
|
.input(timelineQuickAssignInputSchema)
|
|
.mutation(async ({ ctx, input }) => {
|
|
requirePermission(ctx, PermissionKey.MANAGE_ALLOCATIONS);
|
|
return createTimelineQuickAssignMutation(ctx.db as PrismaClient, input);
|
|
}),
|
|
|
|
batchQuickAssign: managerProcedure
|
|
.input(timelineBatchQuickAssignInputSchema)
|
|
.mutation(async ({ ctx, input }) => {
|
|
requirePermission(ctx, PermissionKey.MANAGE_ALLOCATIONS);
|
|
return createTimelineBatchQuickAssignMutation(ctx.db as PrismaClient, input);
|
|
}),
|
|
|
|
batchShiftAllocations: managerProcedure
|
|
.input(timelineBatchShiftAllocationsInputSchema)
|
|
.mutation(async ({ ctx, input }) => {
|
|
requirePermission(ctx, PermissionKey.MANAGE_ALLOCATIONS);
|
|
return applyTimelineAllocationBatchShiftMutation(ctx.db as PrismaClient, input);
|
|
}),
|
|
};
|