Merge branch 'worktree-agent-a90e1bc2'
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
import { PermissionKey } from "@capakraken/shared";
|
||||
import { z } from "zod";
|
||||
import {
|
||||
parseScenarioBaselineResult,
|
||||
parseScenarioSimulationResult,
|
||||
} from "../lib/scenario-schema.js";
|
||||
import type { TRPCContext } from "../trpc.js";
|
||||
import { requirePermission } from "../trpc.js";
|
||||
import { applyProjectScenario } from "./scenario-apply.js";
|
||||
@@ -34,14 +38,16 @@ export async function getProjectScenarioBaseline(
|
||||
input: z.infer<typeof ScenarioProjectIdInputSchema>,
|
||||
) {
|
||||
requirePermission(ctx, PermissionKey.VIEW_COSTS);
|
||||
return readProjectScenarioBaseline(ctx.db, input.projectId);
|
||||
const result = await readProjectScenarioBaseline(ctx.db, input.projectId);
|
||||
return parseScenarioBaselineResult(result);
|
||||
}
|
||||
|
||||
export async function simulateScenario(
|
||||
ctx: Pick<TRPCContext, "db">,
|
||||
input: z.infer<typeof ScenarioSimulationInputSchema>,
|
||||
) {
|
||||
return simulateProjectScenario(ctx.db, input);
|
||||
const result = await simulateProjectScenario(ctx.db, input);
|
||||
return parseScenarioSimulationResult(result);
|
||||
}
|
||||
|
||||
export async function applyScenario(
|
||||
|
||||
@@ -6,7 +6,7 @@ import { z } from "zod";
|
||||
import { findUniqueOrThrow } from "../db/helpers.js";
|
||||
import { RESOURCE_BRIEF_SELECT } from "../db/selects.js";
|
||||
import { makeAuditLogger } from "../lib/audit-helpers.js";
|
||||
import { checkBatchVacationConflicts, checkVacationConflicts } from "../lib/vacation-conflicts.js";
|
||||
import { checkBatchVacationConflicts, checkVacationConflicts, type DbClient as VacationConflictDbClient } from "../lib/vacation-conflicts.js";
|
||||
import { emitVacationUpdated } from "../sse/event-bus.js";
|
||||
import { adminProcedure, managerProcedure, protectedProcedure } from "../trpc.js";
|
||||
import {
|
||||
@@ -76,8 +76,7 @@ export const vacationManagementProcedures = {
|
||||
const userRecord = await findVacationActor(ctx.db, ctx.session.user?.email);
|
||||
const audit = makeAuditLogger(ctx.db, userRecord?.id);
|
||||
const conflictResult = await checkVacationConflicts(
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
ctx.db as any,
|
||||
ctx.db as unknown as VacationConflictDbClient,
|
||||
input.id,
|
||||
userRecord?.id,
|
||||
);
|
||||
@@ -195,8 +194,7 @@ export const vacationManagementProcedures = {
|
||||
}
|
||||
|
||||
const conflictMap = await checkBatchVacationConflicts(
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
ctx.db as any,
|
||||
ctx.db as unknown as VacationConflictDbClient,
|
||||
vacations.map((vacation) => vacation.id),
|
||||
userRecord?.id,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user