28 lines
813 B
TypeScript
28 lines
813 B
TypeScript
import type { PrismaClient } from "@capakraken/db";
|
|
import { emitProjectShifted } from "../sse/event-bus.js";
|
|
import { loadProjectShiftContext } from "./timeline-project-load-support.js";
|
|
import { applyTimelineProjectShift } from "./timeline-shift-procedure-support.js";
|
|
|
|
export async function applyTimelineProjectShiftMutation(input: {
|
|
db: PrismaClient;
|
|
projectId: string;
|
|
newStartDate: Date;
|
|
newEndDate: Date;
|
|
}) {
|
|
const context = await loadProjectShiftContext(input.db, input.projectId);
|
|
const result = await applyTimelineProjectShift({
|
|
db: input.db,
|
|
projectId: input.projectId,
|
|
newStartDate: input.newStartDate,
|
|
newEndDate: input.newEndDate,
|
|
context,
|
|
});
|
|
|
|
emitProjectShifted(result.event);
|
|
|
|
return {
|
|
project: result.project,
|
|
validation: result.validation,
|
|
};
|
|
}
|