Files
Nexus/packages/api/src/router/blueprint.ts
T

79 lines
2.5 KiB
TypeScript

import {
adminProcedure,
createTRPCRouter,
planningReadProcedure,
protectedProcedure,
} from "../trpc.js";
import {
batchDeleteBlueprints,
blueprintBatchDeleteInputSchema,
blueprintGlobalFieldDefsInputSchema,
blueprintIdentifierInputSchema,
blueprintIdInputSchema,
blueprintListInputSchema,
blueprintRolePresetsInputSchema,
blueprintSetGlobalInputSchema,
blueprintUpdateInputSchema,
createBlueprint,
deleteBlueprint,
getBlueprintById,
getBlueprintDetailByIdentifier,
getGlobalBlueprintFieldDefs,
listBlueprintSummaries,
listBlueprints,
resolveBlueprintByIdentifier,
setBlueprintGlobal,
updateBlueprint,
updateBlueprintRolePresets,
} from "./blueprint-procedure-support.js";
import { CreateBlueprintSchema } from "@capakraken/shared";
export const blueprintRouter = createTRPCRouter({
listSummaries: planningReadProcedure.query(({ ctx }) => listBlueprintSummaries(ctx)),
list: planningReadProcedure
.input(blueprintListInputSchema)
.query(({ ctx, input }) => listBlueprints(ctx, input)),
getById: planningReadProcedure
.input(blueprintIdInputSchema)
.query(({ ctx, input }) => getBlueprintById(ctx, input)),
resolveByIdentifier: protectedProcedure
.input(blueprintIdentifierInputSchema)
.query(({ ctx, input }) => resolveBlueprintByIdentifier(ctx, input)),
getByIdentifier: planningReadProcedure
.input(blueprintIdentifierInputSchema)
.query(({ ctx, input }) => getBlueprintDetailByIdentifier(ctx, input)),
create: adminProcedure
.input(CreateBlueprintSchema)
.mutation(({ ctx, input }) => createBlueprint(ctx, input)),
update: adminProcedure
.input(blueprintUpdateInputSchema)
.mutation(({ ctx, input }) => updateBlueprint(ctx, input)),
/** Dedicated mutation for saving role presets — separate from field defs to avoid Zod depth issues */
updateRolePresets: adminProcedure
.input(blueprintRolePresetsInputSchema)
.mutation(({ ctx, input }) => updateBlueprintRolePresets(ctx, input)),
delete: adminProcedure
.input(blueprintIdInputSchema)
.mutation(({ ctx, input }) => deleteBlueprint(ctx, input)),
batchDelete: adminProcedure
.input(blueprintBatchDeleteInputSchema)
.mutation(({ ctx, input }) => batchDeleteBlueprints(ctx, input)),
getGlobalFieldDefs: planningReadProcedure
.input(blueprintGlobalFieldDefsInputSchema)
.query(({ ctx, input }) => getGlobalBlueprintFieldDefs(ctx, input)),
setGlobal: adminProcedure
.input(blueprintSetGlobalInputSchema)
.mutation(({ ctx, input }) => setBlueprintGlobal(ctx, input)),
});