32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { z } from "zod";
|
|
import { controllerProcedure, createTRPCRouter } from "../trpc.js";
|
|
import { listReportBlueprints, ReportBlueprintCatalogSchema } from "./report-blueprints-support.js";
|
|
import { reportQueryProcedures } from "./report-query-engine.js";
|
|
import { reportEntitySchema } from "./report-query-config.js";
|
|
import {
|
|
DeleteReportTemplateInputSchema,
|
|
deleteReportTemplate,
|
|
listReportTemplates,
|
|
SaveReportTemplateInputSchema,
|
|
saveReportTemplate,
|
|
} from "./report-template-procedure-support.js";
|
|
|
|
export const reportRouter = createTRPCRouter({
|
|
...reportQueryProcedures,
|
|
|
|
listBlueprints: controllerProcedure
|
|
.input(z.object({ entity: reportEntitySchema.optional() }).default({}))
|
|
.output(ReportBlueprintCatalogSchema)
|
|
.query(({ input }) => listReportBlueprints(input.entity)),
|
|
|
|
listTemplates: controllerProcedure.query(({ ctx }) => listReportTemplates(ctx)),
|
|
|
|
saveTemplate: controllerProcedure
|
|
.input(SaveReportTemplateInputSchema)
|
|
.mutation(({ ctx, input }) => saveReportTemplate(ctx, input)),
|
|
|
|
deleteTemplate: controllerProcedure
|
|
.input(DeleteReportTemplateInputSchema)
|
|
.mutation(({ ctx, input }) => deleteReportTemplate(ctx, input)),
|
|
});
|