48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
import {
|
|
ApplyExperienceMultipliersSchema,
|
|
CreateExperienceMultiplierSetSchema,
|
|
UpdateExperienceMultiplierSetSchema,
|
|
} from "@capakraken/shared";
|
|
import { createTRPCRouter, controllerProcedure, managerProcedure } from "../trpc.js";
|
|
import {
|
|
applyExperienceMultiplierRules,
|
|
createExperienceMultiplierSet,
|
|
deleteExperienceMultiplierSet,
|
|
experienceMultiplierIdInputSchema,
|
|
experienceMultiplierPreviewInputSchema,
|
|
getExperienceMultiplierSetById,
|
|
listExperienceMultiplierSets,
|
|
previewExperienceMultipliers,
|
|
updateExperienceMultiplierSet,
|
|
} from "./experience-multiplier-procedure-support.js";
|
|
|
|
export const experienceMultiplierRouter = createTRPCRouter({
|
|
list: controllerProcedure.query(({ ctx }) => listExperienceMultiplierSets(ctx)),
|
|
|
|
getById: controllerProcedure
|
|
.input(experienceMultiplierIdInputSchema)
|
|
.query(({ ctx, input }) => getExperienceMultiplierSetById(ctx, input)),
|
|
|
|
create: managerProcedure
|
|
.input(CreateExperienceMultiplierSetSchema)
|
|
.mutation(({ ctx, input }) => createExperienceMultiplierSet(ctx, input)),
|
|
|
|
update: managerProcedure
|
|
.input(UpdateExperienceMultiplierSetSchema)
|
|
.mutation(({ ctx, input }) => updateExperienceMultiplierSet(ctx, input)),
|
|
|
|
delete: managerProcedure
|
|
.input(experienceMultiplierIdInputSchema)
|
|
.mutation(({ ctx, input }) => deleteExperienceMultiplierSet(ctx, input)),
|
|
|
|
/** Preview the rate adjustment without persisting */
|
|
preview: controllerProcedure
|
|
.input(experienceMultiplierPreviewInputSchema)
|
|
.query(({ ctx, input }) => previewExperienceMultipliers(ctx, input)),
|
|
|
|
/** Apply multipliers to demand lines on the working version */
|
|
applyRules: managerProcedure
|
|
.input(ApplyExperienceMultipliersSchema)
|
|
.mutation(({ ctx, input }) => applyExperienceMultiplierRules(ctx, input)),
|
|
});
|