83 lines
3.0 KiB
TypeScript
83 lines
3.0 KiB
TypeScript
import { CreateRateCardSchema } from "@capakraken/shared";
|
|
import { createTRPCRouter, controllerProcedure, managerProcedure } from "../trpc.js";
|
|
import {
|
|
addRateCardLine,
|
|
createRateCard,
|
|
deactivateRateCard,
|
|
deleteRateCardLine,
|
|
getRateCardById,
|
|
listRateCards,
|
|
lookupRateCardBestMatch,
|
|
rateCardAddLineInputSchema,
|
|
rateCardByIdInputSchema,
|
|
rateCardDeleteLineInputSchema,
|
|
rateCardListInputSchema,
|
|
rateCardLookupBestMatchInputSchema,
|
|
rateCardReplaceLinesInputSchema,
|
|
rateCardResolveBestRateInputSchema,
|
|
rateCardResolveLineInputSchema,
|
|
rateCardUpdateInputSchema,
|
|
rateCardUpdateLineInputSchema,
|
|
replaceRateCardLines,
|
|
resolveRateCard,
|
|
resolveRateCardLine,
|
|
updateRateCard,
|
|
updateRateCardLine,
|
|
} from "./rate-card-procedure-support.js";
|
|
|
|
export const rateCardRouter = createTRPCRouter({
|
|
list: controllerProcedure
|
|
.input(rateCardListInputSchema)
|
|
.query(({ ctx, input }) => listRateCards(ctx, input)),
|
|
|
|
getById: controllerProcedure
|
|
.input(rateCardByIdInputSchema)
|
|
.query(({ ctx, input }) => getRateCardById(ctx, input)),
|
|
|
|
lookupBestMatch: controllerProcedure
|
|
.input(rateCardLookupBestMatchInputSchema)
|
|
.query(({ ctx, input }) => lookupRateCardBestMatch(ctx, input)),
|
|
|
|
resolveBestRate: controllerProcedure
|
|
.input(rateCardResolveBestRateInputSchema)
|
|
.query(({ ctx, input }) => resolveRateCard(ctx, input)),
|
|
|
|
create: managerProcedure
|
|
.input(CreateRateCardSchema)
|
|
.mutation(({ ctx, input }) => createRateCard(ctx, input)),
|
|
|
|
update: managerProcedure
|
|
.input(rateCardUpdateInputSchema)
|
|
.mutation(({ ctx, input }) => updateRateCard(ctx, input)),
|
|
|
|
deactivate: managerProcedure
|
|
.input(rateCardByIdInputSchema)
|
|
.mutation(({ ctx, input }) => deactivateRateCard(ctx, input)),
|
|
|
|
// ─── Line CRUD ─────────────────────────────────────────────────────────────
|
|
|
|
addLine: managerProcedure
|
|
.input(rateCardAddLineInputSchema)
|
|
.mutation(({ ctx, input }) => addRateCardLine(ctx, input)),
|
|
|
|
updateLine: managerProcedure
|
|
.input(rateCardUpdateLineInputSchema)
|
|
.mutation(({ ctx, input }) => updateRateCardLine(ctx, input)),
|
|
|
|
deleteLine: managerProcedure
|
|
.input(rateCardDeleteLineInputSchema)
|
|
.mutation(({ ctx, input }) => deleteRateCardLine(ctx, input)),
|
|
|
|
// ─── Batch operations ──────────────────────────────────────────────────────
|
|
|
|
replaceLines: managerProcedure
|
|
.input(rateCardReplaceLinesInputSchema)
|
|
.mutation(({ ctx, input }) => replaceRateCardLines(ctx, input)),
|
|
|
|
// ─── Rate resolution ───────────────────────────────────────────────────────
|
|
|
|
resolveRateLine: controllerProcedure
|
|
.input(rateCardResolveLineInputSchema)
|
|
.query(({ ctx, input }) => resolveRateCardLine(ctx, input)),
|
|
});
|