Files
CapaKraken/packages/api/src/router/effort-rule.ts
T

48 lines
1.5 KiB
TypeScript

import {
ApplyEffortRulesSchema,
CreateEffortRuleSetSchema,
UpdateEffortRuleSetSchema,
} from "@capakraken/shared";
import { createTRPCRouter, controllerProcedure, managerProcedure } from "../trpc.js";
import {
applyEffortRules,
createEffortRuleSet,
deleteEffortRuleSet,
effortRuleIdInputSchema,
effortRulePreviewInputSchema,
getEffortRuleSetById,
listEffortRuleSets,
previewEffortRules,
updateEffortRuleSet,
} from "./effort-rule-procedure-support.js";
export const effortRuleRouter = createTRPCRouter({
list: controllerProcedure.query(({ ctx }) => listEffortRuleSets(ctx)),
getById: controllerProcedure
.input(effortRuleIdInputSchema)
.query(({ ctx, input }) => getEffortRuleSetById(ctx, input)),
create: managerProcedure
.input(CreateEffortRuleSetSchema)
.mutation(({ ctx, input }) => createEffortRuleSet(ctx, input)),
update: managerProcedure
.input(UpdateEffortRuleSetSchema)
.mutation(({ ctx, input }) => updateEffortRuleSet(ctx, input)),
delete: managerProcedure
.input(effortRuleIdInputSchema)
.mutation(({ ctx, input }) => deleteEffortRuleSet(ctx, input)),
/** Preview the expansion result without persisting */
preview: controllerProcedure
.input(effortRulePreviewInputSchema)
.query(({ ctx, input }) => previewEffortRules(ctx, input)),
/** Apply effort rules to generate demand lines on the working version */
applyRules: managerProcedure
.input(ApplyEffortRulesSchema)
.mutation(({ ctx, input }) => applyEffortRules(ctx, input)),
});