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)), });