48 lines
1.5 KiB
TypeScript
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)),
|
|
});
|